Различия между предложениями и NGram - PullRequest
1 голос
/ 22 октября 2019

Я создал индекс с помощью пользовательского анализатора

"analyzers": [
    {
      "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer",
      "name": "ingram",
      "tokenizer": "whitespace",
      "tokenFilters": [ "lowercase", "NGramTokenFilter" ],
      "charFilters": []
    }
  ],
  "tokenFilters": [
    {
      "@odata.type": "#Microsoft.Azure.Search.NGramTokenFilterV2",
      "name": "NGramTokenFilter",
      "minGram": 3,
      "maxGram": 8
    }
  ],

Я наткнулся на «Предложения» и мне стало интересно, какие плюсы и минусы были между этими двумя подходами.

По сути, яя делаю текстовое поле автозаполнения JavaScript. Мне нужно выполнить частичный поиск текста внутри текста поиска (то есть search = ell будет соответствовать «Hello World».

1 Ответ

0 голосов
/ 22 октября 2019

Поиск Azure предлагает две функции, позволяющие включить это в зависимости от опыта, который вы хотите предоставить своим пользователям: - Предложения: https://docs.microsoft.com/en-us/rest/api/searchservice/suggestions - Автозаполнение: https://docs.microsoft.com/en-us/rest/api/searchservice/autocomplete

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

Автозаполнение очень похоже, но вместо того, чтобы возвращать совпадающие документы, оно просто возвращает список завершенных «терминов», которые соответствуют неполному термину в вашем запросе. Это позволит убедиться, что термины не дублируются в списке автозаполнения (что может произойти при использовании API предложений, поскольку, как я упоминал выше, предложения возвращают совпадающие документы, а не список терминов).

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