Не работает настройка индекса импорта данных - PullRequest
3 голосов
/ 24 мая 2019

Я могу экспортировать настройки индекса, используя приведенную ниже команду

elasticdump --input=http://localhost:9200/tempIndex --output=/Users/Desktop/indexFile --type=settings

, но когда я попытался импортировать ту же настройку, она не обновляет настройку индекса

Команда, которую я использовал для импортаis:

elasticdump --input=/Users/Desktop/indexFile --output=http://localhost:9200/tempIndex --type=settings

вывод команды:

 07:06:33 GMT | starting dump
 07:06:33 GMT | got 1 objects from source file (offset: 0)
 07:06:34 GMT | sent 1 objects to destination elasticsearch, wrote 0
 07:06:34 GMT | got 0 objects from source file (offset: 1)
 07:06:34 GMT | Total Writes: 0
 07:06:34 GMT | dump complete

Ниже приведены настройки моего индекса, экспортированные с использованиемasticdump settings option

{
    "tempIndex":{
        "settings":{
            "index":{
                "mapping":{
                    "nested_fields":{
                        "limit":"2000"
                    },
                    "total_fields":{
                        "limit":"2000"
                    }
                },
                "analysis":{
                    "normalizer":{
                        "lowercase_normalizer":{
                            "filter":[
                                "lowercase"
                            ],
                            "type":"custom",
                            "char_filter":[

                            ]
                        }
                    }
                },
                "number_of_shards":"5",
                "number_of_replicas":"1"
            }
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 13 июня 2019

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

{
    "error": {
        "root_cause": [{
            "type": "illegal_argument_exception",
            "reason": "Can't update non dynamic settings [[index.number_of_shards]] for open indices [[source_index/_OdHe-IVQBemJ3YYka_9hg]]"
        }],
        "type": "illegal_argument_exception",
        "reason": "Can't update non dynamic settings [[ index.number_of_shards]] for open indices [[source_index/_OdHe-IVQBemJ3YYka_9hg]]"
    },
    "status": 400
}

Вы можете сделать

# passing in _settings path will change operation from insert to update
elasticdump --input=/Users/Desktop/indexFile --output=http://localhost:9200/tempIndex/_settings --type=settings

справка: https://github.com/taskrabbit/elasticsearch-dump/issues/549#issuecomment-501223008

0 голосов
/ 01 июня 2019

Я полагаю, чтоasticdump скрывает ошибку отasticsearch здесь.Если индекс tempIndex уже существует, вы не сможете обновить настройки number_of_shards и analysis.Эти настройки не являются динамическими.Попробуйте выполнить:

POST /tempIndex/_settings
{
    "tempIndex":{
        "settings":{
            "index":{
                "mapping":{
                    "nested_fields":{
                        "limit":"2000"
                    },
                    "total_fields":{
                        "limit":"2000"
                    }
                },
                "analysis":{
                    "normalizer":{
                        "lowercase_normalizer":{
                            "filter":[
                                "lowercase"
                            ],
                            "type":"custom",
                            "char_filter":[

                            ]
                        }
                    }
                },
                "number_of_shards":"5",
                "number_of_replicas":"1"
            }
        }
    }
}

Вероятно, вы получите ошибку отasticsearch.Поскольку запрос недействителен, никакие настройки не будут обновлены.

Вы можете удалить индекс tempIndex, если это возможно, или удалить параметры, которые не являются динамическими, из indexFile .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...