[英]How to make Elasticsearch date_histogram facet work on nested items
我正在使用Kibana 3查询我的Elasticsearch服务器。 Kibana提供了一个date_histogram可视化面板来显示我为产品收集的价格。 每个产品可以包含任意数量的价格以及相应的日期。 价格被实现为每个文档中的嵌套字段。
Kibana创建以下查询,该查询在应用于所有文档时效果很好。
curl -XGET 'http://localhost.com:9200/vendor2/_search?pretty' -d '{
"facets": {
"1": {
"date_histogram": {
"key_field": "Prices.Fetched",
"value_field": "Prices.Price",
"interval": "1m"
},
"nested": "Prices",
"facet_filter": {
"fquery": {
"query": {
"filtered": {
"query": {
"query_string": {
"query": "*"
}
},
"filter": {
"bool": {
"must": [
{
"match_all": {}
},
{
"bool": {
"must": [
{
"match_all": {}
}
]
}
}
]
}
}
}
}
}
}
}
},
"size": 0
}'
当我尝试使用date_histogram可视化单个产品随时间变化的价格时,就会出现问题。 Kibana提供了筛选特定文档的功能。 例如,基于其ID / SKU。
但是,date_histogram构面保持为空。
这是一个示例...任何人都可以告知查询有什么问题吗?
curl -XGET 'http://localhost.com:9200/vendor2/_search?pretty' -d '{ "facets": {
"1": {
"date_histogram": {
"key_field": "Prices.Fetched",
"value_field": "Prices.Price",
"interval": "1m"
},
"nested": "Prices",
"facet_filter": {
"fquery": {
"query": {
"filtered": {
"query": {
"query_string": {
"query": "*"
}
},
"filter": {
"bool": {
"must": [
{
"match_all": {}
},
{
"fquery": {
"query": {
"field": {
"sku": {
"query": "\"AZF78FH77\""
}
}
},
"_cache": true
}
},
{
"bool": {
"must": [
{
"match_all": {}
}
]
}
}
]
}
}
}
}
}
}
} }, "size": 0 }'
问题是查询中已包含双引号(请注意查询中的转义引号)。 这将导致ElasticSearch寻找'“ AZF78FH77”'的SKU,而不是'AZF78FH77'
尝试在Kibana中查询而不在查询框中加引号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.