Запрос Synomys ElasticSearch - PullRequest
0 голосов
/ 11 мая 2018

Я создаю новый индекс с синонимом следующим образом:

PUT / test_index2

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

}

Когда я попробую этот запрос:

{
   "query": 
     {
        "multi_match": 
            {
               "query": "centro",
               "fields": ["content"],
                "analyzer": "synonym"
            }
      }
  }

Кибана дает мне эту ошибку:

  [multi_match] analyzer [synonym] not found

Я не очень разбираюсь в резинках, не могли бы вы мне помочь?

1 Ответ

0 голосов
/ 11 мая 2018

Вам необходимо создать собственный анализатор, который использует ваш фильтр синонимов

{
"settings": {
    "index" : {
        "analysis" : {
            "analyzer": {                          <-- add this
                "synonym_analyzer": {
                   "type": "custom",
                   "filter": ["synonym"],
                   "tokenizer": "keyword"
                }
            },
            "filter" : {
                "synonym" : {
                    "type" : "synonym",
                    "synonyms" : [
                        "mezzo,centro"
                    ]
                }
            }
        }
    }
}

И тогда вы можете использовать его в своем запросе

{
   "query": 
     {
        "multi_match": 
            {
               "query": "centro",
               "fields": ["content"],
                "analyzer": "synonym_analyzer"   <-- change this
            }
      }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...