对于 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'
广告
将在 10 秒后关闭
bannerAds