ElasticSearch Multiword同义词

时间:2016-03-14 15:55:03

标签: elasticsearch full-text-search search-engine synonym

我有同义词分析器

{
  "settings": {
    "analysis": {
      "filter": {
        "synonyms": {
          "type": "synonym", 
      "synonyms": [
        "st,str,street",             
        "district of columbia,dc"
      ]
    }
      },
      "analyzer": {
        "synonyms": {
          "tokenizer": "standard",
          "filter": [
            "lowercase",
            "synonyms" 
          ]
        }
      }
    }
  }
}

如果我在" street"上进行分析,它会给我" st"和" str"是同义词。

但如果我继续使用" DC"它会给我"区","""和"哥伦比亚"是同义词。

如何制作" DC"和哥伦比亚特区"同义词?

2 个答案:

答案 0 :(得分:1)

提供如下同义词:

"filter": {
    "synonyms": {
      "type": "synonym", 
      "synonyms": [
         "st,str,street",             
          "district of columbia,dc=>dc"
       ]
    }
}

请查看reference了解详情

答案 1 :(得分:0)

您可以将Analyzer.tokenizer更改为“关键字”,

"analyzer": {
    "synonyms": {
      "tokenizer": "keyword",
      "filter": [
        "lowercase",
        "synonyms" 
      ]
    }
  }

这将“哥伦比亚特区”视为一个实体,并映射到“哥伦比亚特区”