Java中的Elasticsearch:SearchHit片段缩短

时间:2016-10-31 12:29:08

标签: java elasticsearch highlighting elasticsearch-2.0

我使用已成为Elasticsearch一部分的突出显示。它工作正常。例如,如果我有下一个“单词”索引:

  1. 非常长的工作,isweryweeylongf
  2. tes!tr%31 =!“$:_ ae test!”daca214xx

如果我搜索 - > 。结果如下:>非常长的 isweryweeylongf。包括加粗部分。 但如果我搜索 - > 测试。结果是 - > $:_ ae 测试!“。

因此片段gests分裂/缩短。

它可能与特殊字符有关。搜索时,我使用QueryParser.escape()来逃避它们。

可能是什么问题?

编辑: 此外,如果我搜索 tes ,结果将是两个片段 - > tes !tr和$:_ ae tes t!“

1 个答案:

答案 0 :(得分:0)

所以似乎“问题”是我设置了默认的片段数(5)。在我的情况下,因为我正在寻找更短的字符串,所以没有任何意义。 所以解决方案是:

 final HighlightBuilder.Field field = new HighlightBuilder.Field(fieldToHighlight.getName());
        field.preTags("<strong>");
        field.postTags("</strong>");
        field.numOfFragments(0);

只需将numOfFragments设置为0即可。