我使用的是ES 1.4。
我使用分页查询我的索引(在搜索查询中使用from和size,以便每页有20个结果),并且我将搜索命中的限制设置为100 (所以我不能有超过5个页面)
我正在尝试使用术语方面,但是计数字段是全局的,它跨越所有可以超过100的搜索命中。
下面是一个基本的例子:
{
"from": 0,
"size": 20,
"query": {
"match_all": {}
} , "facets" : {
"tags" : {
"terms" : {
"field" : "tag"
}
}
}
}有没有办法在ES方面设置一个限制,只看前100次点击?
谢谢!
发布于 2016-06-09 19:23:13
ElasticSeach提供了一个选项,用于将facet限制为查询和过滤器返回的结果。您可以将每个方面的global参数设置为true或false。如果未指定任何值,则将global设置为true。由于您希望只返回前100个结果,因此可能应该对查询(limit filter documentation)应用limit过滤器。
尝试像这样修改您的查询:
{
"from": 0,
"size": 20,
"query": {
"filtered" : {
"filter" : {
"limit" : {"value" : 100}
}
}
},
"facets" : {
"tags" : {
"terms" : {
"field" : "tag"
}
"global": false
}
}
}如果不想对数据应用任何过滤器,可以尝试在aggs (limit filter documentation)中使用limit过滤器:
{
"aggs": {
"limit_results": {
"filter": {
"limit": {
"value": 100
}
},
"aggs": {
"tags": {
"terms": {
"field": "tag",
"size": 10
}
}
}
}
}
}第二个aggs中的size参数是返回的标记组的数量。默认值为10 (documentation)。
如果有帮助,请让我知道:)
https://stackoverflow.com/questions/37721939
复制相似问题