java

elasticsearch之ik分词器

1.安装

下载对应版本的ik分词器 下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

解压到 es安装目录的plugins的ik目录下

重启es

2.简介

1、ik_max_word

会将文本做最细粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为“中华人民共和国、中华人民、中华、华人、人民共和国、人民、共和国、大会堂、大会、会堂等词语。

2、ik_smart

会做最粗粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为中华人民共和国、人民大会堂。

索引时用 ik_max_word; 查询时用 ik_smart

3.使用

1.创建索引

PUT http://localhost:9200/my-index

2.创建mapping


//Content-Type:application/json
POST http://localhost:9200/my-index/_mapping 

{
        "properties": {
            "content": {
                "type": "text",
                "analyzer": "ik_max_word", 
                "search_analyzer": "ik_smart"
            }
        }

}

3.添加文档

//Content-Type:application/json

POST http://localhost:9200/my-index/_create/1
{"content":"美国留给伊拉克的是个烂摊子吗"}

POST http://localhost:9200/my-index/_create/2
{"content":"公安部:各地校车将享最高路权"}

POST http://localhost:9200/my-index/_create/3
{"content":"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"}

4.高亮查询

//Content-Type:application/json
POST http://localhost:9200/my-index/_search
{
    "query" : { "match" : { "content" : "中国" }},
    "highlight" : {
        "pre_tags" : ["<tag1>", "<tag2>"],
        "post_tags" : ["</tag1>", "</tag2>"],
        "fields" : {
            "content" : {}
        }
    }
}

关于作者

程序员,软件工程师,java, golang, rust, c, python,vue, Springboot, mybatis, mysql,elasticsearch, docker, maven, gcc, linux, ubuntu, centos, axum,llm, paddlepaddle, onlyoffice,minio,银河麒麟,中科方德,rpm