【问题标题】:Support to upload dictionary of synonyms in azure search支持在azure搜索中上传同义词词典
【发布时间】:2021-04-02 03:08:45
【问题描述】:

我正在寻找一种在天蓝色搜索中上传同义词词典文本文件的方法,我能找到的最近的是

  1. https://azure.microsoft.com/en-in/blog/azure-search-synonyms-public-preview/
  2. https://docs.microsoft.com/en-us/azure/search/search-synonyms

我知道比较不同公司的产品不是一个好主意,但是如果有一种方法可以在 azure 搜索中上传同义词字典,就像弹性搜索中支持的那样,那么它将有很大帮助并且可能会节省大量的时间和返工。

请帮助我知道如何实现诸如在天蓝色搜索中上传同义词字典之类的事情

【问题讨论】:

  • 您是否正在寻找在 Azure 搜索中上传同义词的工具?
  • 谢谢。 AFAIK,这样的工具不存在。您必须编写自己的内容来解析文本文件并使用 Synonym Maps API 在 Azure 搜索中上传数据,或者使用使用此 API 的 SDK。您可以使用的最接近的工具是 Cerebrata Cerulean,它提供了一个 UI 来管理同义词。 [披露:我是 Cerebrata 团队的开发人员之一]。
  • 我很确定新的 Azure SDK 支持直接从文件上传同义词映射。我会与工程团队确认。

标签: azure azure-cognitive-search


【解决方案1】:

最新的.NET SDK for Azure Cognitive Search 具有此功能。来自this sample

// 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,USA\n
string synonymMapName = "countries";
string synonymMapPath = "countries.txt";

SynonymMap synonyms;
using (StreamReader file = File.OpenText(synonymMapPath))
{
    synonyms = new SynonymMap(synonymMapName, file);
}

await indexClient.CreateSynonymMapAsync(synonyms);

JavaPythonJavascript 的 SDK 也支持创建同义词映射。 Java SDK 接受字符串而不是文件流,因此您必须自己读取文件内容。不幸的是,Python 和 Javascript SDK 似乎需要一个字符串列表(文件的每一行一个),这是我们应该改进的。我正在跟进 Azure SDK 团队以进行这些改进。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    相关资源
    最近更新 更多