首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Elasticsearch面大小

Elasticsearch面大小
EN

Stack Overflow用户
提问于 2016-06-09 17:27:09
回答 1查看 830关注 0票数 1

我使用的是ES 1.4。

我使用分页查询我的索引(在搜索查询中使用from和size,以便每页有20个结果),并且我将搜索命中的限制设置为100 (所以我不能有超过5个页面)

我正在尝试使用术语方面,但是计数字段是全局的,它跨越所有可以超过100的搜索命中。

下面是一个基本的例子:

代码语言:javascript
复制
{
    "from": 0,
    "size": 20, 
    "query": {
        "match_all": {}
    } , "facets" : {
    "tags" : {
        "terms" : {
            "field" : "tag"
        }
    }
  }
}

有没有办法在ES方面设置一个限制,只看前100次点击?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-06-09 19:23:13

ElasticSeach提供了一个选项,用于将facet限制为查询和过滤器返回的结果。您可以将每个方面的global参数设置为truefalse。如果未指定任何值,则将global设置为true。由于您希望只返回前100个结果,因此可能应该对查询(limit filter documentation)应用limit过滤器。

尝试像这样修改您的查询:

代码语言:javascript
复制
{
    "from": 0,
    "size": 20, 
    "query": {
        "filtered" : {
            "filter" : {
                "limit" : {"value" : 100}
            }
        }
    }, 
    "facets" : {
        "tags" : {
            "terms" : {
                "field" : "tag"
            }
            "global": false
        }
    }
}

如果不想对数据应用任何过滤器,可以尝试在aggs (limit filter documentation)中使用limit过滤器:

代码语言:javascript
复制
{
  "aggs": {
    "limit_results": {
      "filter": {
        "limit": {
          "value": 100
        }
      },
      "aggs": {
        "tags": {
          "terms": {
            "field": "tag",
            "size": 10
          }
        }
      }
    }
  }
}

第二个aggs中的size参数是返回的标记组的数量。默认值为10 (documentation)。

如果有帮助,请让我知道:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37721939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档