我使用" Hibernate Search"。
搜索对象的所有字段我的查询:
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 ) );
}
但表现并不好。 我想知道那里有匹配的字段。