java如何确定令牌在哪些索引字段中匹配?
我使用“Hibernate搜索”搜索对象的所有字段
我的问题是:
final org.apache.lucene.search.Query luceneQuery = qb
.keyword().wildcard()
.onFields( fields )
.matching( valueToSearch )
.createQuery();
// wrap Lucene query in a javax.persistence.Query
final javax.persistence.Query jpaQuery =
fullTextEntityManager.createFullTextQuery( luceneQuery, Vorgang.class );
// execute search
final List<Vorgang> resultList = new ArrayList<>();
((List<Vorgang>) jpaQuery.getResultList()).stream().filter( t -> projektIds.contains( t.getProjektFk().getId() ) )
.forEach( vorgang -> resultList.add( vorgang ) );
我想知道在哪个领域有比赛
我的想法是:
final List<Vorgang> resultList = new ArrayList<>();
for ( final String field : fields )
{
final org.apache.lucene.search.Query luceneQuery = qb
.keyword().wildcard()
.onField( field )
.matching( valueToSearch )
.createQuery();
// wrap Lucene query in a javax.persistence.Query
final javax.persistence.Query jpaQuery =
fullTextEntityManager.createFullTextQuery( luceneQuery, Vorgang.class );
// execute search
((List<Vorgang>) jpaQuery.getResultList()).stream().filter( t -> projektIds.contains( t.getProjektFk().getId() ) )
.forEach( vorgang -> resultList.add( vorgang ) );
}
但是性能不好。 我想知道比赛的场地
共 (0) 个答案