一段时间以来,我一直在使用 (Java) Highlighter for Lucene(在 Sandbox 包中)。但是,在匹配搜索结果中的正确术语时,这并不是很准确 - 它适用于简单的查询,例如搜索两个单独的单词会突出显示结果中的两个代码片段。
但是,它不适用于更复杂的查询。在最简单的情况下,诸如“Stack Overflow”之类的短语查询将匹配突出显示中出现的所有 Stack 或 Overflow,这给用户留下了它运行不佳的印象。
我尝试在此处应用此修复程序,但随之而来的是很多性能警告,最终根本无法使用。性能尤其是通配符查询的问题。这是由于突出显示的工作方式;而不是只处理查询字符串和文本,它会像 Lucene 那样解析它,然后查找 Lucene 所做的所有匹配;不幸的是,这意味着对于某些通配符查询,它可以在大型文档中查找与 2000 多个子句匹配的内容,而且速度还不够快。
有没有更快的准确荧光笔实现?