我试图使用org.apache.lucene.search.Query来获取具有特定@id id的Object @indexedEmbedded的所有条目。这根本不适用于我当前的代码。我的代码如下:
搜索
FullTextSession fullTextSession = getFullTextSession();
QueryBuilder queryBuilder = fullTextSession.getSearchFactory().buildQueryBuilder().forEntity(Request.class).get();
org.apache.lucene.search.Query query = queryBuilder.keyword()
.onField("keyword.id")
.matching(keywordId)
.createQuery();
FullTextQuery fullTextQuery = fullTextSession
.createFullTextQuery(query, Request.class);
return fullTextQuery.list();
请求类
@Entity
@Indexed
public class Request etc etc..
@ManyToOne
@IndexedEmbedded
private Keyword keyword;
关键字类
@Entity
@Indexed
public class Keyword etc etc..
@Id
@GeneratedValue
private Long id;
我在执行此代码时没有收到任何错误,结果只是不限于带有提供ID的关键字的Request对象。
稍后,我将其与org.apache.lucene.search.BooleanQuery结合使用,但是即使尝试这种操作本身也不起作用。我知道这可能是错误的方法,因此任何建议将不胜感激。
谢谢!
索引属性设置不正确,只是未对请求类的索引进行应有的索引。添加了以下代码来纠正错误:
<property name="hibernateProperties">
<props>
...
<prop key="hibernate.search.default.indexBase">/var/lucene/indexes</prop>
<prop key="hibernate.search.default.directory_provider">filesystem</prop>
<prop key="hibernate.search.lucene_version">LUCENE_CURRENT</prop>
</props>
</property>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句