我使用已成为Elasticsearch一部分的突出显示。它工作正常。例如,如果我有下一个“单词”索引:
如果我搜索 - > 。结果如下:>非常长的 isweryweeylongf。包括加粗部分。 但如果我搜索 - > 测试。结果是 - > $:_ ae 测试!“。
因此片段gests分裂/缩短。
它可能与特殊字符有关。搜索时,我使用QueryParser.escape()来逃避它们。
可能是什么问题?
编辑: 此外,如果我搜索 tes ,结果将是两个片段 - > tes !tr和$:_ ae tes t!“
答案 0 :(得分:0)
所以似乎“问题”是我设置了默认的片段数(5)。在我的情况下,因为我正在寻找更短的字符串,所以没有任何意义。 所以解决方案是:
final HighlightBuilder.Field field = new HighlightBuilder.Field(fieldToHighlight.getName());
field.preTags("<strong>");
field.postTags("</strong>");
field.numOfFragments(0);
只需将numOfFragments设置为0即可。