2016-12-05 62 views
0

我讀過Azure Search .NET SDK使用NewtonSoft.Json在它的基礎REST API調用中將它的模型轉換爲/從JSON轉換爲模型,因此我在自己的應用中也一樣。如何使用Azure Search .NET SDK中的json文件自定義分析器創建索引?

我有一個簡單的應用程序,它使用.NET SDK創建一個新的索引。爲此,我在json文件中定義了我的索引,使用這裏列出的格式https://docs.microsoft.com/en-us/rest/api/searchservice/create-index,然後使用Newtonsoft將其轉換爲Microsoft.Azure.Search.Models.Index對象。

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

這是工作的罰款之前,我配置的自定義分析儀,但現在,我有自定義分析儀在我的配置,該分析儀,斷詞和TokenFilters沒有被解析爲正確的類型。即。我的自定義分析器正在反序列化爲Microsoft.Azure.Search.Models.Analyzer,而不是Microsoft.Azure.Search.Models.CustomAnalyzer,對於Tokenizers和TokenFilters也是如此,它們正在反序列化爲基本類型。

有沒有一種簡單的方法,我可以在json文件的.NET SDK中創建一個像這樣的索引?

回答

1

不幸的是,這不是官方支持的方案。雖然它適用於簡單的索引定義,但我們正在努力瞭解我們需要做什麼來支持所有情況。

請張貼我們的用戶音色頁面上您需要的功能,以幫助我們確定:https://feedback.azure.com/forums/263029-azure-search

在此期間,你也許可以通過在this file底部適應JsonSerializerSettings初始化代碼得到它的工作你自己。

+0

我設法找到了解決方法來生成將被支持的JSON。我使用.NET SDK獲取了現有的索引(使用REST API創建),然後使用Newtonsoft和TypeNameHandling.All JsonSerializer設置將其轉換爲JSON。這在「$ type」屬性中生成了帶有註釋類型信息的JSON文件。我用這個替換了以前的JSON文件,現在我可以使用.NET SDK從這個json文件生成我的索引,並且可以應用所有正確的類型。感謝您的回答。 – pantryfight

相關問題