子类上的全文搜索返回java.lang.illegalArgumentException:给定类:Customer

时间:2019-04-04 13:56:35

标签: lucene polymorphism full-text-search orientdb

我想使用Lucene在所有顶点(包括子类)上创建全文索引。

Class Person具有属性名称。 客户类继承自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

我想通过匹配name或customer_id来检索客户,但是会出现非法ArgumentException:ginen类:Customer上的全文索引太多。 我应该如何创建索引才能使其正常工作?

1 个答案:

答案 0 :(得分:0)

这不是我想要的,但是我通过以下更改解决了该问题:

Class Person具有属性名称。 客户类不会从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)