【问题标题】:Groupby/faceting by multiple fields in azure search在天蓝色搜索中按多个字段分组/分面
【发布时间】:2018-05-10 01:20:06
【问题描述】:

我想按多个字段分组/分面,例如搜索索引中的“名称”和“类型”字段。是否可以在 Azure 搜索中。如果是这样,怎么办?

【问题讨论】:

    标签: azure-cognitive-search


    【解决方案1】:

    不可能通过多个字段的组合值来分面。填充索引时,您必须自己对字段进行非规范化,然后按非规范化字段进行分面。例如,如果您有“名称”和“类型”字段,则必须创建一个包含“名称”和“类型”组合的组合“名称类型”字段。然后您将参考搜索请求的“方面”参数中的“名称类型”字段。

    如果你之前有这样的文件:

    { "id": "1", "name": "John", "type": "Customer" }

    现在您将拥有这样的文档: { "id": "1", "name": "John", "type": "Customer", "nametype": "John; Customer" } (您可以在名称类型的名称部分和类型部分之间使用任何您喜欢的分隔符。)

    现在,当您搜索时,在请求中包含facet=nametype,您将获得索引中存在的所有“名称”和“类型”组合的计数。

    【讨论】:

    • 有什么计划支持这个未来吗?因为在 ES 中我知道我们可以使用聚合来实现这一点,所以 ES 查询在下面给出 { "size": 0, "aggs": { "type": { "terms": { "field": "type.raw" }, "aggs": { "name":{ "terms": { "field": "name.raw" } } } } } } }
    • 这目前不在我们的路线图中,但改进构面是一个受欢迎的客户要求,因此我们希望在某个时候解决它。请为 User Voice 投票,以获得与方面相关的改进,以帮助我们确定优先级。我相信这个最准确地描述了你想要做的事情:feedback.azure.com/forums/263029-azure-search/suggestions/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多