Нужен Azure Search Lucene Query для поиска записей со следующим сценарием - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть поисковый индекс Azure со столбцом ProductName.

Я должен показать ProductName в зависимости от того, как пользователь выполняет поиск. Так как я могу сформировать запрос, если я хочу искать между словами.

ProductName

  1. Microsoft Visual Studio 32bit
  2. Microsoft Visual Basic Editor
  3. Microsoft SQL Server
  4. SQL Server Management Studio
  5. Код Visual Studio

Мои требования -

Если пользователь ищет "SQL" , тогда пользователь должен получить результаты, подобные

  1. SQL Server Management Studio
  2. Microsoft SQL Server

Решение -

Для этого сценария я называю свой поисковый индекс Azure как и , он работает https://myindex.search.windows.net/indexes/myproducts/docs?api-version=2017-11-11&search=/.*SQL.*/&queryType=full&$select=ProductName

==============================================

Второй сценарий - если пользователь выполняет поиск "Microsoft Vis" Пользователь должен получить два результата

  1. Microsoft Visual Studio 32bit
  2. Microsoft Visual Basic Editor

Как я могу получить этот результат? Как создать запрос. Я уже ищу мой первый сценарий, но для второго сценария я застрял. Пожалуйста помоги.

Если я буду искать вот так https://myindex.search.windows.net/indexes/myproducts/docs?api-version=2017-11-11&search=SQL*&searchMode=all&%24select=productName

=============================================== ===============

Третий сценарий - Если пользователь ищет "soft", мне нужно показать эти результаты

  1. Microsoft Visual Studio 32bit
  2. Microsoft Visual Basic Editor
  3. Microsoft SQL Server

enter image description here

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Поиск Azure разбивает текст при индексации на части, называемые «токенами», которые составляют наименьший сегмент текста, который вы можете искать.Индексированное слово может привести к появлению нескольких токенов в зависимости от того, какой анализатор выбран для поля.

Вам нужно указывать подстановочный знак только тогда, когда вы ищете токен, который начинается с текста.Это не то же самое, что начинается с полной строки в индексе.В ваших примерах «SQL» не требует подстановочных знаков.«Vis *» нужен подстановочный знак, так как вы ищете «визуальный».

Дайте мне знать, если у вас есть какие-либо дополнительные вопросы.

Майк Картер Azure Команда разработчиков поиска

0 голосов
/ 20 ноября 2018

Вы можете попытаться вызвать следующий URL-адрес запроса при поиске «SQL»

https://myindex.search.windows.net/indexes/myproducts/docs?api-version=2017-11-11&search=SQL*&searchMode=all&%24select=productName

Или позвоните по этому запросу при поиске "Microsoft Vis"

https://myindex.search.windows.net/indexes/myproducts/docs?api-version=2017-11-11&search=Microsoft%20Vis*&searchMode=all&%24select=productName

Если вы введете «Microsoft Visual B», вы можете вызвать следующий API:

https://myindex.search.windows.net/indexes/myproducts/docs?api-version=2017-11-11&search=Microsoft%20Visual%20B*&searchMode=all&%24select=productName
...