当前位置 : 主页 > 网络推广 > seo >

es ik 分词 5.x后,设置默认分词

来源:互联网 收集:自由互联 发布时间:2021-06-16
1.使用模板方式,设置默认分词 注: 设置模板,需要重新导入数据,才生效 通过模板设置全局默认分词器curl -XDELETE http: // localhost:9200/_template/rtf curl -XPUT http: // localhost:9200/ _template/rt

1.使用模板方式,设置默认分词

注: 设置模板,需要重新导入数据,才生效

通过模板设置全局默认分词器

curl -XDELETE http://localhost:9200/_template/rtf


curl -XPUT http://localhost:9200/ _template/rtf
-d{
  "template":   "*", 
  "settings": { "number_of_shards": 1 }, 
  "mappings": {
    "_default_": {
      "_all": { 
        "enabled": true
      },
      "dynamic_templates": [
        {
          "strings": { 
            "match_mapping_type": "string",
            "mapping": {
              "type": "text",
              "analyzer":"ik_max_word",
              "ignore_above": 256,
              "fields": {
                "keyword": {
                  "type":  "keyword"
                }
              }
            }
          }
        }
      ]
    }
  }
}

2.单个设置分词(github上的例子)

curl -XPOST http://localhost:9200/index/fulltext/_mapping -H ‘Content-Type:application/json‘ -d‘
{
        "properties": {
            "content": {
                "type": "text",
                "analyzer": "ik_max_word",
                "search_analyzer": "ik_max_word"
            }
        }

}
curl -XPOST http://localhost:9200/索引/类型/_mapping -H ‘Content-Type:application/json‘ -d‘
{
        "properties": {
            "字段": {
                "type": "text",
                "analyzer": "ik_max_word",
                "search_analyzer": "ik_max_word"
            }
        }

}

注: 设置如果 遇到 

            {
                "type": "illegal_argument_exception",
                "reason": "Mapper for [content] conflicts with existing mapping in other types:\n[mapper [content] has different [analyzer]]"
            }

从错误提示上来看是说要创建的映射已经存在了,问题的关键就在于我没有创建过叫index的索引

解决:重新导入数据,不做查询的情况下(查询了的话,会默认创建一个mapping),设置_mapping

网友评论