2017-05-31 46 views
0

我正在用angular2構建搜索服務以調用Azure搜索。 我做了這些數據後:搜索帶有使用Azure搜索的值的方面

{ 
count:true, 
facets:["type", "status"], 
queryType:"full", 
search:"company && type:value1 || status:value2", 
skip:0, 
top:10 
} 

我希望把所有擁有數據:類型=值或狀態=數值 一切都很正常,但問題是結果: 我只接收結果的類型等於value1,但不與結果的狀態等於value2。

+1

是否有任何特別的原因,你使用Lucene語法的'type:value1 ||狀態:value2'部分查詢?通常,在實施分面導航時,您也將可標記的字段標記爲可過濾,然後在請求中包含一個過濾器:「鍵入eq'value1'或狀態eq'value2'」。 –

+1

過濾器語法參考在這裏:https://docs.microsoft.com/rest/api/searchservice/odata-expression-syntax-for-azure-search –

+0

是的當然,你是對的,我剛剛找到你的確切解決方案提及。過濾它,我正在尋找。如果你可以把你的答案寫成答案,那麼我可以檢查它。謝謝 –

回答

1

我不知道爲什麼預期的搜索表達式不起作用,但在這樣的地方你實現分面導航的情況下它通常最好使用而不是一個過濾器:

filter: "type eq 'value1' or status eq 'value2'" 
search: "company" 

過濾器並且搜索參數會自動「與」在一起。

您可以在OData過濾器語法here中找到參考文檔。