我正在尝试使用聚合两个字段的自定义字段桥来查询字段。典型值如下所示:
myField:12345%FIELDSEPERATOR%4
这是 12345 和 4 的组合。它被正确索引,但是使用 hibernate 搜索查询 API,如何禁用分析器?
FullTextEntityManager em = getFTEM();
SearchFactory searchFactory = em.getSearchFactory();
QueryBuilder qb = searchFactory.buildQueryBuilder().forEntity(User.class).get();
Query q = qb.phrase()
.onField("myField")
.ignoreAnalyzer()
.sentence("12345%SEPERATOR%4")
.createQuery();
q 这里被解析为myField:"12345 seperator 4"
中断搜索,即使我指定了ignoreAnalyzer。为了比较,以下生成一个工作查询
TermQuery tq = new TermQuery(new Term("myField", "12345%SEPERATOR%4"));
结果查询:myField:"12345%SEPERATOR%4"
我知道我可以简单地使用 TermQuery,但我想享受 Hibernate 搜索的其他简单功能,例如 .boostedTo()。
使用内部使用 Lucene 3.1 的 Hibernate Search 3.4.2