我有一个文档索引的以下映射,但查询将结果作为数字数据类型的不同数据类型返回,而它必须是文本映射。
Put my_index
{
"mappings": {
"id" :
{
"type": "text"
}
}
}
而输出是
"id":123123123123
一定是
"id":"123123123123"
答案 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”类型并不是一个好主意 - 我想你可能想要使用“关键字”(未分析)。