Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Отображение ›Параметры отображения

analyzer

Только поля типа text поддерживают параметр отображения analyzer.

Параметр analyzer указывает анализатор, используемый для анализа текста при индексировании или поиске поля text.

Если не переопределено параметром отображения search_analyzer, этот анализатор используется для анализа при индексировании и поиске. См. Указание анализатора.

Рекомендуется тестировать анализаторы перед их использованием в рабочей среде. См. Тестирование анализатора.

Настройка analyzer не может быть обновлена для существующих полей с помощью API обновления отображения .

search_quote_analyzer

Настройка search_quote_analyzer позволяет указать анализатор для фраз, что особенно полезно при отключении стоп-слов для запросов по фразам.

Для отключения стоп-слов для фраз потребуется поле с тремя настройками анализатора:

  1. Настройка analyzer для индексирования всех терминов, включая стоп-слова
  2. Настройка search_analyzer для запросов, не являющихся запросами по фразам, которые будут удалять стоп-слова
  3. Настройка search_quote_analyzer для запросов по фразам, которые не будут удалять стоп-слова
PUT my-index-000001
{
   "settings":{
      "analysis":{
         "analyzer":{
            "my_analyzer":{ 
               "type":"custom",
               "tokenizer":"standard",
               "filter":[
                  "lowercase"
               ]
            },
            "my_stop_analyzer":{ 
               "type":"custom",
               "tokenizer":"standard",
               "filter":[
                  "lowercase",
                  "english_stop"
               ]
            }
         },
         "filter":{
            "english_stop":{
               "type":"stop",
               "stopwords":"_english_"
            }
         }
      }
   },
   "mappings":{
       "properties":{
          "title": {
             "type":"text",
             "analyzer":"my_analyzer", 
             "search_analyzer":"my_stop_analyzer", 
             "search_quote_analyzer":"my_analyzer" 
         }
      }
   }
}

PUT my-index-000001/_doc/1
{
   "title":"The Quick Brown Fox"
}

PUT my-index-000001/_doc/2
{
   "title":"A Quick Brown Fox"
}

GET my-index-000001/_search
{
   "query":{
      "query_string":{
         "query":"\"the quick brown fox\"" 
      }
   }
}

Настройка search_quote_analyzer может быть обновлена для существующих полей с помощью API обновления отображения .

Анализатор my_analyzer, который токенизирует все термины, включая стоп-слова

Анализатор my_stop_analyzer, который удаляет стоп-слова

Настройка analyzer, указывающая на анализатор my_analyzer, который будет использоваться во время индексирования

Настройка search_analyzer, указывающая на анализатор my_stop_analyzer и удаляющая стоп-слова для запросов, не являющихся запросами по фразам

Настройка search_quote_analyzer, указывающая на анализатор my_analyzer и гарантирующая, что стоп-слова не удаляются из запросов по фразам

Поскольку запрос заключён в кавычки, он распознаётся как запрос по фразе, поэтому срабатывает search_quote_analyzer и гарантирует, что стоп-слова не удаляются из запроса. Анализатор my_analyzer затем вернёт следующие токены [the, quick, brown, fox], которые будут совпадать с одним из документов. В то же время запросы по терминам будут анализироваться с помощью анализатора my_stop_analyzer, который будет фильтровать стоп-слова. Таким образом, поиск The quick brown fox или A quick brown fox вернёт оба документа, поскольку оба документа содержат следующие токены [quick, brown, fox]. Без search_quote_analyzer невозможно выполнить точное соответствие для запросов по фразам, так как стоп-слова из запросов по фразам будут удалены, что приведёт к соответствию обоих документов.

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/analyzer.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API