【问题标题】:How to create Index with custom analyzers from json file in Azure Search .NET SDK?如何使用 Azure Search .NET SDK 中的 json 文件中的自定义分析器创建索引?
【发布时间】:2016-12-08 06:31:33
【问题描述】:

我读到 Azure 搜索 .NET SDK 使用 NewtonSoft.Json 在其底层 REST API 调用中将其模型与 json 进行转换,因此我在自己的应用程序中一直在做同样的事情。

我有一个使用 .NET SDK 创建新索引的简单应用程序。为此,我使用此处列出的格式https://docs.microsoft.com/en-us/rest/api/searchservice/create-index 在 json 文件中定义我的索引,然后使用 Newtonsoft 将其转换为 Microsoft.Azure.Search.Models.Index 对象。

var index = JsonConvert.DeserializeObject<Microsoft.Azure.Search.Models.Index>(System.IO.File.ReadAllText("config.json");

这在我配置自定义分析器之前运行良好,但现在我的配置中有自定义分析器,分析器、标记器和标记过滤器没有被解析为正确的类型。 IE。我的自定义分析器被反序列化为 Microsoft.Azure.Search.Models.Analyzer,而不是 Microsoft.Azure.Search.Models.CustomAnalyzer,Tokenizer 和 TokenFilters 也是如此,它们被反序列化为基本类型。

有没有一种简单的方法可以在 .NET SDK 中从 json 文件创建这样的索引?

【问题讨论】:

    标签: azure azure-cognitive-search azure-search-.net-sdk


    【解决方案1】:

    很遗憾,这不是官方支持的方案。虽然它适用于简单的索引定义,但我们正在努力了解我们需要做什么才能支持所有情况。

    请在我们的用户语音页面上发布您的功能请求,以帮助我们确定优先级:https://feedback.azure.com/forums/263029-azure-search

    与此同时,您也许可以通过调整this file 底部的JsonSerializerSettings 初始化代码来使其自己工作。

    【讨论】:

    • 我确实设法找到了一种解决方法来生成受支持的 JSON。我使用 .NET SDK 获取了我现有的索引(使用 REST API 创建),然后使用 Newtonsoft 和 TypeNameHandling.All JsonSerializer 设置将其转换为 JSON。这会在“$type”属性中生成一个带有注释类型信息的 JSON 文件。我用这个替换了我以前的 JSON 文件,现在我可以使用 .NET SDK 从这个 json 文件生成我的索引,并且应用了所有正确的类型。谢谢你的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    • 2019-12-31
    相关资源
    最近更新 更多