【问题标题】:Azure search - how to implement multiple facet search?Azure 搜索 - 如何实现多方面搜索?
【发布时间】:2019-01-07 05:33:59
【问题描述】:

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

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

【问题讨论】:

    标签: azure elasticsearch azure-cognitive-search


    【解决方案1】:

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

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

    例如, 1. 在第一次搜索查询后保留 UI 中的所有方面(或进行另一个查询以获取所有方面); 2. 在选择另一个方面后进行另一个搜索查询,前提是应用程序会跟踪用户选择的方面。

    【讨论】:

    • 这个问题还有更好的解决方案吗?或者也许是某个地方的工作版本的例子?
    【解决方案2】:

    如果你想过滤多个方面的结果,你可以修改你的过滤器如下:

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

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

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

    【讨论】:

    • 在这种情况下,我不会从过滤器中获取所有其他方面。这似乎是天蓝色搜索的限制
    猜你喜欢
    • 2019-07-01
    • 2018-02-20
    • 2014-11-29
    • 2012-02-26
    • 1970-01-01
    • 2012-05-28
    • 2023-01-26
    • 2011-04-08
    • 1970-01-01
    相关资源
    最近更新 更多