我正在测试Kibana的默认演示:Dashboard [eCommerce] Revenue Dashboard
。
例如,当我从[eCommerce] Controls
进行过滤时,将类别设置为Men's Accessories
时,我会在[eCommerce] Sales by Category
上看到其他类别。我该如何更改?
我看到查询的构建方式如下:
{
"query": {
"match": {
"category.keyword": {
"query": "Men's Accessories",
"type": "phrase"
}
}
}
}
所以这翻译成:
"query": {
"bool": {
"must": [
{
"match_phrase": {
"category.keyword": {
"query": "Men's Accessories"
}
}
},
如何更改此演示以准确显示我选择的类别?
编辑:
我不是在寻找一些愚蠢的解决方案-可以一次使用。
我只想显示一个类别,但只显示一个过滤器,而不是一个过滤器,例如三个否定。如果我将类别更改为另一个类别-简而言之,我选择了“女鞋”,那么我只想显示该类别,即只应用从仪表板上选择的一个过滤器,而不是通过键入一些单词来定制过滤器。
我想进行可视化处理,以使其在应用excatly
时显示一个类别-而不是现在的4个类别。
编辑:
我在Kibana Men's TEST_NEW_CATEGORY
部分中创建了两个文档(使用全新的Dev Tools
):
POST kibana_sample_data_ecommerce/_doc/
{
"category": [
"Men's TEST_NEW_CATEGORY"
],
"currency": "EUR",
"customer_first_name": "Youssef",
"customer_full_name": "Youssef Jensen",
"customer_gender": "MALE",
"customer_id": 31,
"customer_last_name": "Jensen",
"customer_phone": "",
"day_of_week": "Saturday",
"day_of_week_i": 5,
"email": "youssef@jensen-family.zzz",
"manufacturer": [
"Low Tide Media"
],
"order_date": "2019-05-15T23:45:36+00:00",
"order_id": 592109,
"products": [
{
"base_price": 49.99,
"discount_percentage": 0,
"quantity": 1,
"manufacturer": "Low Tide Media",
"tax_amount": 0,
"product_id": 12202,
"category": "Men's TEST_NEW_CATEGORY",
"sku": "ZO0396603966",
"taxless_price": 49.99,
"unit_discount_amount": 0,
"min_price": 26.49,
"_id": "sold_product_592109_12202",
"discount_amount": 0,
"created_on": "2016-12-31T23:45:36+00:00",
"product_name": "Moccasins - stone",
"price": 49.99,
"taxful_price": 49.99,
"base_unit_price": 49.99
},
{
"base_price": 28.99,
"discount_percentage": 0,
"quantity": 1,
"manufacturer": "Low Tide Media",
"tax_amount": 0,
"product_id": 15017,
"category": "Men's Clothing",
"sku": "ZO0452704527",
"taxless_price": 28.99,
"unit_discount_amount": 0,
"min_price": 13.63,
"_id": "sold_product_592109_15017",
"discount_amount": 0,
"created_on": "2016-12-31T23:45:36+00:00",
"product_name": "Jumper - off-white",
"price": 28.99,
"taxful_price": 28.99,
"base_unit_price": 28.99
}
],
"sku": [
"ZO0396603966",
"ZO0452704527"
],
"taxful_total_price": 78.98,
"taxless_total_price": 78.98,
"total_quantity": 2,
"total_unique_products": 2,
"type": "order",
"user": "youssef",
"geoip": {
"country_iso_code": "US",
"location": {
"lon": -74,
"lat": 40.8
},
"region_name": "New York",
"continent_name": "North America",
"city_name": "New York"
}
}
然后我清楚地看到使用标准过滤器按钮时只有一个类别:
答案 0 :(得分:1)
如果要按特定类别进行过滤,则需要使用filter
而不是terms
。术语汇总将应用于该字段中的所有值。另外,请注意,我禁用了使用切换的术语聚合。我正在针对您提到的用例使用仅过滤器
您还可以添加多个过滤器,如下所示:
另一种选择是添加一个scripted field
并在那些脚本字段上可视化,但是这种情况非常简单,即从一个字段开始,因此不是必需的。但是,在整理来自多个字段的数据时-脚本化字段可能会有用。
更新后的答案:
该演示是限制性的,您不能更改数据或使用分析仪玩耍。但实际上,您可以通过精确匹配过滤出所需的值,然后应用过滤器。
现在,如果您在kibana中使用开发工具过滤数组,您会看到它返回与类别匹配的所有文档-它可能有也可能没有额外的类别,但总会找到您想要的东西。
因此,当您添加过滤器时,您仍会在可视化中看到其他类别,因为那就是数据的方式。
答案 1 :(得分:0)
这就是我解决的方法。我只用4个过滤器就看到男装。
图像可能太小而无法识别,因此我将其记录下来。
第一个过滤器:
{
"query": {
"match": {
"category.keyword": {
"query": "Men's Clothing",
"type": "phrase"
}
}
}
}
第二个过滤器:
{
"query": {
"match": {
"category.keyword": {
"query": "Women's Accessories",
"type": "phrase"
}
}
}
}
第三个过滤器:
{
"query": {
"match": {
"category.keyword": {
"query": "Men's Shoes",
"type": "phrase"
}
}
}
}
第四个过滤器:
{
"query": {
"match": {
"category.keyword": {
"query": "Men's Accessories",
"type": "phrase"
}
}
}
}
我不知道为什么,但是如果我以DSL的形式查看查询,则不会显示“不是”运算符。所以让我为您显示“不是”运算符的图像。
然后,您将只看到具有以下一个类别的所有仪表板。
现在,我才意识到您只想看到男士配饰,而不是男士服装。我的视力不好。但是,我希望您有一个大概的主意。如果您愿意,我可以做男装。让我知道。顺便说一句,我试图仅使用一个过滤器来完成此操作,但是以某种方式该图将无法正常工作。