Elasticsearch 5.X为index指定中文分词器ik

Elasticsearch用于json格式数据的全文检索十分方便,但是需要一些时间来熟悉和配置。最权威的配置说明在官方文档这里,但是由于是英文的,而且新概念和内容十分多,初学者往往不容易找到解决问题的办法。笔者解决这篇文章中的问题就花了2天时间,所以记录下来,方便初学者查阅。

Elasticsearch 5.X不再支持elasticsearch.yml配置文件中全局的分词器配置,那么如果想给一个index的所有type指定使用中文分词器IK Analysis,怎么设置呢?

首先你需要以插件方式安装ik,安装方法请移步这里

然后一定要安装一个图形化界面,比如head。

最后用http PUT请求设置my_index索引的默认分词器。注意须在索引尚不存在时发送http请求,如果有别的索引级别的设置,需要放在请求体里面一起发送。下图所示的设置除了设置默认分词器,还设置了关闭自动日期检测(关于自动日期检测将在下一篇文章中详述)。


PUT my_index
{
"settings": {
    "analysis": {
      "analyzer": {"default":{"type":"ik_max_word"}}
    }
  }

}

这样设置之后,该index下以后建立的所有type都会使用ik作为分词器啦。

当然官方文档中提交会在后面的版本逐渐移除type概念,这就是另一回事了。

展开阅读全文

没有更多推荐了,返回首页