2016-04-28 17 views
1

Azure Searchのスコアリングプロファイルでタグブースティングを使用して、交差する文字列の数に基づいて結果を向上させています。Azureでコンマでタグ付けタグ検索

ie. 
Doc1 has { id: 1, name: "thing", stuff:["1 stuff","2 stuff","3,4,5 stuff"] } 
Doc2 has { id: 2, name: "thing2", stuff:["1 stuff","2 stuff"] } 

スコアリングパラメータをstuffParam:1 stuff,2 stuffとして検索しても問題ありません。

しかし、stuffParam:1 stuff,3,4,5 stuffのためにブーストしようとすると、クエリ文字列のコンマ区切りが分割されます。

コンマをエスケープする方法はありますか、または句読点を無視するか、これは不可能ですか?

答えて

2

これは、Azure Searchのバグが修正されたためです。コロン区切り文字を使用する古い構文の代わりに、ダッシュ区切り記号で新しい構文を使用し、引用符を使用してコンマを含むタグをエスケープすることができます。たとえば、この:

stuffParam:1 stuff,3,4,5 stuff 

は次のように記述できます。

stuffParam-1 stuff,'3,4,5 stuff' 

あなたが引用符が含まれているタグを持っている場合は、あなたがそれらをエスケープするためにそれらを倍増することができます。例:

stuffParam-'Hello, O''Brien' 

"Hello、O'Brien"というタグに一致します。

バージョン1.1.2以降のAzure Search .NET SDKを使用している場合は、ScoringParameterクラスがこれをすべて実行します。

+1

@Fiddlesバグが修正されました。 APIのドキュメントはまだ更新されていないので、新しい構文を私の答えに使用する方法を説明しました。 –

関連する問題