У меня есть пользовательский адрес класса «Orient DB» с полями «FirstName» и «LastName», которые могут содержать одно или несколько слов (у пользователей может быть больше фамилии и фамилии). В этих полях есть индекс FULLTEXT LUCENE ["FirstName", "LastName"]. Я могу создать запрос для поиска любого слова в этих областях:OrientDB Полнотекстовый поиск нескольких совпадений
SELECT FROM user WHERE ([FirstName,LastName] LUCENE "Peter")
Я также могу создать запрос для поиска нескольких ключевых слов, таких как:
SELECT FROM user WHERE ([FirstName,LastName] LUCENE "Peter AND Fa*")
Но я не могу понять, как искать для нескольких совпадений одного и того же слова. Я пробовал:
SELECT FROM user WHERE ([FirstName,LastName] LUCENE "Peter AND Peter")
но он вернет тот же набор, что и первый запрос.
Я попытался найти ответ в руководстве Orient DB, например. здесь: http://orientdb.com/docs/2.0/orientdb.wiki/FullTextIndex.html, но не нашел никаких указаний, которые привели меня к решению.
Кто-нибудь знает, как бороться с такими случаями?
EDITED - Кажется, что я точно не задал вопрос. Так что я добавить небольшой пример здесь:
Предположим, что мой DB имеет 3 класса:
Nr FirstName LastName
-------------------------
1. Tim Tom
2. Tim Tim
3. Peter Tim Timar
Результаты для "поиска запрос" "Ti* AND Ti*"
должен быть:
- Nr. 2 (1 совпадение в FirstName, 1 совпадение в LastName)
- и Nr. 3 (2 соответствий в LastName)
- но не Nr. 1 (так как он имеет только 1 матч вообще).
Btw: Здесь я попытался упростить домен я работаю с. В реальном сценарии у меня больше, чем два поля для поиска, поэтому мне нужно общее решение
Спасибо, это была полезная информация –