elasticsearch 快速创建同义词

 搜索索引的时候,通常都会出现同义词现象。比如搜索安全套,那避孕套也要出来呀。

这就要建设同义词啦。

1:其实同义词道理很简单,先配置分词和过滤见下面配置

index.analysis.analyzer.default.type: ik
 index:
  analysis:
    analyzer:
      ik_smart:
          type: ik
          use_smart: true
      ik_max_word:
          type: ik
          use_smart: false
      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: synonym.txt
 2: 创建索引

curl  -XPOST 'work.node1:9200/librarytest'

curl -XPOST 'work.node1:9200/librarytest/book/_mapping' -d'
{
    "book": {
        "properties": {
            "name": {
                "type": "string",
                "store": "yes",
                "index": "analyzed",
                "analyzer": "ik_syno",
                "search_analyzer": "ik_syno"                
            }
        }
    }
}'

3:插入数据

   curl -X PUT work.node1:9200/librarytest/book/11 -d '
{
  "name" : "西红柿"
 
}'
curl -X PUT work.node1:9200/librarytest/book/2 -d '
{
  "name" :  "番茄"
}'


curl -X PUT work.node1:9200/librarytest/book/5 -d '
{
  "name" :  "我吃番茄"
}'
curl -X PUT work.node1:9200/librarytest/book/9 -d  '
{
  "name" :  "我爱西红柿"
}'

curl -X PUT work.node1:9200/librarytest/book/21 -d  '
{
  "name" :  "我爱tomato"
}'

curl -X PUT work.node1:9200/librarytest/book/41 -d  '
{
  "name" :  "tomato"
}'
curl -X PUT work.node1:9200/librarytest/book/23 -d  '
{
  "name" :  "toMaTo"
}'

curl -X GET work.node1:9200/librarytest/_search -d '
{
"query":{
    "term":{
        "name":"番茄"
     }
}

4:查询就可以啦

curl -X GET work.node1:9200/librarytest/_search -d '
{
"query":{
    "match_phrase": {
      "name": {
        "query": "西红柿",
        "analyzer": "ik_syno"
      }
    }
}
}'



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值