Использование сканирования и прокрутки для упругого поиска по смыслу
Я пытаюсь перебрать несколько документов в asticSearch и использую Sense (для этого используется плагин Google Chrome). Используя эффективность сканирования и прокрутки, я получаю идентификатор прокрутки как:
POST _search?scroll=10m&search_type=scan
{
"query": { "match_all": {}}
}
Результатом чего является:
{
"_scroll_id": "c2Nhbjs1OzE4ODY6N[...]c5NTU0NTs=",
"took": 10,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 20000,
"max_score": 0,
"hits": []
}
}
Затем передайте это в GET как:
GET _search/scroll?scroll=1m&scroll_id="c2Nhbjs1OzE4ODY6N[...]c5NTU0NTs="
но я получаю 0 результатов, а именно:
{
"_index": "my_index",
"_type": "_search",
"_id": "scroll",
"found": false
}
2 ответа
Я нашел проблему, я указал индекс my_index
в коробке сервера по смыслу. Удаление этого и повторное выполнение команды post как:
POST /my_index/_search?scroll=10m&search_type=scan
{
"query": { "match_all": {}}
}
и передать полученный scroll_id как:
GET _search/scroll?scroll=1m&scroll_id="c2Nhbjs1OzE4ODY6N[...]c5NTU0NTs="
работал!
Это работает в моем смысле (конечно, вы должны заменить идентификатор из вашего дела; не используйте "
)
POST /test/_search?search_type=scan&scroll=1m
GET /_search/scroll?scroll=1m&scroll_id=c2Nhbjs1OzI[...]Tt0b3RhbF9oaXRzOjQ7