1

我有一个映射为文本的字段,其中包括另一个映射为关键字的字段(字段关键字)。我插入数据并确保可以使用任何查询检索它。但是,当我查询附加字段(映射为关键字)时,我根本找不到任何数据。这是示例(简化):

POST people/_mapping/_doc
{
  "properties": {
    "name": {
      "type": "text"
    },
    "bio": {
      "type": "text",
      "fields": {
        "keyword": {
          "type": "keyword"
        }
      }
    }
  }
}

这是一个查询:

POST people/_search
{
  "query": {
    "match": {
      "bio.keyword": "Portugal"
    }
  }
}

无论外壳如何(葡萄牙与葡萄牙),都会发生同样的情况。这种行为的原因是什么?

4

2 回答 2

1

在 elasticseach 中,如果您有文本类型字段,请说description.

描述的一个值是:He likes dog but hate cat.

该字段的还原索引为:He/like/dog/but/hate/cat

还有另一个“关键字”字段是 description.keyword,这正是He likes dog but hate cat.

关键字字段要求 100% 匹配。

于 2018-09-16T11:10:46.470 回答
0

知道了:

关键字字段只能按其确切值搜索

参考:https ://www.elastic.co/guide/en/elasticsearch/reference/current/keyword.html

于 2018-09-16T11:00:56.520 回答