Elsaticsearch ik同义词配置(版本6.3.2)

Elsaticsearch ik同义词配置(版本6.3.2)

网上修改elasticsearch.yml文件配置同义词针对的是5.x版本,在6.0以上已经不行了,在这里记录一下我的配置过程.
1.创建一个索引

curl -XPUT http://localhost:9200/index

2.关闭索引

curl -XPOST 'localhost:9200/index/_close'

3.创建synonyms.txt 文件,保存为utf-8格式,并注意文件的权限

配置的格式为(前面是同义词,后面是实际存在的词):
china,中国

4.配置ik同义词

curl -XPUT http://localhost:9200/index/_settings -H 'Content-Type:application/json' -d'
{
     "index.analysis.analyzer.ik_syno.filter" : [
       "my_synonym_filter"
     ],
     "index.analysis.analyzer.ik_syno.tokenizer" : "ik_max_word",
     "index.analysis.analyzer.ik_syno.type" : "custom",
     "index.analysis.analyzer.ik_syno_smart.filter" : [
       "my_synonym_filter"
     ],
     "index.analysis.analyzer.ik_syno_smart.tokenizer" : "ik_smart",
     "index.analysis.analyzer.ik_syno_smart.type" : "custom",
     "index.analysis.filter.my_synonym_filter.synonyms_path" : "synonyms.txt",
     "index.analysis.filter.my_synonym_filter.type" : "synonym"
}'

以上配置定义了 ik_syno 和 ik_syno_smart 这两个新的 analyzer,分别对应 IK 的 ik_max_word 和 ik_smart 两种分词策略,到此同义词配置已经完成,重启ES即可,搜索时指定分词为ik_syno或ik_syno_smart.
5.创建mapping映射

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

content 字段使用 ik_max_word 作为 analyzer没有同义词策略,title 字段使用 ik_syno 作为 analyzer 有同义词策略,分别测试即可.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值