2017-05-31 58 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中找到参考文档。