Проблема с запросом Elasti c псевдонимов поиска с несколькими сегментами - PullRequest
0 голосов
/ 03 августа 2020

Я работал с Elasticsearch в процессе разработки и использовал псевдонимы как способ разделения клиентов в моем мультитенантном приложении. Я создаю такой псевдоним:

POST https://<ES_URL>/_aliases
{
    "actions": [
        {
            "add": {
                "index": "uploads",
                "alias": "uploads_d520e58b-9874-406c-a537-669e00552f49",
                "filter": {
                    "bool": {
                        "must": [
                            {
                                "match": {
                                    "tenant": "d520e58b-9874-406c-a537-669e00552f49"
                                }
                            }
                        ]
                    }
                } 
            }
        }
    ]
}

Затем я массово вставляю данные 7 документов за раз с помощью:

POST https://<ES_URL>/uploads_a206c67f-db10-47bc-857b-5bf2e23e4dad/_bulk?refresh

{
  "index":{
    "_index":"uploads"
  }
}
{
  "depth":0,
  "moduleType":"00",
  "sensorId":"aca43cc50dd1251d",
  "sensorType":"BA",
  "timestamp":1596466317,
  "value":1.35,
  "tenant":"a206c67f-db10-47bc-857b-5bf2e23e4dad"
}
# Times 7

Затем я могу получить эти 7 точек данных с помощью запроса:

GET https://<ES_URL>/uploads_d520e58b-9874-406c-a537-669e00552f49/_search
{
    "query": {
        "match_all": {}
    },
        "size": 100
}

После развертывания в моей среде prod (2 шарда, 2 узла) я вижу разные результаты. Я все еще могу создать свой псевдоним и вставить 7 записей (подтверждено ответом Elasticsearch). Однако, когда я выполняю вышеуказанный запрос, возвращаются не все записи (1–5 записей). Количество возвращаемых записей непоследовательно, но всегда меньше числа, которое я вставил в Elasticsearch.

Мне это кажется проблемой, когда я вставляю данные в несколько сегментов, но только извлекаю данные из одного осколка. Мне любопытно, есть ли что-то еще очевидное, чего я мог бы упустить.

Некоторые заключительные детали: я использую Elasti c Search Node против Elasti c Search Version 7.7, который является развернуто в AWS Managed Elasti c Search Service.

...