2016-12-05 7 views
1

現在、Azure Searchのカスタムアナライザを使用しています。私はこれまでAzure Search APIのプレビュー版「2015-02-28-Preview」を導入して多くの成功を収めました。私は現在、私のカスタムアナライザをAPIバージョン "2016-09-01"に移行しようとしています。この記事(https://docs.microsoft.com/en-us/azure/search/search-api-migration)によれば、カスタムAnlayzerのサポートが含まれています。次のように私のアナライザが設定されています。バージョン「2015年2月28日 - プレビュー」を使用した場合APIバージョン2016-09-01でカスタムアナライザを作成するとエラーが発生する

"analyzers": [ 
    { 
     "name": "phonetic_area_analyzer", 
     "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer", 
     "tokenizer": "area_standard", 
     "tokenFilters": [ "lowercase", "asciifolding", "areas_phonetc" ] 
    }, 
    { 
     "name": "partial_area_analyzer", 
     "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer", 
     "tokenizer": "area_standard", 
     "tokenFilters": [ "lowercase", "area_token_edge" ] 
    }, 
    { 
     "name": "startsWith_area_analyzer", 
     "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer", 
     "tokenizer": "area_keyword", 
     "tokenFilters": [ "lowercase", "asciifolding", "area_edge" ] 
    } 
    ], 
    "charFilters": [], 
    "tokenizers": [ 
    { 
     "name":"area_standard", 
     "@odata.type":"#Microsoft.Azure.Search.StandardTokenizer" 
    }, 
    { 
     "name":"area_keyword", 
     "@odata.type":"#Microsoft.Azure.Search.KeywordTokenizer" 
    } 
    ], 
    "tokenFilters": [ 
    { 
     "name": "area_edge", 
     "@odata.type": "#Microsoft.Azure.Search.EdgeNGramTokenFilter", 
     "minGram": 2, 
     "maxGram": 50 
    }, 
    { 
     "name": "area_token_edge", 
     "@odata.type": "#Microsoft.Azure.Search.EdgeNGramTokenFilter", 
     "minGram": 2, 
     "maxGram": 20 
    }, 
    { 
     "name": "areas_phonetc", 
     "@odata.type": "#Microsoft.Azure.Search.PhoneticTokenFilter", 
     "encoder": "doubleMetaphone" 
    } 
    ] 

この構成では動作しますが、私は、バージョン「2016年9月1日」をしようとすると、私は応答として、次のエラーが表示されます。

{ 
    "error": { 
    "code": "", 
    "message": "The request is invalid. Details: index : The tokenizer of type 'standard' is not supported in the API version '2016-09-01'.\r\n" 
    } 
} 

設定に問題がありますか、「2016-09-01」のバージョンではカスタムアナライザ機能の一部しか使用できませんか?このような場合は、サポートされている機能の詳細を記載したドキュメントの指示にお答えください。

答えて

1

申し訳ありませんが、ドキュメントを更新プロセスに遅れがありました。あなたの例ではhttps://github.com/Azure/azure-docs-rest-apis/pull/218(ここでは、要求アクセスhttps://azure.github.io/

、StandardTokenizerとEdgeNGramTokenFilterに同じKeywordTokenizer V2にKeywordTokenizerを変更します。ここでは、2016年9月1日に導入された変更を持っている私のプルリクエストがあります。

更新:

ドキュメントの新しいバージョンがオンラインである:https://docs.microsoft.com/en-us/rest/api/searchservice/custom-analyzers-in-azure-search

+0

ああ、それは素晴らしいことだ、どうもありがとう。それはうまくいくようです。私は機能がプレビューにとどまっていたことを心配していました。ちなみに.NET SDKのカスタムアナライザーのサポートはまだ不思議ですが、REST APIを使用する必要がありますか?このブログの記事に基づいて – pantryfight

+0

:https://azure.microsoft.com/en-us/blog/announcing-general-availability-of-preview-features-and-new-apis-in-azure-search/?cdn=無効にすると、私はカスタムアナライザーが最新バージョンの.Net SDKでサポートされていると思います。 –

+0

Hmm .. .NET SDKの最新バージョン3.0.1を見てきましたが、カスタムアナライザの実装は不完全なようです。 SearchServiceClient.Indexes.CreateOrUpdateAsync()でインデックスを作成しようとしていますが、インデックス構成を定義するMicrosoft.Azure.Search.Models.Indexが必要です。インデックスタイプには、Microsoft.Azure.Search.Modelsで定義されているすべてのタイプのAnalyzer、TokenFilter、およびTokenizerのフィールドが含まれていますが、これらのタイプにはそれぞれ「Name」プロパティとそれぞれの設定を定義するプロパティしかありません。何か不足していますか? – pantryfight

関連する問題