获取整个索引中的总词频(Elasticsearch)

     2023-03-12     135

关键词:

【中文标题】获取整个索引中的总词频(Elasticsearch)【英文标题】:Getting total term frequency throughout entire index (Elasticsearch) 【发布时间】:2017-06-02 08:27:43 【问题描述】:

我正在尝试计算特定术语在整个索引中出现的总次数(术语收集频率)。我试图通过使用术语向量来做到这一点,但这仅限于单个文档。即使在指定文档中存在术语的情况下,响应似乎也会在某个 doc_count(在 field_statistics 内)达到最大值,这让我怀疑它的准确性。

请求:

http://myip:9200/clinicaltrials/trial/AVmk-ky6XMskTDwIwpih/_termvectors?term_statistics=true

此处使用的文档 ID 是“AVmk-ky6XMskTDwIwpih”,尽管术语统计信息不应特定于文档。

回复:

这是我对其中一个领域的“癌症”一词的理解:

 "cancer" : 
      "doc_freq" : 5297,
      "ttf" : 10587,
      "term_freq" : 1,
      "tokens" : [
        
          "position" : 15,
          "start_offset" : 115,
          "end_offset" : 121
        
      ]
    ,

如果我合计所有字段的 ttf,我得到 18915。但是,“癌症”的实际总词频实际上是 542829。这让我相信它将 term_vector 统计信息限制在其中的文档子集索引。

这里的任何建议将不胜感激。

【问题讨论】:

你用的是什么elasticsearch版本? 【参考方案1】:

计数不同的原因是术语向量不准确,除非相关索引具有单个分片。对于具有多个分片的索引,文档分布在所有分片上,因此返回的频率不是总数,而是来自随机选择的分片。

因此,返回的频率只是一个相对度量,而不是您期望的绝对值。 see the Behaviour section。 要对此进行测试,您可以创建一个分片索引并请求频率(它应该为您提供实际总数)。

【讨论】:

【参考方案2】:

我相信您需要根据elasticsearch documentation 将 term_statistics 设置为 true:

词条统计 将 term_statistics 设置为 true(默认为 false)将返回

总词频(一个词在所有文档中出现的频率)

文档频率(包含当前词条的文档数量)

默认情况下不会返回这些值,因为术语统计信息会对性能产生严重影响。

【讨论】:

这可能没有明确回答这个问题,但它确实带来了我错过的文档,谢谢你的回答!【参考方案3】:

您是否尝试过简单地使用 COUNT API? https://www.elastic.co/guide/en/elasticsearch/reference/7.6/search-count.html

它可以返回查询的匹配数。所以这样的事情可能会奏效。

GET /my_index/_count

    "query" : "match": "my_field": "my_keyword"

【讨论】:

elasticsearch中如何获取全文搜索的词频

】elasticsearch中如何获取全文搜索的词频【英文标题】:Howtogetthewordfrequencyoffull-textsearchinelasticsearch【发布时间】:2022-01-2406:20:36【问题描述】:我有几个这样的文件:text:"hello,Iamyourfriend"text:"hello,hello"text:"everybodysaid:hellohello"在全... 查看详情

elasticsearch-springboot整合es:解析搜索返回字段(代码片段)

文章目录1.数据构造2.ElasticSearch查询集群中所有索引中的所有文档3.ElasticSearch搜索结果字段解析1.took搜索请求耗费了多少毫秒2.shards查询中参与分片的总数3.timed_out查询是否超时4.hits表示搜索结果4.SpringBoot整合ElasticSearch获取搜索... 查看详情

如何使用 NEST 更新 ElasticSearch 索引中的现有文档?

】如何使用NEST更新ElasticSearch索引中的现有文档?【英文标题】:HowdoIupdateanexistingdocumentinsideElasticSearchindexusingNEST?【发布时间】:2014-05-2201:09:19【问题描述】:我正在尝试更新现有的索引文档。我有索引标签、标题和所有者字段... 查看详情

elasticsearch快照和恢复

摘要:在Elasticsearch中的可以创建快照,它创建单个索引或整个群集到一个远程的存储库中。在以前的版本中,系统只支持共享存储的快照创建,最新的版本可以通过插件支持更多的方式。在执行快照操作前,需要在Elasticsearch中进... 查看详情

ElasticSearch 中的随机文档

】ElasticSearch中的随机文档【英文标题】:RandomdocumentinElasticSearch【发布时间】:2014-11-1107:54:03【问题描述】:有没有办法从弹性搜索索引中获取真正随机的样本?即从索引中检索任何文档的查询概率为1/N(其中N是当前索引的文... 查看详情

elasticsearch系列---相关性评分算法及正排索引(代码片段)

...相关性评分的算法,以及正排索引排序的优势。评分算法Elasticsearch进行全文搜索时,BooleanModel是匹配的基础,先用booleanmodel将匹配的文档挑选出来,然后再运用评分函数计算相关度,参与的函数如我们提到的TF/IDF、LengthNorm等,... 查看详情

elasticsearch:获取nested类型数组中的所有元素(代码片段)

在我之前的文章“Elasticsearch:object及nested数据类型”对nested数据类型做了一个比较详细的介绍。在实际使用中,你在构建查询时肯定会遇到一些问题。根据官方文档介绍,nested类型字段在隐藏数组中索引其每个项目,... 查看详情

elasticsearch:获取nested类型数组中的所有元素(代码片段)

在我之前的文章“Elasticsearch:object及nested数据类型”对nested数据类型做了一个比较详细的介绍。在实际使用中,你在构建查询时肯定会遇到一些问题。根据官方文档介绍,nested类型字段在隐藏数组中索引其每个项目,... 查看详情

如何根据 Elasticsearch 中的 IP 地址列表获取地理位置

】如何根据Elasticsearch中的IP地址列表获取地理位置【英文标题】:Howtogetgeo-locationbasedonlistofipaddressesinElasticsearch【发布时间】:2019-06-1821:36:49【问题描述】:我有一堆已经在Elastic中编制索引的日志文件。有没有办法可以在我的索... 查看详情

如何使用 Elasticsearch 中的 Solr 索引

】如何使用Elasticsearch中的Solr索引【英文标题】:HowtouseSolrindexesfromElasticsearch【发布时间】:2015-10-0109:11:59【问题描述】:我使用Solr进行索引和搜索。现在,我的新数据在elasticsearch上被索引。如何使用elasticsearch中的Solr索引进行... 查看详情

es中的分词器

...词器)和Filter(过滤器)组成。ES允许用户通过配置文件elasticsearch.yml自定义分析器Analyzer,如下:上面配置信息注册了一个分析器myAnalyzer,在次注册了之后可以在索引或者查询的时候直接使用。该分析器的功能和标准分析器差... 查看详情

elasticsearch索引操作

集群的运行状况GET/_cat/health?v获取集群中的节点列表GET/_cat/nodes?v列出所有索引GET/_cat/indices?v  创建索引指定参数PUTtwitter"settings":"index":"number_of_shards":3,"number_of_replicas":2PUTtest"settings":"number_ 查看详情

elasticsearch

参考技术AElasticsearch是一个基于Lucene的实时分布式的搜索与分析引擎。Elasticsearch为所有类型的数据提供近乎实时的搜索和分析。无论结构化或非结构化文本、数字数据还是地理空间数据,Elasticsearch都可以有效地存储和索引,以... 查看详情

如何在elasticsearch中为给定查询按字段获取不同的结果?

】如何在elasticsearch中为给定查询按字段获取不同的结果?【英文标题】:Howtogetdistinctresultsbyfieldforagivenqueryinelasticsearch?【发布时间】:2013-06-1820:20:27【问题描述】:我有以下问题,我有一个包含字段“xxx”的文档,该字段可能... 查看详情

什么是 Elasticsearch 中的索引

】什么是Elasticsearch中的索引【英文标题】:WhatisanindexinElasticsearch【发布时间】:2013-02-0804:06:15【问题描述】:?一个应用程序有多个索引还是只有一个?假设您为某个汽车制造商构建了一个系统。它涉及人、汽车、备件等。您... 查看详情

在informix中索引的总大小太大或索引中的部分太多

】在informix中索引的总大小太大或索引中的部分太多【英文标题】:Thetotalsizeoftheindexistoolargeortoomanypartsinindexininformix【发布时间】:2015-07-0906:15:56【问题描述】:我正在尝试在informix上运行以下脚本:CREATETABLEREG_PATH(REG_PATH_IDSERIALU... 查看详情

BigQuery 中的 Google Analytics:从同一查询中获取特定事件操作的总事件和总会话数

】BigQuery中的GoogleAnalytics:从同一查询中获取特定事件操作的总事件和总会话数【英文标题】:GoogleAnalyticsinBigQuery:gettingtotaleventsforaspecificeventactionandtotalsessionsfromthesamequery【发布时间】:2021-08-1013:41:29【问题描述】:我正在尝试... 查看详情

elasticsearch是啥?

参考技术AElasticsearch是一个分布式文档存储。Elasticsearch存储的是序列化为JSON文档的复杂数据结构,而不是以列行数据的形式存储信息。当集群中有多个Elasticsearch节点时,存储的文档分布在整个集群中,可以立即从任何节点访问... 查看详情