2017-05-31 15 views
0

私はAzure検索を呼び出すためにangular2で検索サービスを構築しています。 私は、このデータとポストをした:検索Azets検索を使用した値を持つファセット

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

私が持っているすべてのデータ持って帰りたいと思う:タイプ= VALUE1やステータスを= value2の すべてが素晴らしい作品が、問題はその結果です: 私だけ受け付けておりますタイプがvalue1に等しいが、ステータスがvalue2に等しい結果と結合されない結果。

+1

'type:value1 ||にLucene構文を使用する特別な理由はありますか?ステータス:value2 'はクエリの一部ですか?通常、ファセットナビゲーションを実装するときは、facetableフィールドをフィルタ可能としてマークし、その要求に「type eq 'value1'」または「status 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" 

フィルタを検索パラメータは自動的に「AND」されます。

ODataフィルタ構文hereの参照ドキュメントがあります。

関連する問題