我正在使用ES 1.4。
我正在使用分页查询我的索引(在搜索查询中使用from和size以便每页有20个结果),并且我将搜索命中限制设置为100(所以我不能超过5页)
我正在尝试使用术语构面,但是计数字段是全局的,它在所有搜索命中都可以超过100个。
{
"from": 0,
"size": 20,
"query": {
"match_all": {}
} , "facets" : {
"tags" : {
"terms" : {
"field" : "tag"
}
}
}
}
有没有办法在ES方面设置限制,只能查看前100次点击?
谢谢!
答案 0 :(得分:0)
ElasticSeach提供了一个选项,用于将facet限制为查询返回的结果&过滤器。
您可以为每个方面将global
参数设置为true
或false
。如果未指定任何值,则global
设置为true
。
由于您只查看前100个结果,因此您应该对查询应用limit
过滤器(limit filter documentation)
尝试修改您的查询:
{
"from": 0,
"size": 20,
"query": {
"filtered" : {
"filter" : {
"limit" : {"value" : 100}
}
}
},
"facets" : {
"tags" : {
"terms" : {
"field" : "tag"
}
"global": false
}
}
}
如果您不想对数据应用任何过滤器,可以尝试使用limit
(limit filter documentation)中的aggs
过滤器:
{
"aggs": {
"limit_results": {
"filter": {
"limit": {
"value": 100
}
},
"aggs": {
"tags": {
"terms": {
"field": "tag",
"size": 10
}
}
}
}
}
}
第二个size
内的aggs
参数是返回的标记组的数量。默认值为10
(documentation)。
请告诉我这是否有帮助:)