Полнотекстовый поиск по подклассу возвращает java.lang.illegalArgumentException: слишком много полнотекстовых индексов для данного класса: Customer - PullRequest
0 голосов
/ 04 апреля 2019

Я хочу создать полнотекстовый индекс по всем вершинам, включая подклассы, используя 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, но получая ElectronicArgumentException: слишком много полнотекстовых индексов для класса ginen: Customer.Как мне создать индекс, чтобы он работал?

1 Ответ

0 голосов
/ 22 мая 2019

Это не совсем то, что я искал, но я решил это с помощью следующих изменений:

Класс Person имеет имя свойства.Класс Customer не наследуется от Person и имеет свойство customer_id и имя .

Аналогичным образом создается полнотекстовый индекс.

Поиск клиентаи человек так:

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)
...