elasticsearch同义词配置,楼主亲测

1安装jdk(版本要求较高);

2装elasticsearch;

3安装head插件;

4安装IK插件:

(前面2~4步可以省略,通过直接解压elasticsearch.rar文件代替这三个步骤)。

5.配置同义词:

     同义词组件已经是elasticsearch自带的了,所以不需要额外安装插件,但是想要让同义词和IK一起使用,就需要配置自己的分析器了。

配置步骤如下:

          打开config/elasticsearch.yml文件,在文件的尾部加上以下配置:

index: 

  analysis: 

    analyzer: 

      ik_syno: 

          type: custom 

          tokenizer: ik_max_word 

          filter: [my_synonym_filter] 

      ik_syno_smart: 

          type: custom 

          tokenizer: ik_smart 

          filter: [my_synonym_filter] 

    filter: 

      my_synonym_filter: 

          type: synonym 

          synonyms_path: analysis/synonym.txt

以上配置定义了ik_syno和ik_syno_smart两个新的analyzer,分别对应ik分词器的ik_max_word和ik_smart两种分词方式。ik_syno和ik_syno_smart都应用了新定义的过滤器my_synonym_filter实现同义词转换。

6.配置完成以后,在config目录下创建analysis/synonym.txt文件:

    创建synonym.txt文件完成后,在文件中输入一些自定义的同义词,并按UTF-8的格式保存。(如:西红柿,番茄;苹果,手机配件;正文,汉语)

7.重启elasticsearch;

8.访问本地的地址(http://localhost:9200/_plugin/oob):

   (1)登录后,点击head

    (2)创建索引,并设置应用的分词策略,具体代码如下:

    PUT  http://localhost:9200/neusoft

   {

  "mappings": {

    "goods": {

      "properties": {

        "title": {

          "index": "analyzed",

          "type": "string",

          "term_vector": "with_positions_offsets",

          "analyzer": "ik",

          "search_analyzer": "ik_syno"

        }

      }

    }

  }

}

     以上代码设置了search_analyzer的分词器是我们之前自定义的ik_syno,这样同义词搜索功能就实现了。需要注意的是,索引名需要是英文字母小写,不可以添加下划线等。

    (3)向索引中添加数据:

     插入数据语句如下:

       PUT  http://localhsot:9200/neusoft/goods/1

      {"title":"苹果"}

      PUT  http://localhsot:9200/neusoft/goods/2

      {"title":"手机配件"}

      以上数字1,2是数据的ID。

    (4)查询:

       数据插入完成后,就可以验证同义词搜索功能:

       POST  http://localhost:9200/neusoft/goods/_search

              {

             "query": {

              "match": {

                  "title": "苹果"

                     }

                 }      

              }

              这样就会将"苹果"和"手机配件"都查询出来了。

 

转载于:https://www.cnblogs.com/bobo-family/p/6029372.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值