Когнитивный поиск Azure: запретите пробелам действовать как разделитель

У нас есть некоторые PDF-файлы в хранилище Azure, и к ним применяется индексация. когда поиск в лазурном режиме выполняется с использованием одного ключевого слова поиска, например

/ docs? search = TG105 & searchFields = content & highlight = content

он вернет фрагмент всех мест, где найдено ключевое слово TG105. Ожидаемый результат, так что он хорош.

Но когда поиск выполняется с полным предложением, например.

/ docs? search = Что такое TG105 & searchFields = content & highlight = content

он вернет фрагменты текста, в которых каждое ключевое слово what, is, TG105 находится отдельно в содержании.

скажем, есть предложение SIM card is not inserted, оно вернется в список выделения как SIM card <em>is</em> not inserted.

Теперь вопрос в том, как выполнить поиск по полному предложению, чтобы он выделял только те места, где находится "what is TG105"?


person umer    schedule 23.12.2019    source источник


Ответы (1)


Вам просто нужно заключить поисковую фразу в кавычки (оператор поиска по фразе), поэтому ваш запрос должен выглядеть примерно так:

/ docs? search = "Что такое TG105" & searchFields = content & highlight = content

Это вернет все документы, содержащие эту точную фразу (без учета регистра) и следующее выделение:

{
...
"@search.highlights": {
            "content": [
                "whatever <em>What</em> <em>is</em> <em>TG105</em> whatever"
            ]
        }
...
}

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

Что такое TG105

Чтобы позаботиться об этом, пора поиграть с queryType=full и полным синтаксисом lucene Поиск по близости

person gsubiran    schedule 03.01.2020