Этот вариант использования должен быть достаточно распространенным, но я не могу понять его или найти какие-либо способы решить его в Интернете. Я хотел бы найти базу данных сотрудников, используя естественный язык, то есть неструктурированную строку слов.
Допустим, у вас есть основной объект данных с тремя атрибутами, как показано ниже:
firstname string
lastname string
Employee_id string
И у вас есть следующие управляемые объекты
Jane | Smith | 1
Jane | Smiley | 2
Jane | Doe | 3
John | Doe | 4
Richard | Doe | 5
Как бы вы получили идентификатор сотрудника для строки «Джейн Доу» или «Доу Джейн» или «Учет Доу Джейн»?
Если вы точно знали, что было всего два слова, и порядок был имя, второе имя, тогда вы могли бы сделать.
NSArray *words = [string componentsSeparatedByString:@" "];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"firstname beginswith[cd] %@ AND lastname beginswith[cd]", words[0],words[1]];
Но в этом случае я не знаю порядок или количество слов.
Заранее спасибо за любые предложения.