gpt4 book ai didi

Elasticsearch 提问 : search, 性能和缓存

转载 作者:行者123 更新时间:2023-11-29 02:49:06 26 4
gpt4 key购买 nike

我是 elasticsearch 的新手,一直在阅读他们的 API,有些事情我不太清楚

1)据说过滤器被缓存。什么意思?如果我发送一个带有 filterquery,会缓存什么?该查询的结果?如果我使用相同的 filter 发送不同的 query,缓存会以某种方式帮助我吗?
我知道这个问题有点含糊,但 ElasticSearch 的相关文档也是如此。

2) 将术语 X 匹配到 “_all” 字段或特定字段的查询之间是否存在真正的性能差异 ?据我所知,这两个查询都将与所有在一个字段中包含 X 的文档进行比较,唯一的区别在于这些文档中有多少字段将与 X 匹配。对吗?

最佳答案

1) 对于您的第一个问题,请查看此 link .引用帖子“过滤器不会对文档进行评分——它们只是包含或排除文档。如果文档与过滤器匹配,则在 BitSet 中用 1 表示;否则为零。这意味着 Elasticsearch 可以存储整个段的过滤器状态(“谁匹配这个特定的过滤器?”)在一个紧凑的 BitSet 中。

Elasticsearch 第一次执行过滤器时,它会解析 Lucene 段数据结构以确定匹配您的过滤器的内容。它不会丢弃此信息,而是将其缓存在 BitSet 中。

下次执行相同的过滤器时,Elasticsearch 可以引用紧凑的 BitSet 而不是 Lucene 段。这具有巨大的性能优势。”

2) "_all 字段的想法是它包含索引文档中一个或多个其他字段的文本。它可以非常方便,特别是对于搜索请求,我们希望对内容执行搜索查询的文档,而不知道要搜索哪些字段。这是以 CPU 周期和索引大小为代价的。” link因此,如果您知道要查询哪些字段,请使用特定字段进行搜索。

关于Elasticsearch 提问 : search, 性能和缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21959298/

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