【发布时间】:2017-05-26 03:42:59
【问题描述】:
如何使用 Apache Lucene 获得最高分搜索?
1. State Authority
2. Authority State
现在用户搜索“Authority State”或“State Authority”,我们在上述方式中得到了相同的结果。但是对于“权威状态”的搜索结果应该是
1. Authority State
2. State Authority
以下是对字段的lucene查询:
name:Authority State*
name:Authority State
name:Authority*
name:State*
for (String field : INDEXED_FIELDS) {
bool.should(qb.keyword().wildcard().onField(field).matching(userInputBuilder.toString()).createQuery());
}
for (String field : INDEXED_FIELDS) {
for (String match : pattern) {
bool.should(qb.keyword().onField(field).matching(match).createQuery());
}
}
没有对结果进行排序。
谁能建议如何获得准确的结果?
【问题讨论】:
-
您的 Java 代码解释得不是很好。尝试粘贴最终查询字符串。另外,当你显示结果的顺序时,它们有不同的分数吗?
标签: java hibernate lucene hibernate-search