токенизировать текстовое поле для поиска предложений - PullRequest
0 голосов
/ 27 февраля 2019

В моем текущем индексе у меня есть текстовое поле.Я хочу использовать отдельные слова из этого поля в качестве предложений.пример:

{text: "af bf aff bff"},
{text: "afff bfff "}

поэтому для запроса термина "af" у меня должны быть предложения af, aff, afff.

Я смотрю на функциональность упругих поисковых подсказок, но до сих пор не ясно, как мне добиться желаемого поведения.https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters.html

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Попробуйте это, должно быть в порядке или довольно близко.Пожалуйста, не нужно переиндексировать документы (попробуйте в новом индексе, чтобы)

PUT your_index

{
    {
      "settings": {
        "analysis": {
          "analyzer": {
            "my_sugester_analyzer": {
              "tokenizer": "my_tokenizer_sugester"
            }
          },
          "tokenizer": {
            "my_tokenizer_sugester": {
              "type": "ngram",
              "min_gram": 1,
              "max_gram": 20,
              "token_chars": [
                "lowercase",
                "name_ngrams",
                "standard"
              ]
            }
          }
        }
      }
    },
   "mappings": {
    "_doc": {
      "properties": {
        "your_text": {
          "type": "text",
          "analyzer": "my_sugester_analyzer",
          "search_analyzer": "my_sugester_analyzer"
        }
      }
    }
  }
}
0 голосов
/ 27 февраля 2019

Взгляните на Срок предложения r, он использует анализатор, который разбивает ваш текст на токены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...