#azure #azure-cognitive-search
Вопрос:
Я искал способ загрузить текстовый файл словаря синонимов в поиск azure, ближайший, который я смог найти, был
- https://azure.microsoft.com/en-in/blog/azure-search-synonyms-public-preview/
- https://docs.microsoft.com/en-us/azure/search/search-synonyms
Я знаю, что сравнивать продукты разных компаний не очень хорошая идея, но если существует способ загрузить словарь синонимов в поиск azure, как это поддерживается в эластичном поиске, то это очень поможет и может сэкономить много времени и переработать.
Пожалуйста, помогите мне узнать, как добиться такой вещи, как загрузка словаря синонима в поиск azure
Комментарии:
1. Вы ищете инструмент для загрузки синонимов в поиск Azure?
2. Я ищу что-то вроде этого : paperlesspost.com/blog/teams/setting-up-elasticsearch-synonyms
3. Спасибо. АФАИК, такого инструмента, как этот, не существует. Вам придется написать что-то свое, чтобы проанализировать текстовый файл и загрузить данные в поиск Azure с помощью API карт синонимов или использовать SDK, который использует этот API. Ближайший инструмент, который вы могли бы использовать, — Cerebrata Cerulean , который предоставляет пользовательский интерфейс для управления синонимами. [Раскрытие информации: Я один из разработчиков в команде Cerebrata].
4. Я почти уверен, что новые SDK Azure поддерживают загрузку карты синонимов непосредственно из файла. Я свяжусь с командой инженеров.
Ответ №1:
Последняя версия .NET SDK для когнитивного поиска Azure обладает такой возможностью. Из этого образца:
// Create a new SearchIndexClient
Uri endpoint = new Uri(Environment.GetEnvironmentVariable("SEARCH_ENDPOINT"));
AzureKeyCredential credential = new AzureKeyCredential(
Environment.GetEnvironmentVariable("SEARCH_API_KEY"));
SearchIndexClient indexClient = new SearchIndexClient(endpoint, credential);
// Create a synonym map from a file containing country names and abbreviations
// using the Solr format with entry on a new line using n, for example:
// United States of America,US,USAn
string synonymMapName = "countries";
string synonymMapPath = "countries.txt";
SynonymMap synonyms;
using (StreamReader file = File.OpenText(synonymMapPath))
{
synonyms = new SynonymMap(synonymMapName, file);
}
await indexClient.CreateSynonymMapAsync(synonyms);
SDK для Java, Python и Javascript также поддерживают создание карт синонимов. Java SDK принимает строку, а не поток файлов, поэтому вам придется прочитать содержимое файла самостоятельно. К сожалению, SDK на Python и Javascript, похоже, требуют списка строк (по одной для каждой строки файла), что нам следует улучшить. Я продолжаю работать с командой Azure SDK, чтобы внести эти улучшения.