2016-04-28 41 views
1

我們在Azure搜索的評分配置文件上使用標記提升來根據相交字符串的數量提升結果。使用逗號在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搜索中的一個錯誤。現在,您可以使用具有劃線分隔符的新語法,並使用引號來轉義任何包含逗號的標記,而不用帶冒號分隔符的舊語法。例如,這樣的:

stuffParam:1 stuff,3,4,5 stuff 

現在可以這樣寫:

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

如果您有包含引號標記,你可以雙擊起來逃離他們。例如:

stuffParam-'Hello, O''Brien' 

將匹配標籤「你好,O'Brien」。

如果您使用的是版本1.1.2或更高版本的Azure Search .NET SDK,ScoringParameter類現在可以爲您完成所有這些工作。

+1

@Fiddles該bug現在已經修復。 API文檔尚未更新,因此我已經介紹瞭如何在我的答案中使用新的語法。 –