Поиск строк, содержащих «-», в Когнитивном поиске AzureC#

Место общения программистов C#
Ответить
Anonymous
 Поиск строк, содержащих «-», в Когнитивном поиске Azure

Сообщение Anonymous »


У меня возникла проблема с Когнитивным поиском Azure.

У меня есть индекс, включающий пару сотен документов. Большинство из них имеют заголовки в виде коротких предложений, и каждый из них заканчивается суффиксом «.docx». Начнем с того, что это вызвало у меня проблемы, поскольку было сложно получить высокий балл при поиске слова, если оно было последним словом перед «.docx». Я исправил это, добавив «*» в конце каждого поиска, и это сработало очень хорошо.

Однако теперь я столкнулся с новой проблемой. При поиске слов, содержащих «-», мне приходится удалять «*» с конца, и я не совсем уверен, как это повлияет на результаты, если слово с дефисом находится непосредственно перед «.docx» для пример.

Я хотел бы сохранить функциональность, предоставляемую добавленным знаком «*», но при этом иметь возможность поиска по терминам, содержащим «-». Я подозреваю, что это будет проблемой и для других операторов, поэтому, если бы у меня был запрос, который просто ищет поисковый запрос в виде строки, это было бы очень хорошо.

Я пытался избежать такого оператора, как этот «поисковый термин», кажется, работает, но при добавлении «» в конец это не дает никаких результатов. Как я уже говорил ранее, это могло бы быть решением, но я не уверен, что он получит высокую оценку «это мой поисковый запрос.docx», поскольку в конце у него нет «». Я также пробовал использовать регулярные выражения, например "/search-term./", но это также снижает оценку заголовков типа "...search.docx" при поиске "/search". /"

Я полагаю, что эту проблему можно решить без моего кода, поскольку я получаю те же результаты в пользовательском интерфейсе Когнитивного поиска Azure, но я добавлю его сюда на всякий случай.
public ActionResult GetSearchResults (строковый запрос) { запрос = запрос + "*"; Uri searchEndpointUri = new(SEARCH_ENDPOINT); Клиент SearchClient = новый( поискEndpointUri, SEARCH_INDEX_NAME, новый AzureKeyCredential(SEARCH_KEY)); вар параметры = новые SearchOptions { SearchFields = { "имя_хранилища_метаданных", "контент" }, QueryType = Azure.Search.Documents.Models.SearchQueryType.Full, SearchMode = Azure.Search.Documents.Models.SearchMode.Any, }; var search = client.Search(запрос, параметры, по умолчанию); вар документ = search.GetRawResponse().Content.ToString(); динамический jsonObject = JsonConvert.DeserializeObject(документ); вернуть ОК (jsonObject);
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»