hom*_*own 1 scroll elasticsearch
我使用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
Run Code Online (Sandbox Code Playgroud)
然后插入一些文档:
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"
}
Run Code Online (Sandbox Code Playgroud)
多次重复这篇文章。
按照以下说明操作:web 然后第一次使用滚动 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"
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后得到 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"
}
Run Code Online (Sandbox Code Playgroud)
然后得到一个错误:
{
"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
}
Run Code Online (Sandbox Code Playgroud)
所以我必须添加类型:
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"
}
Run Code Online (Sandbox Code Playgroud)
然后我得到了一个新的错误:
{
"error": "no handler found for uri [/person4/_search/type1/scroll] and method [POST]"
}
Run Code Online (Sandbox Code Playgroud)
那么如何获取更多的文档呢?只能获取一次吗?
问题是您的第二次提取在请求 URL 中有索引名称。URL 不应包含索引或类型名称\xe2\x80\x89\xe2\x80\x94\xe2\x80\x89,这些是在原始搜索请求中指定的。
\n\n而不是这个:
\n\nPOST /person4/_search/scroll HTTP/1.1\nHost: localhost:9200\nContent-Type: application/json\nCache-Control: no-cache\nPostman-Token: 14238262-6125-4f60-8025-d0d2854b8dd6\n\n{\n "scroll" : "1s", \n "scroll_id" : "Whatever scroll id you\'ve got" \n}\nRun Code Online (Sandbox Code Playgroud)\n\n用这个:
\n\nPOST /_search/scroll HTTP/1.1\nHost: localhost:9200\nContent-Type: application/json\nCache-Control: no-cache\nPostman-Token: 14238262-6125-4f60-8025-d0d2854b8dd6\n\n{\n "scroll" : "1s", \n "scroll_id" : "Whatever scroll id you\'ve got" \n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1256 次 |
| 最近记录: |