Java 类的Hibernate搜索查询

Java 类的Hibernate搜索查询,java,hibernate,hibernate-search,Java,Hibernate,Hibernate Search,我正在使用HibernateSearch4.4.0。我最近遇到了一个问题 例如,我有两个类:索引和数据属性。其中两个之间没有关联。我不能改变它们或者创建一个新类来关联其中的两个 Lucene索引的一部分: mapping.entity(DatatypeProperty.class).indexed().providedId() .property("rdfResource",ElementType.FIELD).field().analyze(Analyze.NO).store(S

我正在使用HibernateSearch4.4.0。我最近遇到了一个问题

例如,我有两个类:索引和数据属性。其中两个之间没有关联。我不能改变它们或者创建一个新类来关联其中的两个

Lucene索引的一部分:

mapping.entity(DatatypeProperty.class).indexed().providedId()
       .property("rdfResource",ElementType.FIELD).field().analyze(Analyze.NO).store(Store.YES)
       .property("partitionValue", ElementType.FIELD).field().analyze(Analyze.NO)

mapping.entity(Indexing.class).indexed().providedId()
       .property("rdfResource",ElementType.FIELD).field().analyze(Analyze.NO).store(Store.YES)
现在在SQL中,我使用

SELECT IND.RDF_RESOURCE 
FROM INDEXING IND, DATA_PROPERTY DP
WHERE IND.RDF_RESOURCE = DP.RDF_RESOURCE
AND IND.OBJECT_TYPE_ID_INDEXED IN (........)
AND DP.PARTITION_VALUE IN (......)
AND .......
如何在Hibernate搜索中翻译IND.RDF_RESOURCE=DP.RDF_RESOURCE

我想也许我可以使用查询来查找类DatatypeProperty的所有RDF\U资源,并在类索引的查询中匹配所有资源。但这似乎效率很低

有人有更好的方法吗

我有两个类:索引和数据属性。没有关联 他们两个之间。我无法更改它们或创建一个新类来 其中2人

在这种情况下,你处于一块岩石和一个坚硬的地方之间。您需要以某种方式关联记录,最明显的选择是通过关联。此外,不能将SQL联接与Lucene提供的基于自由文本的索引进行比较

一个可能的解决方案是编写一个自定义桥,在索引时执行连接并索引相关数据,这样您就可以通过查询直接将其作为目标。这是否适用于您将取决于您的用例。在您的示例设置中,我没有看到任何字段会从自由文本搜索中受益。我只能假设您只显示了部分代码。如果不是,为什么不坚持使用SQL呢