当前位置: 首页 > 知识库问答 >
问题:

弹性搜索:查询以获取所有元素

华和悦
2023-03-14

我无法获得所有项目,达到的最大大小为:10000。谢谢

错误:[query_phase_execution_exception] 结果窗口太大,从大小必须小于或等于:[10000] 但为 [90000]。请参阅滚动 API,了解请求大型数据集的更有效方法。可以通过更改 [index.max_result_window] 索引级别参数来设置此限制。

知道我该怎么解决吗?

GetTweets: function (callback) {
        client.search({
            index: 'twitter',
            type: 'tweet',
            size:10000,
            body: {
                query: {
                    "query": {
                        "match_all": {}
                    }
                }
            }
        }, function (err, resp, status) {
            callback(err,resp);
        });
    },

共有2个答案

李意致
2023-03-14

Elasticsearch的默认功能是不要在10000个窗口后立即获取数据,即。尺寸:10000以上。请参阅此处的滚动 api,由于该限制,您会收到以下错误。

结果窗口太大,从大小必须小于等于:[10000]

尝试滚动 API,例如,

curl -XGET 'localhost:9200/twitter/tweet/_search?scroll=1m' -d '
{
    "query": {
        "match" : {
            "title" : "elasticsearch"
        }
    }
}
'

上述请求的结果包括一个_scroll_id,应将其传递给滚动 API 以检索下一批结果。

curl -XGET  'localhost:9200/_search/scroll'  -d'
{
    "scroll" : "1m", 
    "scroll_id" : "c2Nhbjs2OzM0NDg1ODpzRlBLc0FXNlNyNm5JWUc1" 
}
'

注意:我使用了 pythonphp 版本的 elasticsearch client api。滚动 API 真的很棒,并且非常灵活地使用它获取数据集。

杜阳炎
2023-03-14

search_after可用于应用分页。比滚动 API 更高效

GET twitter/_search
{
    "size": 10,
    "query": {
        "match" : {
            "title" : "elasticsearch"
        }
    },
    "search_after": [1463538857, "654323"],
    "sort": [
        {"date": "asc"},
        {"tie_breaker_id": "asc"}
    ]
 }

ES 文档:它与滚动 API 非常相似,但与它不同的是,search_after 参数是无状态的,它始终针对最新版本的搜索器进行解析

 类似资料:
  • 我正在LDAP服务器上工作。它有弹性搜索。我必须用一些Javascript代码(JSON格式)发送查询。 这是我的查询: 我试图打印所有结果,其中“server”=“server\u name”(该字段是server:server\u name…)。我认为关于弹性搜索的文档太小了。我找到了一些文档,但都是一样的,对新用户没有帮助。这个例子太简单了。 此查询返回所有结果,包括任何筛选器。 Ps:这就

  • 我有以下格式的弹性搜索文档 } } 我的要求是,当我搜索特定字符串(string.string)时,我只想获得该字符串的FileOffSet(string.FileOffSet)。我该怎么做? 谢谢

  • 在我的代码库中,我有两个在弹性上搜索的代码。 一个是通过ElasticSearchTemplte,从那里我构建elastic查询,并在elastic上查询。 在第二个中,我通过spring-data-jpa.进行查询 在第一种情况下,我可以看到我的弹性搜索查询,可以直接在ES上查询。 我的问题是,有没有办法从spring-data-jpa中获得弹性查询。 我想看看spring-data-jpa在访

  • 我在术语查询中要求弹性搜索中的嵌套字段,其中嵌套字段值应与术语查询中提供的值的数量完全匹配。例如,考虑下面的查询,在这里我们对名为类型的嵌套字段进行查询。 GET资产/_search 索引映射 样本文件: 上述查询应返回字段类型正好有2个值的文档,即“VOD”

  • 我刚加入弹性搜索公司。而不知道如何在JSON请求中对索引和an类型发出正确的请求?(所以我不想像localhost:9200/myindex/mytype/_search那样在URL中使用索引和类型,而是向localhost:9200/_search发出JSON请求) 我试过这样的东西。但我得到的结果是'AAA'索引而不是'BBB'索引。如何只从bbb索引得到结果或者根本没有结果?

  • 关于如何打开缓存有什么建议吗?

  • 如何获得空数组和美国的结果和

  • 我使用的是ES版本5.6。我有一个像下面这样的文档存储在ES中。 我想搜索所有已“启用”的字段。 我尝试了以下查询,但都不起作用。 但是下面的查询起作用了 因此,看起来只匹配顶级字段,而不匹配嵌套字段。是否有任何方法可以查询包含在所有字段中的文本,包括嵌套字段。我不想显式指定嵌套字段名。我正在寻找一种全局搜索,我想在文档中的任何地方搜索“文本”。 谢了。