Elasticsearch:无法从关键字字段获取结果

时间:2018-09-16 10:57:25

标签: elasticsearch elasticsearch-mapping

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

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

这是一个查询:

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

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

2 个答案:

答案 0 :(得分:1)

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

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

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

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

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

答案 1 :(得分:0)

知道了

  

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

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