2017-04-26 236 views
1

「精確搜索」字段使用自己的自定義分析器,而「搜索」字段使用特定於語言的自定義分析器(例如,基於MicrosoftStemmingTokenizerLanguage.French)。我可以針對目標領域進行「精確搜索」嗎?還可以在其他領域進行搜索?

我似乎無法爲「精確搜索」字段使用$ filter,因爲$ filter會考慮整個字段,並且不使用該字段的自定義分析器。

Azure搜索文檔指出了有關字段範圍的查詢的情況。 「 」您可以指定一個字段名:searchterm結構來定義一個字段的查詢操作,其中該字段是單個字詞,搜索字詞也是單個字詞「

有沒有明確的方法如何做到這一點Azure上。我們知道我們可以在我們的Azure Search Rest API調用中使用searchFields參數來定位特定字段,但我們如何搜索所有字段的1個字段,同時專門搜索某些字段以查找特定字詞,基本上是在它們之間做一個「AND」?

回答

0

這可以使用Lucene query syntax

構建你這樣的查詢,其中「椅子」一詞在各個領域搜索和field1field2是要搜尋特定字詞字段:

chair AND field1:something AND field2:else 

在如何條款你可以在REST API中使用它,只需將它嵌入你的search參數中即可。如果您使用GET它看起來像這樣(把它想象URL編碼):

search=chair AND field1:something AND field2:else 

如果您使用POST,它會在請求體,看起來像這樣:

{ 
    "search": "chair AND field1:something AND field2:else", 
    ... (other parameters) 
} 
+0

謝謝你布魯斯。我們的團隊將在週四或週五嘗試。我會就此回覆你。 –

+0

我從來沒有回覆過這個。這正是我們需要的。實際上,我們有多個可搜索字段的副本,每個副本都有不同的自定義分析器,我們最終解析用戶輸入並按照您的建議智能地針對索引中的正確字段。謝謝! –