gpt4 book ai didi

elasticsearch - 获取 Elasticsearch 中特定查询对应的映射

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

由于 Elasticsearch 的最新版本已弃用单个索引中的多个类型,我通过类型为“关键字”的“doc_type”字段组织了我的数据,这使我能够运行如下查询:

curl 'localhost:9200/my_index/_search?pretty&q=doc_type:my_doc_type'

此查询将返回 doc_type 字段恰好为“my_doc_type”的所有文档。现在,我只想从这种请求中检索字段的映射。

为了重现这种情况,假设我们按如下方式定义索引映射:

curl -XPUT 'localhost:9200/my_index/my_type/_mapping?pretty' -H 'Content-Type: application/json' -d '{
"my_type" : {
"properties" : {
"first_name" : {"type" : "text" },
"last_name": {"type": "text"},
"doc_type": {"type": "keyword"}
}
}
}'

现在,让我们注入(inject)以下两个文件:

curl -XPUT 'localhost:9200/my_index/my_type/1' -H 'Content-Type: application/json' -d '{ "last_name": "Doe", "first_name": "John", "doc_type": "type_a"}'
curl -XPUT 'localhost:9200/my_index/my_type/1' -H 'Content-Type: application/json' -d '{ "first_name": "Jane", "doc_type": "type_b"}'

我将只能检索与查询 q=doc_type:type_b 匹配的文档的映射。在那种情况下,我应该只检索字段“keyword”和“first_name”的映射。

如果单个查询无法做到这一点,我知道 Elasticsearch 提供了一个特定的字段映射查询,但要使用它,我首先需要检索与 q=doc_type 匹配的所有文档的所有字段联合: type_b 查询。还有办法做到这一点吗?

最佳答案

我不是专家,但我认为不可能获得特定 ElasticSearch 查询结果的“映射”。 definition of the mapping来自 ES 文档说:

Mapping is the process of defining how a document, and the fields it contains, are stored and indexed. For instance, use mappings to define: [...]

这个概念对于查询结果没有意义。

看来检索所有结果和计算并集是必要的。或者,您可以尝试对非空值映射中的所有 字段进行聚合。不确定它的效率如何。

无论如何,接收整个映射并过滤相关字段可能比为每个字段单独检索每个字段更好。

关于elasticsearch - 获取 Elasticsearch 中特定查询对应的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54481337/

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