elasticsearch elasticseach 6卷轴,无法进行第二次提取,elasticsearch,scroll,elasticsearch,Scroll" /> elasticsearch elasticseach 6卷轴,无法进行第二次提取,elasticsearch,scroll,elasticsearch,Scroll" />

elasticsearch elasticseach 6卷轴,无法进行第二次提取

elasticsearch elasticseach 6卷轴,无法进行第二次提取,elasticsearch,scroll,elasticsearch,Scroll,我使用es 6.3.2。我想使用scroll获取文档。使用postman测试: 首先,我创建一个索引: PUT /person4 HTTP/1.1 Host: localhost:9200 Cache-Control: no-cache Postman-Token: 6d98c502-d37b-4798-adc8-2fb1f31f228f Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0

我使用es 6.3.2。我想使用scroll获取文档。使用postman测试: 首先,我创建一个索引:

PUT /person4 HTTP/1.1
Host: localhost:9200
Cache-Control: no-cache
Postman-Token: 6d98c502-d37b-4798-adc8-2fb1f31f228f
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
然后插入一些文档:

POST /person4/type1 HTTP/1.1
Host: localhost:9200
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 70f2167e-280f-444c-b588-d034c8a55a5c

{
    "lastname":"alex"
}
重复此帖子多次

按照以下说明操作: 然后第一次使用scroll api:

 POST /person4/_search?scroll=1s HTTP/1.1
Host: localhost:9200
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 6d92fbb8-c861-434f-bf31-3023ff1fb282

{
    "size": 1,
    "query": {
        "match" : {
            "lastname" : "alex"
        }
    }
}
然后得到1个文档和滚动id

最后,第二次获取:

POST /person4/_search/scroll HTTP/1.1
Host: localhost:9200
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 14238262-6125-4f60-8025-d0d2854b8dd6

{
    "scroll" : "1s", 
    "scroll_id" : "DnF1ZXJ5VGhlbkZldGNoBQAAAAAAAABIFklhQmdpTWVOUTVxbkFTM1l6U1dpRHcAAAAAAAAAShZJYUJnaU1lTlE1cW5BUzNZelNXaUR3AAAAAAAAAEkWSWFCZ2lNZU5RNXFuQVMzWXpTV2lEdwAAAAAAAABHFklhQmdpTWVOUTVxbkFTM1l6U1dpRHcAAAAAAAAASxZJYUJnaU1lTlE1cW5BUzNZelNXaUR3" 
}
然后得到一个错误:

{
    "error": {
        "root_cause": [
            {
                "type": "invalid_type_name_exception",
                "reason": "Document mapping type name can't start with '_', found: [_search]"
            }
        ],
        "type": "invalid_type_name_exception",
        "reason": "Document mapping type name can't start with '_', found: [_search]"
    },
    "status": 400
}
因此,我必须添加类型:

POST /person4/_search/type1/scroll HTTP/1.1
Host: localhost:9200
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 43c8052f-76c9-41b9-a0a6-637eb5fee30b

{
    "scroll" : "1s", 
    "scroll_id" : "DnF1ZXJ5VGhlbkZldGNoBQAAAAAAAABIFklhQmdpTWVOUTVxbkFTM1l6U1dpRHcAAAAAAAAAShZJYUJnaU1lTlE1cW5BUzNZelNXaUR3AAAAAAAAAEkWSWFCZ2lNZU5RNXFuQVMzWXpTV2lEdwAAAAAAAABHFklhQmdpTWVOUTVxbkFTM1l6U1dpRHcAAAAAAAAASxZJYUJnaU1lTlE1cW5BUzNZelNXaUR3" 
}
然后我得到了一个新的错误:

{
    "error": "no handler found for uri [/person4/_search/type1/scroll] and method [POST]"
}

那么如何获取更多文档?只能获取一次?

问题是您的第二次获取在请求URL中有索引名

与此相反:

POST /person4/_search/scroll HTTP/1.1
Host: localhost:9200
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 14238262-6125-4f60-8025-d0d2854b8dd6

{
    "scroll" : "1s", 
    "scroll_id" : "Whatever scroll id you've got" 
}
使用以下命令:

POST /_search/scroll HTTP/1.1
Host: localhost:9200
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 14238262-6125-4f60-8025-d0d2854b8dd6

{
    "scroll" : "1s", 
    "scroll_id" : "Whatever scroll id you've got" 
}