elasticsearch 查询Synomys ElasticSearch,elasticsearch,kibana,elasticsearch,Kibana" /> elasticsearch 查询Synomys ElasticSearch,elasticsearch,kibana,elasticsearch,Kibana" />

elasticsearch 查询Synomys ElasticSearch

elasticsearch 查询Synomys ElasticSearch,elasticsearch,kibana,elasticsearch,Kibana,我用同义词创建了一个新索引,方法如下: PUT/test\u index2 { "settings": { "index" : { "analysis" : { "filter" : { "synonym" : { "type" : "synonym", "synonyms" : [ "me

我用同义词创建了一个新索引,方法如下:

PUT/test\u index2

{
"settings": {
    "index" : {
        "analysis" : {
            "filter" : {
                "synonym" : {
                    "type" : "synonym",
                    "synonyms" : [
                        "mezzo,centro"
                    ]
                }
            }
        }
    }
}
}

当我尝试此查询时:

{
   "query": 
     {
        "multi_match": 
            {
               "query": "centro",
               "fields": ["content"],
                "analyzer": "synonym"
            }
      }
  }
Kibana告诉我这个错误:

  [multi_match] analyzer [synonym] not found

我对elastic不是很有经验,你能帮我吗?

你需要创建一个利用同义词过滤器的自定义分析器

{
"settings": {
    "index" : {
        "analysis" : {
            "analyzer": {                          <-- add this
                "synonym_analyzer": {
                   "type": "custom",
                   "filter": ["synonym"],
                   "tokenizer": "keyword"
                }
            },
            "filter" : {
                "synonym" : {
                    "type" : "synonym",
                    "synonyms" : [
                        "mezzo,centro"
                    ]
                }
            }
        }
    }
}
{
“设置”:{
“索引”:{
“分析”:{

“analyzer”:{很酷,很高兴它有帮助!如果我使用txt,我应该做同样的事情吗?不确定你的意思,内容字段是一个
text
字段,对吗?在txt文件中插入同义词,因为我有更多的同义词。然后简单地指定同义词文件的路径并重新启动节点
{
   "query": 
     {
        "multi_match": 
            {
               "query": "centro",
               "fields": ["content"],
                "analyzer": "synonym_analyzer"   <-- change this
            }
      }
  }