elasticsearch elasticseach 6卷轴,无法进行第二次提取
我使用es 6.3.2。我想使用scroll获取文档。使用postman测试: 首先,我创建一个索引: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
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"
}