我正在使用 Lucene 的 WildcardQuery 执行查询。但我不知道为什么找不到结果。以下是详细信息。
这是创建通配符查询的代码,并且字段名称:'全名'值:'ABC123DD456CC'的记录存在索引文档。
BooleanQuery booleanQuery = new BooleanQuery();
for (IndexQueryField field : quickSearchFields)
{
Query query = new WildcardQuery(new Term(queryField.getFieldName(),"ABC*DD*CC"));
booleanQuery.add(query, BooleanClause.Occur.SHOULD);
}
代码部分:执行查询:
Session hibernateSession = (Session) em.getDelegate();
FullTextSession session = SwitchSession.getFullTextSession(hibernateSession, specifyIndexName);
// Set Hibernate flushMode
session.setFlushMode(FlushMode.MANUAL);
// Ignore Hibernate Cache
session.setCacheMode(CacheMode.IGNORE);
FullTextQuery query = session.createFullTextQuery(booleanQuery,XXX.class);
List list = query.setFirstResult(1).setMaxResults(100).list();
该列表为空,我确信 Lucene 文档中存在“ABC123DD456CC”。我只想用 WildcardQuery 来做。任何帮助将不胜感激!