#lucene #polymorphism #full-text-search #orientdb
#lucene #полиморфизм #полнотекстовый поиск #orientdb
Вопрос:
Я хочу создать полнотекстовый индекс для всех вершин, включая подклассы, используя lucene.
Класс Person имеет имя свойства. Класс Customer наследуется от Person и имеет свойство customer_id.
Создание полнотекстового индекса, подобного этому:
CREATE INDEX Person.fulltext ON Person(name) FULLTEXT ENGINE LUCENE
CREATE INDEX Customer.fulltext ON Person(name, customer_id) FULLTEXT ENGINE LUCENE
Поиск клиента, подобного этому:
SELECT FROM Customer WHERE SEARCH_CLASS("id123") = true
Я хочу повторно запросить клиента, сопоставив имя или customer_id, но получаю исключение IllegalArgumentException: слишком много полнотекстовых индексов в ginen class: Customer.
Как я должен создать индекс, чтобы он работал?
Ответ №1:
Это не совсем то, что я искал, но я решил это с помощью этих изменений:
Класс Person имеет имя свойства. Класс Customer не наследуется от Person и имеет свойство customer_id и name.
Создание полнотекстового индекса таким же образом.
Поиск клиента и персоны, подобных этому:
SELECT EXPAND($a)
LET
$b=(SELECT FROM Customer WHERE SEARCH_CLASS("id123")=true),
$c=(SELECT FROM Person WHERE SEARCH_CLASS("id123")=true),
$a=UNIONALL($b, $c)