gpt4 book ai didi

elasticsearch - 如何在 Elasticsearch 中获取整个索引的术语向量信息?,而不是在文档级别

转载 作者:行者123 更新时间:2023-11-29 02:56:05 25 4
gpt4 key购买 nike

根据 Elasticsearch 文档,https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-termvectors.html ,术语向量只能应用于文档。有什么办法可以在索引级别应用它。

我的用例是在应用英语停用词过滤器后,计算添加到索引的所有文档中出现的字段(类型:字符串,基本上是一个句子)中所有 uni、bi 和 trigram 的频率。

谢谢。

最佳答案

shard 中的所有文档使用术语向量存储了一些统计信息(为什么不索引?...继续阅读)。

  • 总词频(一个词在所有文档中出现的频率)
  • 文档频率(包含当前术语的文档数量)

要使其正常工作,您必须为要分析的字段启用 term_vectors。最好通过添加 term_vectors to the field definition when setting up the mapping 来完成。因为计算是在索引时完成的,所以加快了词向量检索。

然后在检索术语向量时只需添加“term_statistics”参数,ttf 就会包含在输出中。看这个例子:

GET /twitter/_doc/1/_termvectors { "fields" : ["text"], "offsets" : true, "payloads" : true, "positions" : true, "term_statistics" : true, "field_statistics" : true }

但是,请注意,如果索引使用多个分片,则 term_vectors 和依赖于 term_vectors 的“更像这样”查询是不准确的。 Say it ain't so!

The term and field statistics are not accurate. Deleted documents are not taken into account. The information is only retrieved for the shard the requested document resides in. The term and field statistics are therefore only useful as relative measures whereas the absolute numbers have no meaning in this context.

如果您想要准确的统计信息,您必须将索引设置为单个分片,这违背了使用 Elasticsearch 的目的,因为您无法将单个分片聚集在一起。 Another Stackoverflow submitter fell into this trap.如果有人知道解决方案,请发布。

关于elasticsearch - 如何在 Elasticsearch 中获取整个索引的术语向量信息?,而不是在文档级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42019940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com