当前位置: 首页 > 知识库问答 >
问题:

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

林英朗
2023-03-14

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

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

此查询将返回doc\u type字段为“my\u doc\u 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"}
    }
  }
}'

现在,让我们插入以下两个文档:

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"}'

我只能检索与查询匹配的文档的映射。在这种情况下,我应该只检索字段“keyword”和“first\u name”的映射。

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

共有1个答案

景星光
2023-03-14

我不是专家,但我相信不可能得到特定ElasticSearch查询结果的“映射”。ES文档中的映射定义表示:

映射是定义文档及其包含的字段的存储和索引方式的过程。例如,使用映射定义:[…]

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

似乎检索所有结果和计算联合是必要的。或者,您可以尝试对映射中的所有字段进行聚合,计算非空值。不知道它的效率有多高。

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

 类似资料:
  • 我是Elasticsearch的新手,所以我怀疑: 我在弹性搜索中插入了大量数据。我插入的数据包含每个科目的分数属性,是否可以编写Elasticsearch查询来查找分数在输入范围内的学生人数 例子: 假设以表格方式存在于ES中的数据,是否有可能 1.找到计算机成绩超过50分的学生名单。 2、查找两门科目得分均超过60分的学生名单。

  • 本文向大家介绍MongoDB中查询数组以获取特定值,包括了MongoDB中查询数组以获取特定值的使用技巧和注意事项,需要的朋友参考一下 要从数组中获取特定值,请使用aggregate()和$project。让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是如何在MongoDB中查询数组- 这将产生以下输出-

  • 我在代码中使用条件查询。它总是激发 相反,我想忽略查询中的一列(字段),因为该字段以字节形式存储了大量数据。导致性能问题。 有谁能给出一个主意吗? 一些更新 我在查询中添加了一个投影,它创建了一个类似... 现在问题就像..中的未知列“y4_”以及y8_和y5_的相同错误意味着关闭它给出错误的所有内容。 我把它修改成像... 而且奏效了。但是不知道在HQL里面怎么修改?

  • 本文向大家介绍MongoDB查询以获取特定数量的项目,包括了MongoDB查询以获取特定数量的项目的使用技巧和注意事项,需要的朋友参考一下 要获取特定数量的项目,请在MongoDB中使用$slice运算符。让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是仅获取2个项目的查询- 这将产生以下输出-

  • 问题内容: 我在代码中使用了条件查询。它总是会开火 相反,我想忽略查询中的一列(字段),因为该字段以字节为单位存储大量数据。这会导致性能问题。 有人可以对此提出想法吗? 一些更新 我在查询中添加了一个投影,它创建了一个查询,例如… 现在的问题就像.. 和y8_的相同错误,y5_表示所有接近它给出错误的地方。 我将其修改为Query … 而且有效。但是我不知道如何在HQL中对其进行修改? 问题答案:

  • 问题内容: 我想完全匹配 字段中的字符串,并回去一天拉所有这些记录。我拥有的json也似乎与普通单词匹配。我不确定我要去哪里。我是否需要向此查询添加JSON?我当前拥有的JSON如下所示: 问题答案: 如此处所述:查找精确值,因为在对字段进行索引时已对其进行了分析- 您无法完全匹配其标记(“:”)。每当令牌应可搜索时,映射应为“ not_analyzed”,并且数据需要重新索引。 如果您希望仅轻松