当前位置: 首页 > 知识库问答 >
问题:

过滤聚合非工作弹性搜索

金承嗣
2023-03-14

我试图使用过滤器聚合来支持前端的多选择方面值。

我有颜色和深度滤镜。

滤色器保存值:黑色(5)、蓝色(3)、红色(2)

深度过滤器保持值:70mm(3)、60mm(5)、50mm(3)

当我在滤色器中选择黑色时,所有其他选项(蓝色,红色)都没有响应。

我尝试添加

"colourAgg": {
        "filter": {
            "match_all": {
                "boost": 1.0
            }
        },
        "aggregations": {
            "colourAgg": {
                "terms": {
                    "field": "colour.keyword",
                    "size": 10,
                    "min_doc_count": 1,
                    "shard_min_doc_count": 0,
                    "show_term_doc_count_error": false,
                    "order": [
                        {
                            "_count": "desc"
                        },
                        {
                            "_key": "asc"
                        }
                    ]
                }
            }
        }
    }
{
"products": {
    "mappings": {
        "properties": {
            "assemblyrequired": {
                "type": "boolean"
            },
            "australianmade": {
                "type": "boolean"
            },
            "australiasellable": {
                "type": "boolean"
            },
            "avgRating": {
                "type": "float"
            },
            "category": {
                "type": "text",
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                    }
                }
            },
            "categorylevel1": {
                "type": "text",
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                    }
                }
            },
            "categorylevel2": {
                "type": "text",
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                    }
                }
            },
            "categorylevel3": {
                "type": "text",
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                    }
                }
            },
            "categoryname": {
                "type": "text",
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                    }
                }
            },
            "colour": {
                "type": "text",
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                    }
                }
            },
            "commercialuse": {
                "type": "boolean"
            },
            "customisable": {
                "type": "boolean"
            },
            "depth": {
                "type": "float"
            },
            "freedelivery": {
                "type": "boolean"
            },
            "height": {
                "type": "float"
            },
            "listprice": {
                "type": "float"
            },
            "materialcode": {
                "type": "text",
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                    }
                }
            },
            "moneybackguarantee": {
                "type": "boolean"
            },
            "newrelease": {
                "type": "boolean"
            },
            "numberOfRating": {
                "type": "long"
            },
            "online": {
                "type": "boolean"
            },
            "outdooruse": {
                "type": "boolean"
            },
            "predictivecategorydata": {
                "type": "text",
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                    }
                }
            },
            "pricematchguarantee": {
                "type": "boolean"
            },
            "productid": {
                "type": "text",
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                    }
                }
            },
            "productimageurl": {
                "type": "text",
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                    }
                }
            },
            "productname": {
                "type": "text",
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                    }
                }
            },
            "producttypecode": {
                "type": "text",
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                    }
                }
            },
            "promotedprice": {
                "type": "float"
            },
            "sale": {
                "type": "integer"
            },
            "saleprice": {
                "type": "float"
            },
            "sellable": {
                "type": "boolean"
            },
            "sellercode": {
                "type": "text",
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                    }
                }
            },
            "shortdescription": {
                "type": "text",
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                    }
                }
            },
            "sku": {
                "type": "text",
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                    }
                }
            },
            "state": {
                "type": "text",
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                    }
                }
            },
            "stylecode": {
                "type": "text",
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                    }
                }
            },
            "warrantycode": {
                "type": "text",
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                    }
                }
            },
            "weight": {
                "type": "float"
            },
            "width": {
                "type": "float"
            }
        }
    }
}
{
                "sellercode": "F2OVRX",
                "productid": 13410,
                "saleprice": 4000.2,
                "producttypecode": "Recliner Lounge or Sofa",
                "productimageurl": null,
                "sellable": false,
                "freedelivery": false,
                "promotedprice": null,
                "listprice": 4000.2,
                "productname": "louise chair - cream",
                "outdooruse": null,
                "avgRating": 0.0,
                "warrantycode": null,
                "state": [
                    "SA",
                    "NT"
                ],
                "newrelease": null,
                "sku": "VSTALDBED415_8",
                "height": 66.0,
                "shortdescription": "Stackable light weight chair made from Virgin materials.High strength one piece gas injection moulded technology.160kg weight tested, Catas test certificated",
                "commercialuse": true,
                "customisable": true,
                "weight": null,
                "pricematchguarantee": true,
                "colour": "Black",
                "australianmade": true,
                "depth": 65.0,
                "moneybackguarantee": false,
                "width": 31.0,
                "predictivecategorydata": [
                    "Dressing Table-Dining Table-52"
                ],
                "online": true,
                "materialcode": "Timber",
                "numberOfRating": 0,
                "categoryname": [
                    "Bed - Double",
                    "Dining Table",
                    "Dressing Table",
                    "444",
                    "Bench",
                    null,
                    "M13",
                    "Bed Head"
                ],
                "location": [],
                "assemblyrequired": null,
                "category": [
                    "outdoor",
                    "bed",
                    "doublebeds",
                    "444",
                    "beds",
                    "cat1220",
                    "m13",
                    "cafebarrestaurant"
                ],
                "stylecode": "Safari"
            }

谢了,Sree。

共有1个答案

阎淮晨
2023-03-14

聚合处理由“查询”部件返回的文档。因此,如果您在查询中过滤“黑色”,所有带有黑色的文档都将返回,聚合将应用于这些文档。

您需要将聚合应用于索引中的所有文档,而不仅仅是查询返回的文档。您可以为此使用全局聚合

定义搜索执行上下文中所有文档的单个桶。此上下文由索引和正在搜索的文档类型定义,但不受搜索查询本身的影响。

{
  "aggs": {
    "products": {
      "global": {}, --> note
      "aggs": {
        "filtered_docs": {   --> filter certain docs for entire index 
          "filter": {
            "range": {
              "depth": {
                "gte": 60
              }
            }
          },
          "aggs": {
            "colourAgg": {   --> facets for color
              "terms": {
                "field": "colour.keyword",
                "size": 10,
                "min_doc_count": 1,
                "shard_min_doc_count": 0,
                "show_term_doc_count_error": false,
                "order": [
                  {
                    "_count": "desc"
                  },
                  {
                    "_key": "asc"
                  }
                ]
              }
            }
          }
        }
      }
    }
  }
}
 类似资料:
  • 如何在elasticsearch中使用与聚合相关的过滤器? 官方文档只给出了过滤器和聚合的小例子,没有对查询dsl进行正式描述——例如,将其与postgres文档进行比较。 通过尝试,我发现以下查询被elasticsearch接受(没有解析错误),但忽略了给定的过滤器: 有些人建议使用查询而不是过滤。但官方文件通常建议对精确值进行过滤。查询的另一个问题是:虽然过滤器提供了和,但查询不提供。 有人能

  • 这是我的示例文档,我在kibana的帮助下为类似文档编制索引。 现在在文件中,“体验”下的关键“品牌”是主集团“公司”的子集团。正如您在文档中看到的,“品牌”可能有类似于“其他”的条目,但由“公司”键分隔。类似的结构可以在文档内部和文档之间出现。我打算根据“品牌”和“公司”来汇总文档。我尝试的查询是- 我得到的错误为- 这是我的文档的映射- 我知道我的经验字段没有嵌套,可能是这个错误的原因。我对e

  • 我已经为一个问题挣扎了一段时间,所以我想我应该通过stackoverflow来解决这个问题。 “我的文档类型”有一个标题、一个语言字段(用于筛选)和一个分组id字段(我省略了所有其他字段以保持重点) 搜索文档时,我希望找到包含标题中文本的所有文档。对于每个唯一的分组id,我只需要一个文档。 我一直在关注tophits聚合,从我所看到的情况来看,它应该能够解决我的问题。 对我的索引运行此查询时: 我

  • 这是回应的一部分 我有联系人号码和名字 现在我的第二个查询->我正在使用术语筛选器查询上面的联系电话

  • 我试图过滤查询使用范围按日期,但它不工作。如果我使用gt, gte, lt, lte它返回零结果。如果我只使用gt或lt,它返回一些结果,但过滤器不工作。 我检查了uri上的数据类型http://mydomain.local:9200/logstash-2014.09.09/_mapping?pretty=true字段类型是正确的: 以下是我在ElasticSearch中索引的结果示例: 下面是我