当前位置: 首页 > 面试题库 >

Elasticsearch-EdgeNgram +高亮+ term_vector =错误高亮

姜宏放
2023-03-14
问题内容

当我将分析器与Edgengram(最小= 3,最大= 7,前面)+ term_vector = with_positions_offsets一起使用时

使用具有text =“ CouchDB”的文档

当我搜索“ couc”时

我的重点是“ cou”而不是“ couc”

看来我的重点只是在最小匹配令牌“ cou”上,而我希望是在精确令牌(如果可能)上或至少在找到的最长令牌上。

无需使用term_vector = with_positions_offsets分析文本即可正常工作

删除perfomances的term_vector = with_positions_offsets有什么影响?


问题答案:

当您term_vector=with_positions_offsets为特定字段设置时,这意味着您将为该字段存储每个文档的术语向量。

在突出显示时,术语向量允许您使用Lucene快速向量突出显示工具,它比标准突出显示工具快。原因是标准荧光笔没有任何快速的方法来突出显示,因为索引没有包含足够的信息(位置和偏移量)。它只能重新分析字段内容,截取偏移量和位置并根据该信息进行突出显示。这可能需要一段时间,尤其是对于长文本字段。

使用术语向量,您确实有足够的信息,不需要重新分析文本。不利之处是该指数的规模将显着增加。我必须补充一点,因为Lucene
4.2术语向量可以更好地压缩并以优化的方式存储。此外,还有新的PostingsHighlighter,它基于将偏移量存储在发布列表中的功能,该功能甚至需要更少的空间。

elasticsearch根据可用信息自动使用最佳方式进行突出显示。如果存储术语向量,它将使用快速向量荧光笔,否则使用标准荧光笔。在没有术语向量的情况下重新索引后,将使用标准荧光笔突出显示。它将较慢,但索引将较小。

关于ngram字段,所描述的行为很奇怪,因为快速矢量荧光笔应该对ngram字段有更好的支持,因此我希望得到完全相反的结果。



 类似资料:
  • 问题内容: 我正在使用ElasticSearch索引文档。 我的映射是: 为了突出显示全文,我将其设置为0。 如果我执行以下类似于Lucene的字符串查询: 对于结果集中的某些文档,突出显示的全文的长度小于全文本身的长度。由于我将值设置为0和/ ,所以不会发生这种情况。 现在出现奇怪的行为:如果我仅通过执行以下操作搜索失败的元素之一: 然后一切正常。 有任何想法吗? 问题答案: 听起来像在0.14

  • 目前我们已经为Potion文件实现了简单的关键字和函数的语法高亮。 如果没有做上一章的练习,你需要回去完成。我将假设你做了练习。 事实上,你应该回去完成你跳过的任何练习。即使你觉得你不需要,为了更好的学习效果, 你都得把它们完成了。请在这一点上相信我。 高亮注释 接下来我们需要高亮Potion的一个重要组成部分——注释。 问题是,Potion的注释以#开头,而#并不在iskeyword里。 如果不

  • 问题内容: 我具有以下设置和分析器: 我将以下数据发布到其中: 这是我的查询: 我得到了这个结果: 有人可以向我解释说,“名称”中的任何地方都没有“ jax”,但仍然可以匹配吗? 提前致谢 问题答案: 一个在其给定值的查询进行分析。默认情况下,正在使用进行分析,其中包括将n- gram分析置换为,其中第一个与分析的匹配。 如果您不希望出现这种情况,则可以使用字段将其他分析器指定为,例如:

  • 问题内容: 我在iOS上使用PDFKit突出显示文本(PDF文件)。我通过创建PDFAnnotation并将其添加到选定的文本区域来实现。我想精确地突出显示所选区域,但它始终覆盖整行,如下图所示。如何仅为选定区域创建注释? 我的代码: 问题答案: 方法返回一个矩形以满足整个选择区域。不是您情况下的最佳解决方案。 尝试使用,并为每个矩形添加单独的注释,以表示PDF中的每个选定行。例:

  • docsify内置的代码高亮工具是 Prism。Prism 默认支持的语言如下: Markup - markup, html, xml, svg, mathml, ssml, atom, rss CSS - css C-like - clike JavaScript - javascript, js 添加额外的语法支持需要通过CDN添加相应的语法文件 : <script src="//cdn.js

  • Hexo 对 highlight.js 与 prismjs 两种代码高亮库提供内建支持。本篇教程将展示如何将 Hexo 的内建语法高亮组件整合至你的模板中。 如何在文章中插入代码块 Hexo 支持两种代码块写法——代码块标签插件和反引号代码块标签插件: {% codeblock [title] [lang:language] [url] [link text] [additional option