如何在Elasticsearch中为关键字type的文本字段配置映射?

时间:2018-12-23 13:16:21

标签: elasticsearch

我有类别字段,我需要为其配置映射,以便仅在术语级查询中使用它。

我已经看到了这种方法:

"category": {
  "type": "text",
  "fields": {
    "keyword": {
      "type": "keyword"
    }
  }
}

另一个是通过使用分析器的“关键字”:

"category": {
        "type": "text",
        "analyzer": "keyword"
}

我的问题是:两种映射之间有什么区别?如何为术语级查询配置文本字段?

1 个答案:

答案 0 :(得分:2)

   "category": {
     "type": "text",
       "fields": {
         "keyword": {
           "type": "keyword"
         }
       }
    }

此定义实际上是类别的Multifield表示。在这种情况下,您将有两个不同版本的字段-将分析一个可以由category直接访问的版本,另一个将是Not-Analyzed版本,可以由category.keyword访问的版本。

您指定的另一个定义:

"category": {
    "type": "text",
    "analyzer": "keyword"
}

将类别定义为分析器为keyword的文本字段,即类别字段将存储为Not-Analyzed字段。

在发布5.0版本的Elasticsearch之后,默认情况下所有类型为text的字段都包含未分析的版本,如here

希望这会有所帮助!