代码之家  ›  专栏  ›  技术社区  ›  Simple Code

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

  •  0
  • Simple Code  · 技术社区  · 7 年前

    我有Category字段,我需要为它配置映射,这样我只能在术语级查询中使用它。

    我见过这种方法:

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

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

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

    1 回复  |  直到 7 年前
        1
  •  2
  •   Richa    7 年前
       "category": {
         "type": "text",
           "fields": {
             "keyword": {
               "type": "keyword"
             }
           }
        }
    

    这个定义实际上是一个概念 Multifield 类别的表示。在这里,你将有两个不同版本的领域-一个将被分析,可以直接访问 category 另一个是 Not-Analyzed 可由用户访问的版本 category.keyword .

    您指定的其他定义:

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

    将类别定义为其分析器为的文本字段 keyword i、 e.类别字段将存储为 领域

    在 5.0 Elasticsearch版本,所有字段类型为 text 默认情况下,包含给定的未分析版本 here