Elasticsearch插件之分词ik

Elasticsearch本身对中文的分词支持不是很好,可以通过安装elasticsearch的ik分词器插件elasticsearch-analysis-ik来实现中文分词。

一、下载安装篇

方法一:
从官方网站下载, 告诉你,可以下载源码,然后自己去编译,这样比较麻烦,可以直接它的版本库中下载编译好的历史版本

方法二:
下载elasticsearch-analysis-ik-v1.9.5编译包,注意要下载编译好的包,而不是源码包。
例如:得到压缩包 elasticsearch-analysis-ik-1.9.5.zip 进入elasticsearchplugins目录,解压,重命名 analysis-ik ,然后将 analysis-ik/config 整个目录文件拷贝到 elasticsearch-2.3.5/config/ik/ 下面 , 如果elasticsearch-2.3.5/config 下面没有ik目录,需要新建ik目录。
相关命令:
unzip elasticsearch-analysis-ik-1.9.5.zip -d ./analysis-ik/ -d参数,解压到指定目录
cp -rf analysis-ik/config/ ../config/ik/ -rf参数,复制文档到指定目录

进入 elasticsearch-2.3.5/bin 重启elasticsearch服务

二、验证ik分词案例

  1. create index (创建索引(创建库))
curl -XPUT http://localhost:9200/index
  1. create a mapping (创建映射(表设计))
curl -XPOST http://localhost:9200/index/fulltext/_mapping -d'
{
    "fulltext": {
             "_all": {
            "analyzer": "ik_max_word",
            "search_analyzer": "ik_max_word",
            "term_vector": "no",
            "store": "false"
        },
        "properties": {
            "content": {
                "type": "string",
                "store": "no",
                "term_vector": "with_positions_offsets",
                "analyzer": "ik_max_word",
                "search_analyzer": "ik_max_word",
                "include_in_all": "true",
                "boost": 8
            }
        }
    }
}'
  1. index some docs (插入数据内容)
curl -XPOST http://localhost:9200/index/fulltext/1 -d'
{"content":"美国留给伊拉克的是个烂摊子吗"}
'
curl -XPOST http://localhost:9200/index/fulltext/2 -d'
{"content":"公安部:各地校车将享最高路权"}
'

curl -XPOST http://localhost:9200/index/fulltext/3 -d'
{"content":"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"}
'
curl -XPOST http://localhost:9200/index/fulltext/4 -d'
{"content":"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"}
'
  1. query with highlighting(高亮查询)
curl -XPOST http://localhost:9200/index/fulltext/_search  -d'
{
    "query" : { "term" : { "content" : "中国" }},
    "highlight" : {
        "pre_tags" : ["", ""],
        "post_tags" : ["", ""],
        "fields" : {
            "content" : {}
        }
    }
}
'

Result(结果)

{
    "took": 6,
    "timed_out": false,
    "_shards": {
        "total": 5,
        "successful": 5,
        "failed": 0
    },
    "hits": {
        "total": 2,
        "max_score": 1.5,
        "hits": [
            {
                "_index": "index",
                "_type": "fulltext",
                "_id": "4",
                "_score": 1.5,
                "_source": {
                    "content": "中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"
                },
                "highlight": {
                    "content": [
                        "中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"
                    ]
                }
            },
            {
                "_index": "index",
                "_type": "fulltext",
                "_id": "3",
                "_score": 0.53699243,
                "_source": {
                    "content": "中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"
                },
                "highlight": {
                    "content": [
                        "中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"
                    ]
                }
            }
        ]
    }
}

至此,我们的ik分词器就可以告一段落了,剩下就是继续探索!!!

热词更新配置:

待研究
参考文档:Elasticsearch 中文分词器 IK 配置和使用

你可能感兴趣的:(Elasticsearch插件之分词ik)