gpt4 book ai didi

elasticsearch - _all elasticsearch中每个字段的条件与每个字段的值

转载 作者:行者123 更新时间:2023-12-02 23:22:56 25 4
gpt4 key购买 nike

我刚刚开始学习elasticsearch,想知道我从elasticsearch website复制的以下句子中的术语和值之间的区别是什么:

"It is important to note that the _all field combines the original values from each field as a string. It does not combine the terms from each field.



当我理解值(value)是什么时,我一直在为每个 Realm 的条款奋斗!
有人可以帮我的意思吗?

最佳答案

您粘贴的内容之前的段落有一些解释:

The date_of_birth field in the above example is recognised as a date field and so will index a single term representing 1970-10-24 00:00:00 UTC. The _all field, however, treats all values as strings, so the date value is indexed as the three string terms: "1970", "24", "10".



换句话说, _all字段从索引文档中获取原始值,并且 通过其自己的分析器运行它们,产生其自己的术语,然后将其存储在索引中。它不使用其他字段的分析器生成的 terms

我上面粘贴的段落中给出了一个示例。它说明 date_of_birth字段将被识别为 date类型,因此将分析并将字段值存储为单个术语 1970-10-24 00:00:00 UTC。因此,如果您尝试将 date_of_birth字段与 match查询进行匹配,如下所示:
{ "query": { "match: { "date_of_birth": "24 10" } } }

您将找不到该文档,因为解析器将无法将提供的值解析为日期。

另一方面,如果您将对 _all字段运行相同的查询,则肯定会找到该文档:
{ "query": { "match: { "_all": "24 10" } } }

因为,如文档所建议, _all字段将包括以下 text类型术语: ["1970", "10", "24"]

让我们看另一个例子。假设您具有以下 mapping类型的 user:
"user": { 
"properties": {
"nickname": { "type": "keyword" },
"name": { "type": "text" },
"age": { "type": "integer" }
}
}

然后您索引以下文档:
{
"nickname": "Super-Man",
"name": "John",
"age": 25
}

Elasticsearch将根据文档的类型分析其字段,最终为这些字段中的每个字段存储以下术语:
  • _all:["super", "man", "john", "25"]-所有字符串
  • nickname:["Super-Man"]
  • name:["john"]
  • age:[25]-整数

  • 因此,如果您尝试使用 match(或 term)查询来查找此文档,而 nickname等于 super,则找不到该文档。因为 nickname字段被分析为 keyword,所以必须使用准确的字符串来查找它- "Super-Man"

    但是,如果您尝试使用 match等于 _allsuper查询来查找此文档,则会找到它。

    另一方面,如果您尝试通过对 term字段使用 _all查询一个整数值 25来查找此文档,则将找不到该文档。同样,因为 _all字段只是 text字段,所以:
    { "query": { term": { "_all": 25} } }

    但是在 age字段上运行相同的查询将返回文档:
    { "query": { term": { "age": 25} } }

    关于elasticsearch - _all elasticsearch中每个字段的条件与每个字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46867075/

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