伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

停用词与短语查询 | Elasticsearch: 权威指南 | Elastic

来源:网络转载 浏览:47次 时间:2023-07-16
请注意:
本书基于 Elasticsearch 2.x 版本,有些内容可能已经过时。 Elasticsearch: 权威指南 » 处理人类语言 » 停用词: 性能与精度 » 停用词与短语查询 «  词项的分别管理     common_grams 过滤器  »

停用词与短语查询编辑

所有查询中 短语匹配 大约占到5%,但是在慢查询里面它们又占大部分。 短语查询性能相对较差,特别是当短语中包括常用词的时候,如 “To be, or not to be” 短语全部由停用词组成,这是一种极端情况。原因在于几乎需要匹配全量的数据。

在 停用词的两面 停用词的优缺点,中,我们提到移除停用词只能节省倒排索引中的一小部分空间。这句话只部分正确,一个典型的索引会可能包含部分或所有以下数据:

词项字典(Terms dictionary) 索引中所有文档内所有词项的有序列表,以及包含该词的文档数量。 倒排表(Postings list) 包含每个词项的文档(ID)列表。 词频(Term frequency) 每个词项在每个文档里出现的频率。 位置(Positions) 每个词项在每个文档里出现的位置,供短语查询或近似查询使用。 偏移(Offsets) 每个词项在每个文档里开始与结束字符的偏移,供词语高亮使用,默认是禁用的。 规范因子(Norms) 用来对字段长度进行规范化处理的因子,给较短字段予以更多权重。

将停用词从索引中移除会节省 词项字典倒排表 里的少量空间,但 位置偏移 是另一码事。位置和偏移数据很容易变成索引大小的两倍、三倍、甚至四倍。

位置信息编辑

analyzed 字符串字段的位置信息默认是开启的, 所以短语查询能随时使用到它。 词项出现的越频繁,用来存储它位置信息的空间就越多。在一个大的文档集合中,对于那些非常常见的词,它们的位置信息可能占用成百上千兆的空间。

运行一个针对高频词 the 的短语查询可能会导致从磁盘读取好几G的数据。这些数据会被存储到内核文件系统的缓存中,以提高后续访问的速度,这看似是件好事,但这可能会导致其他数据从缓存中被剔除,进一步使后续查询变慢。

这显然是我们需要解决的问题。

索引选项编辑

我们首先应该问自己:是否真的需要使用短语查询 或 近似查询 ?

答案通常是:不需要。在很多应用场景下,比如说日志,我们需要知道一个词 是否 在文档中(这个信息由倒排表提供)而不是关心词的位置在哪里。或许我们要对一两个字段使用短语查询,但是我们完全可以在其他 analyzed 字符串字段上禁用位置信息。

index_options 参数 允许我们控制索引里为每个字段存储的信息。 可选值如下:

docs 只存储文档及其包含词项的信息。这对 not_analyzed 字符串字段是默认的。 freqs 存储 docs 信息,以及每个词在每个文档里出现的频次。词频是完成TF/IDF 相关度计算的必要条件,但如果只想知道一个文档是否包含某个特定词项,则无需使用它。 positions 存储 docsfreqsanalyzed ,以及每个词项在每个文档里出现的位置。 这对 analyzed 字符串字段是默认的,但当不需使用短语或近似匹配时,可以将其禁用。 offsets 存储 docs,freqs,positions, 以及每个词在原始字符串中开始与结束字符的偏移信息( postings highlighter )。这个信息被用以高亮搜索结果,但它默认是禁用的。

我们可以在索引创建的时候为字段设置 index_options 选项,或者在使用 put-mapping API新增字段映射的时候设置。我们无法修改已有字段的这个设置:

PUT /my_index
{
  "mappings": {
    "my_type": {
      "properties": {
        "title": { 
          "type":          "string"
       },
        "content": { 
          "type":          "string",
          "index_options": "freqs"
      }
    }
  }
}

title 字段使用默认的 positions 设置,所以它适于短语或近似查询。

content 字段的位置设置是禁用的,所以它无法用于短语或近似查询。

停用词编辑

删除停用词是能显著降低位置信息所占空间的一种方式。 一个被删除停用词的索引仍然可以使用短语查询,因为剩下的词的原始位置仍然被保存着,这正如 保持位置(Maintaining Positions) 中看到的那样。 尽管如此,将词项从索引中排除终究会降低搜索能力,这使我们难以区分 Man in the moonMan on the moon 这两个短语。

幸运的是,鱼与熊掌是可以兼得的:请查看 common_grams 过滤器。

«  词项的分别管理     common_grams 过滤器  »

Getting Started Videos

Starting Elasticsearch Introduction to Kibana Logstash Starter Guide

官方地址:https://www.elastic.co/guide/cn/elasticsearch/guide/current/stopwords-phrases.html

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net