我试图使用一个org.apache.lucene.search.Query来获取所有带有Object @indexedEmbedded和某个@id id的条目。这在我当前的代码中根本不起作用。我的代码如下:
"寻找"
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;
关键字.class
@Entity
@Indexed
public class Keyword etc etc..
@Id
@GeneratedValue
private Long id;
在执行这段代码时,我没有收到任何错误,结果并不局限于具有所提供id的关键字的Request对象。
稍后我将它与org.apache.lucene.search.BooleanQuery结合使用,但即使尝试它本身也不起作用。我意识到这可能是错误的方法,因此任何建议都将受到感谢。
谢谢你!
2条答案
按热度按时间wi3ka0sx1#
未正确设置索引属性,请求类的索引只是未按应有的方式进行索引。添加了以下代码以修复此错误:
11dmarpk2#
我知道这个问题已经很久没有被问到了,但是如果有人因为同样的问题来到这里,这里有一个解决方案--
https://stackoverflow.com/a/58499826/3709922