2017-11-27 11 views
1

予約語が正常に動作している以外のすべてのワードフィルタの場合Azure検索フィルターで予約語を使用するには?

$filter=cityList/any(t: search.in(t, '1')) and name eq 'hi tech bar & restaurant' &search=*&scoringProfile=search-score&searchMode=Any&queryType=FULL

を次のように私は、Azureの検索フィルタオプションを使用しています。

; /? :@ = + &

Azure Search Filtersで予約語の使用方法を教えてもらえますか?

ありがとうございます。

答えて

1

エンコードには2つのレベルがあります。まず、OData式自体。私は、文字列定数で特殊文字を使う必要があると仮定しています。その場合は、エンコードする必要がある唯一の文字は一重引用符で、二重でエンコードすることができます。たとえば、$ filter = Name eq 'O''Neil'です。 2番目のエンコーディングレベルは、検索リクエストにHTTP GETまたはPOSTのどちらを使用しているかによって異なります。 Azure Search .NET SDKを使用している場合は、この詳細があなたのために処理されます。 REST APIを直接使用していて、GETを使用している場合は、フィルタ式をURLエンコードする必要があります。 POSTを使用している場合は、他のJSON文字列と同じようにフィルタ式をエンコードする必要があります。たとえば、\ as \と "as \"などをエンコードする必要があります。

+0

ありがとうYahnoosh。 .NET SDKのみを使用しています。私が直面している問題は、私の 'filter eq'に '&'を使用すると、 ""無効な式です: 'cityList/any(t:search.in(t、') 1))と名前eq "。 – vishnu

+0

私は実際の結果を見つけるのを助けるためにそこに誰も助けてくれることに非常に失望しています。大丈夫です:( – vishnu

+0

@Vishnu GitHubに関する新しい問題を開いて、どのように.NET SDKを使用しているのか、そしてFilterプロパティに渡す正確な文字列。Azure .NET SDKのGitHubリポジトリへのリンクは次のとおりです。https://github.com/azure/azure-sdk -for-net/issues問題を提出する際には、タイトルに「Azure Search」と記入してください。 –