У меня небольшая проблема при запросе elasticsearch 6.8. У меня есть информация createdAt в документах, и я использую информацию createdAt с поиском после
Мой запрос:
{
"from": 0,
"size": 2500,
"query": {
"bool": {
"filter": [
{
"bool": {
"should": [
{
"bool": {
"must_not": [
{
"exists": {
"field": "uni",
"boost": 1
}
}
],
"adjust_pure_negative": true,
"boost": 1
}
},
{
"match": {
"uni": {
"query": "false",
"operator": "OR",
"prefix_length": 0,
"max_expansions": 50,
"fuzzy_transpositions": true,
"lenient": false,
"zero_terms_query": "NONE",
"auto_generate_synonyms_phrase_query": true,
"boost": 1
}
}
}
],
"adjust_pure_negative": true,
"minimum_should_match": "1",
"boost": 1
}
},
{
"exists": {
"field": "pt",
"boost": 1
}
}
],
"should": [
{
"bool": {
"must_not": [
{
"exists": {
"field": "del",
"boost": 1
}
}
],
"adjust_pure_negative": true,
"boost": 1
}
},
{
"match": {
"del": {
"query": false,
"operator": "OR",
"prefix_length": 0,
"max_expansions": 50,
"fuzzy_transpositions": true,
"lenient": false,
"zero_terms_query": "NONE",
"auto_generate_synonyms_phrase_query": true,
"boost": 1
}
}
}
],
"adjust_pure_negative": true,
"minimum_should_match": "1",
"boost": 1
}
},
"_source": {
"includes": [
"did",
"ca"
],
"excludes": []
},
"sort": [
{
"ca": {
"order": "asc"
}
}
],
"search_after": [
1596545647769
]
}
У меня есть 100k документов, но таким образом я получаю 99,996 документов проблема в том, что totalHits показывает 100000, но когда я запрашиваю кибану, он дает мне последнюю партию как 4 отсутствующих документа. Например, я получаю свои документы как 2500 пакетов документов, в последнем он должен быть от 97.500 до 100.000, но он дает мне 99.996.
Когда я делаю тот же запрос с api прокрутки поиска с пакетами 2500 документов, он дает мне 100 000 документов.
Примечание. Если я использую прокрутку поиска, я использую клавишу прокрутки, чтобы продолжить. Если я использую поиск после, я использую информацию createdAt для получения следующих документов. Что может вызвать эту проблему?