Используйте подстановочный знак с другим анализатором, отличным от стандартного в Azure Search - PullRequest
0 голосов
/ 16 апреля 2019

Мне нужно разрешить текстовый поиск значений, содержащих тире, например ABCD-12EF.

Я знаю, что анализатор standard плохо работает с -, потому что он разбивает содержимое на несколько токенов. Я создал индекс, подобный приведенному ниже, чтобы опробовать анализаторы keyword и whitespace, но кажется, что символы * больше не работают. Я получаю результаты, только если я ищу полное значение без *, поэтому ABCD-12EF. Если я ищу ABCD-12EF или ABCD-12* или ABCD*, я не получаю никакого результата.

Есть идеи, почему?

public class IndexTryOut
{
    [Key, IsFilterable]
    public string Id { get; set; }

    [IsSearchable, IsFilterable]
    [Analyzer("keyword")]
    public string Data1 { get; set; }

    [IsSearchable, IsFilterable]
    [Analyzer("whitespace")]
    public string Data2 { get; set; }
}

1 Ответ

1 голос
/ 18 апреля 2019

Вы можете определить собственный анализатор, который использует токенайзер «ключевых слов» с фильтром токенов «строчных букв» - см. Мой ответ на этот вопрос: Как индексировать поле с буквенно-цифровыми символами И тире для поиска по шаблону .

...