2016-12-29 95 views
0

我正在使用Azure搜索,但假設我的問題更相關的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搜索中,通配符搜索查詢(如前綴,正則表達式和模糊搜索查詢)通過內部查詢重寫過程並返回常量分數。這主要是由於性能方面的原因,也是爲了防止我們基於默認的基於頻率的計分(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)中創建一個條目以幫助我們確定優先順序。謝謝。

Nate