2016-12-29 5 views
0

私はAzure Searchを使用していますが、私の質問はLuceneとの関連性が高いとします。 完全に部分的に正規表現で構成されているクエリの文書のランク(得点)がどのように計算されているかについての情報は見つかりません。戻り通常計算されたスコアLuceneドキュメント正規表現クエリでスコアリング/ランキング

"マイクロソフト" 探し:

{ score: 6.088776, name: "Microsoft Research" } 
{ score: 5.9090853, name: "Microsoft Corporation" } 
{ score: 5.0747375, name: "Microsoft Philippines, Inc." } 
{ score: 4.93202, name: "Microsoft Dynamics, Inc." } 

等しいスコアを有する "/ マイクロ /" 戻りを検索し1:

{ score: 1, name: "Microsoft Dynamics, Inc." } 
{ score: 1, name: "Microsoft Philippines, Inc." } 
{ score: 1, name: "Microsoft Startup Alley" } 

例えば"microsoft /。micro。 /"を検索すると、 "microsoft"の用語スコアと/の合計が返されます。 マイクロ。 /短期スコア(常に1に等しい):

{ score: 5.2132897, name: "Microsoft Research" } 
{ score: 5.198583, name: "Microsoft Corporation" } 
{ score: 4.973414, name: "Microsoft Philippines, Inc." } 

私は必要なものは、完全に正規表現のクエリを実行し、計算されたスコアを持つことです。

答えて

1

Azure Searchでは、prefix、regex、およびfuzzy検索クエリのようなワイルドカード検索クエリは、内部クエリ書換えプロセスを経て一定のスコアを返します。これは、主にパフォーマンス上の理由によるものであり、デフォルトの用語頻度ベースのスコアリング(TF-IDF)が、頻繁ではない固有の用語からの一致に偏るのを防ぐためです。この動作はhttps://docs.microsoft.com/en-us/rest/api/searchservice/lucene-query-syntax-in-azure-search#bkmk_searchscoreforwildcardandregexqueriesに記載されています。現在のところ、このデフォルトの動作を変更する方法はありません。その機能が重要だと思われる場合は、ユーザの声(https://feedback.azure.com/forums/263029-azure-search)でエントリを作成して、優先順位をつけてください。ありがとうございました。

ネイト