是否可以在elasticsearch中使用facet脚本和构面过滤器?
{
"facets": {
"judges": {
"terms": {
"field": "judges.untouched",
"size": 10,
"all_terms": false,
"script": { "script": "...", "params": { }}
},
"global_facets": false,
"facet_filter": {
"and": [
{
"query": {
"query_string": {
"query": "..... ",
"fields": [
"judges.analyzed"
],
"default_operator": "and",
"analyze_wildcard": true
}
}
}
]
}
}
}
}
因为当我运行此查询时,elasticsearch会引发错误:Parse Failure [找不到[and]]的facet类型]; }。
由于
答案 0 :(得分:0)
编辑答案不正确。我因为背景而离开了。
澄清一下:and
是一个合适的过滤器,应由facet_filter
接受。不确定是什么。
未经测试,但来自文档:(http://www.elasticsearch.org/guide/reference/api/search/facets/)
可以使用额外的过滤器配置所有方面(在“查询DSL”部分中进行了解释)
因此,您需要在query
中添加适当的facet_filter
。 And
不是一个合适的过滤器(您收到的错误可能更清楚)
例如:
"facet_filter" : {
"term" : { "user" : "kimchy"}
}
你可能想要这样的东西:
"facet_filter" : {
"query_string": {
"query": "..... ",
"fields": [
"judges.analyzed"
],
"default_operator": "and",
"analyze_wildcard": true
}
}
答案 1 :(得分:0)
and
过滤器的语法是:
"facet_filter": {
"and": {
"filters": [
{
// filter definition
},
{
// another filter definition
}
]
}
}
但是您只使用一个条件,因此不需要and
过滤器。
你应该只有:
"facet_filter": {
"query": {
"query_string": {
"query": "..."
}
}
}