Elasticsearch 安装配置使用IK分词器

一、elasticsearch-analysis-ik安装

Github地址:https://github.com/medcl/elasticsearch-analysis-ik

分词方式
Analyzer: ik_smart , ik_max_word
Tokenizer: ik_smart , ik_max_word

到elasticsearch的bin目录下,使用elasticsearch-plugin安装:

1
2
cd /usr/local/elasticsearch-6.3.0
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.0/elasticsearch-analysis-ik-6.3.0.zip

安装之后,重启elasticsearch。

二、通过template自定义mapping

1、添加index_resume_template.json模板文件存放在/usr/local/logstash-6.3.0/config目录下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
    "template" : "index_resume",
    "order":1,
    "mappings": {
      "resume": {
        "properties": {
          "@version": {
            "type" : "integer"
          },
          "experience_company_name_all": {
            "type": "text",
            "analyzer": "ik_max_word",
            "search_analyzer": "ik_max_word"

          },
          ……
          "type": {
            "type": "text"
          },
          "user_id": {
            "type": "long"
          }
        }
      }
    }    
}

2、修改jdbc.conf

1
vi /usr/local/logstash-6.3.0/bin/mysql-config/jdbc.conf

添加如下代码:

1
2
3
4
5
6
7
8
9
10
11
elasticsearch{
hosts => ["xxx"]
index => "index_resume_test"
document_type => "haha"
template => "xxx/index_resume_template.json" #此处增加
template_name => "index_resume_test"  #此处增加 ,此名称和index,还有.json文件里的template要一致
template_overwrite => true  #此处增加
}
stdout{
codec => rubydebug
}

3、执行jdbc.conf

只针对后面的数据,所以最好是删除索引,重新执行jdbc.conf导入

4、关于时间字段的导入问题

导入的时候,设计到时间字段的用format处理后,一直报错。最后直接不再做date类型的mapping后正常能导入。
不过具体是什么原因,还得研究。

Leave a Comment.