对于 Elasticsearch 的映射,如果日语单词被解析成零散的情况,应该如何处理
关于Elasticsearch的映射定义。
当将数据注册到Elasticsearch并准备在Kibana中进行可视化时,
若遇到日语单词被分散识别的问题,以下是对应的解决方法。
当希望按日志关键词进行聚合时,若日语词汇是分散的,则无法进行聚合。
定义映射后,请注册数据。
在Elasticsearch中,如果您在不定义映射的情况下注册数据,它将自动进行映射,但可能不符合您的预期映射,请注意。顺便提一下,您可以在这个网站上学习有关映射的知识。
在Elasticsearch中,映射相当于关系型数据库中的表定义。然而,它不仅仅是为了存储数据而准备字段并设置类型。在Elasticsearch中,除了字段类型之外,还可以进行各种配置,如语言分析处理等,以便使文档可被搜索。
制定映射定义方式
对于不想进行分词的项目,可以通过指定为”not_analyzed”来进行注册。
这样,日语的文章可以直接存储,并且可以在Kibana中通过日志内容等进行聚合。
curl -XPUT 'http://your_es_host_address/elasticsearch' -d
{
"Your_Index_Name" : {
"mappings" : {
"Your_Document_Name" : {
"properties" : {
"@timestamp" : {
"type" : "date",
"format" : "dateOptionalTime"
},
"hoge" : {
"type" : "string",
"index": "not_analyzed"
},
"fuga" : {
"type" : "string",
"index": "not_analyzed"
},
"contents" : {
"type" : "string",
"index": "not_analyzed"
},
}
}
}
}
}
确认映射定义。
您可以使用以下命令来确认映射定义。
只需确认是否存在not_analyzed属性即可。
curl -XGET 'http://your_es_host_address/elasticsearch/Your_Index_Name/Your_Document_Name/_mapping?pretty=true'