【发布时间】:2015-09-15 23:58:41
【问题描述】:
我使用 Solr 5 搜索大型(文本)文档。对于每个搜索结果,我都会显示一个包含突出显示的搜索匹配的片段。这适用于 nicley,使用 Solr 的 Standard Highlighter。然而我发现,如果发现多个匹配项彼此靠近,它们将合并为一个片段,即使是hl.mergeContiguous=false。参数是
SolrQuery query = new SolrQuery();
query.setQuery(rawQuery);
query.set("defType", "lucene");
query.setRows(1000);
query.setHighlight(true);
query.setHighlightFragsize(200);
query.setHighlightSnippets(20);
query.setParam("hl.fl", "content");
query.setParam("hl.maxAnalyzedChars", "-1");
query.setParam("hl.mergeContiguous", false);
示例:我使用圣经翻译进行测试,只是因为它的长度。搜索 beast 产量(以及许多其他)
...7:8 洁净的走兽、不洁净的走兽、飞鸟和地上一切爬行的动物,7: 9 有两个和两个进入挪亚进入......
我宁愿这个片段两次,因为它包含两次出现的搜索词。在这种情况下手动复制片段对我来说显得很笨拙。我是否缺少查询参数,还是需要自定义 BoundaryScanner 来实现此目的?
【问题讨论】:
标签: solr highlighting solrj