Azure搜索-如何实施多方面搜索?

时间:2018-07-30 22:05:36

标签: azure elasticsearch azure-search

例如,如果我们具有类别构面,并且它返回5个不同类别,则在单击第一个类别时,其他类别将在响应中不可用。我想实现多方面搜索。 感谢您的回应。

有关更多信息,我指的是以下相同的情况: https://feedback.azure.com/forums/263029-azure-search/suggestions/7762452-provide-multiselect-facets

2 个答案:

答案 0 :(得分:0)

如果要过滤具有多个方面的结果,则可以按以下方式修改过滤器:

$filter = search.in(country, 'USA,Canada,Mexico,Brasil,Chile,Argentina', ',')
  

search.in 函数的第一个参数是字符串字段引用(或在使用search.in的情况下,字符串收集字段上的范围变量在任何或所有表达式中)。 第二个参数是一个包含值列表的字符串,用空格和/或逗号分隔。如果您的值包括那些字符,因此您需要使用除空格和逗号以外的分隔符,则可以为search.in指定一个可选的第三个参数。   此第三个参数是一个字符串,其中在解析第二个参数中的值列表时,该字符串的每个字符或该字符串的子集都被视为分隔符。

有关Azure搜索中的过滤器和order-by子句的OData表达式语法的详细信息,请参考此tutorial

答案 1 :(得分:0)

响应中的构面仅限于所选,并且不支持此功能。我建议在这里https://feedback.azure.com/forums/263029-azure-search/suggestions/7762452-provide-multiselect-facets

投赞成票

一种解决方法是发送多个查询以分别获取构面和过滤结果。

例如, 1.在第一个搜索查询之后,将所有构面保留在UI中(或进行另一个查询以获取所有构面); 2.如果应用程序跟踪用户选择了哪些方面,则在选择了另一个方面之后进行另一个搜索查询。