Elasticserch2-analysis-ik(中文分词)

1.安装

    1.下载相应版本:https://github.com/medcl/elasticsearch-analysis-ik

    2.maven打包

        mvn clean

        mvn compile

        mvn package

    3.在elasticsearch安装包下的plugins文件夹下新建ik文件夹,并将maven打包生成的elasticsearch-analysis-ik/target/releases/elasticsearch-analysis-ik-*.zip解压到ik目录

2.设置分词

    1.settings修改索引库默认配置

    例如:分片数量,副本数量

 查看:curl -XGET http://localhost:9200/zhouls/_settings?pretty

   操作不存在索引:curl -XPUT 'localhost:9200/liuch/' -d'{"settings": {"number_of_shards":3,"number_of_replicas":0}}'

    操作已存在索引:curl -XPUT '192.168.80.10:9200/zhouls/_settings' -d'{"index":{"number_of_replicas":1}}'

    总结:不存在索引时,可以指定副本和分片,如果已经存在,则只能修改副本。在创建新的索引库时,可以指定索引分片的副本数。默认是。

    2.mappings配置

    Mapping,就是对索引库中索引的字段名称及其数据类型进行定义,类似于mysql中的表结构信息。不  过es的mapping比数据库灵活很多,它可以动态识别字段。一般不需要指定mapping都可以,因为es会自动根据数据格式识别它的类型,如果你需要对某些字段添加特殊属性(如:定义使用其它分词器、是否分词、是否存储等),就必须手动添加mapping。

    我们在es中添加索引数据时不需要指定数据类型,es中有自动影射机制,字符串映射为string,数字映射为long。通过mappings可以指定数据类型是否存储等属性。

    例如:字段类型,使用哪种分词工具啊等,如下:

    注意:下面可以使用indexAnalyzer定义分词器,也可以使用index_analyzer定义分词器

    操作不存在的索引

    curl -XPUT 'localhost:9200/account' -d'{"mappings":{"emp":{"properties":{"name":{"type":"string","analyzer": "ik_max_word"}}}}}'

    操作已存在的索引

    curl -XPOST http://localhost:9200/account/user/_mapping -d'{"properties":{"name":{"type":"string","analyzer": "ik_max_word"}}}'

    3.查看"小正"分词:curl 'localhost:9200/account/_analyze?pretty=1&analyzer=ik_max_word' -d '小正'

3.案例。如:

curl -XGET http://localhost:9200/account/_settings?pretty
{
    "account" : {
        "settings" : {
            "number_of_replicas" : "1",
            "number_of_shards" : "5"
        }
        "mappings" : {
            "user" : {
                "properties" : {
                    "id" : {
                        "type" : "integer",
                        "index":"not_analyzed"
                    },
                    "name" : {
                        "type" : "string",
                        "index":"analyzed",
                        "analyzer":"ik_max_word",
                        "search_analyzer": "ik_max_word"
                    },
                    "age" : {
                        "type" : "integer",
                        "index":"not_analyzed"
                    },
                    "sex" : {
                        "type" : "integer",
                        "index":"not_analyzed"
                    }
                }
            }
        }
    }
}

你可能感兴趣的:(Elasticserch2-analysis-ik(中文分词))