Пользовательский анализатор стоп-слов не работает должным образом - PullRequest
0 голосов
/ 23 марта 2020

Я создал индекс с пользовательским анализатором для стоп-слов. Я хочу, чтобы этот elasti c -поиск игнорировал эти слова во время поиска. Затем я добавил данные одного документа в сопоставление эластичного поиска. но когда я запрашиваю в kibana ключевое слово "the" с запросом. Он не должен показывать никакого успешного совпадения, потому что в my_analzer я поместил «the» в раздел my_stop_word. Но это показывает матч. Я изучил это, если вы упомянули один анализатор во время индексации в поле отображения. тогда он берет этот анализатор по умолчанию во время запроса. пожалуйста, помогите!

PUT /pandey
{ 
  "settings":  
  { 
    "analysis":  
    { 
      "analyzer":  
      { 
        "my_analyzer":  
        { 
          "tokenizer": "standard", 
          "filter": [ 
            "my_stemmer", 
            "english_stop", 
            "my_stop_word", 
            "lowercase" 
          ] 
        } 
      }, 
      "filter": { 
        "my_stemmer": { 
          "type": "stemmer", 
          "name": "english" 
        }, 
        "english_stop":{ 
          "type": "stop", 
          "stopwords": "_english_" 
        }, 
        "my_stop_word": { 
          "type": "stop", 
          "stopwords": ["robot", "love", "affection", "play", "the"] 
        } 
      }
    } 
  },
  "mappings": {
    "properties": {
      "dialog": {
        "type": "text",
        "analyzer": "my_analyzer"
      }
    }
  }
}


 PUT pandey/_doc/1
 {
    "dailog" : "the boy is a robot. he is in love. i play cricket"
 }

 GET pandey/_search
    {
      "query": {
        "match": {
          "dailog": "the"
        }
      }
    }

1 Ответ

1 голос
/ 24 марта 2020

Небольшая орфографическая ошибка может привести к этому.

Вы определили отображение для dialog, но добавили документ с именем поля dailog. поведение elasti c сопоставления полей Dynami c будет индексировать его без ошибок. хотя мы можем отключить его.

Таким образом, запрос "dailog": "the" получит результат, используя анализатор по умолчанию.

...