elasticsearch是否根据输入更改数据类型

时间:2017-08-21 09:36:16

标签: elasticsearch cypher kibana

我有一个文档索引的以下映射,但查询将结果作为数字数据类型的不同数据类型返回,而它必须是文本映射。

Put my_index
    {
     "mappings": {
           "id" :
        {
          "type": "text"
        } 
       } 
    }

而输出是

"id":123123123123

一定是

   "id":"123123123123"

1 个答案:

答案 0 :(得分:0)

当原始索引请求中的数据包含整数而不是字符串时,会发生这种情况。该值仍然作为字符串存储在反向索引中(在应用为字段指定的任何分析器之后,在本例中为标准分析器,这是“text”的默认值),但返回的文档源正好是值当你索引它时收到它。

您可以在创建索引请求的代码中解析此问题(在编制索引之前强制转换为字符串),也可以使用摄取节点(https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest.html)并转换处理器(https://www.elastic.co/guide/en/elasticsearch/reference/current/convert-processor.html) 。

另外,对ids使用“text”类型并不是一个好主意 - 我想你可能想要使用“关键字”(未分析)。