如何确定令牌匹配的索引字段?

时间:2015-07-14 11:32:41

标签: java hibernate lucene full-text-search hibernate-search

我使用" 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 ) );
}

但表现并不好。 我想知道那里有匹配的字段。

0 个答案:

没有答案