2016-12-05 7 views
0

Azure Search .NET SDKは、NewtonSoft.Jsonを使用してモデルをjsonと/から変換してREST APIコールを呼び出すので、自分のアプリでも同じことをしています。Azure Search .NET SDKの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"); 

この

は私がカスタムアナライザを設定する前細かい作業だったが、今私は私の設定、アナライザ、トークナイザでカスタムアナライザを持っている、とTokenFiltersが正しいタイプに解決されていないこと。すなわち、私のカスタムアナライザーは、Microsoft.Azure.Search.Models.CustomAnalyzerの代わりにMicrosoft.Azure.Search.Models.Analyzerとしてデシリアライズされています。トークンフィルターとトークンフィルターも同じですが、それらは基本タイプにデシリアライズされています。

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ファイルをこのファイルに置き換えました。このSDKファイルから.NET SDKでインデックスを生成でき、すべての正しいタイプが適用されます。ご回答有難うございます。 – pantryfight

関連する問題