当我将此配置添加到 ubuntu vm 中的/etc/elasticsearch/elasticsearch.yml
时;
index.max_result_window: 1000000
在我重新启动 Elasticsearch 时在此配置之后,给我这个异常;
service elasticsearch status
● elasticsearch.service - Elasticsearch Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled) Active: failed (Result: exit-code) since Pzt 2017-12-11 11:52:02 +03; 1s ago
Docs: http://www.elastic.co Process: 17997 ExecStart=/usr/share/elasticsearch/bin/elasticsearch -p ${PID_DIR}/elasticsearch.pid --quiet -Edefault.path.logs=${L Process: 17994 ExecStartPre=/usr/share/elasticsearch/bin/elasticsearch-systemd-pre-exec (code=exited, status=0/SUCCESS) Main PID: 17997 (code=exited, status=1/FAILURE)
Ara 11 11:51:55 bilal-VirtualBox systemd[1]: Stopped Elasticsearch. Ara 11 11:51:55 bilal-VirtualBox systemd[1]: Starting Elasticsearch... Ara 11 11:51:55 bilal-VirtualBox systemd[1]: Started Elasticsearch. Ara 11 11:52:02 bilal-VirtualBox systemd[1]: elasticsearch.service: Main process exited, code=exited, status=1/FAILURE Ara 11 11:52:02 bilal-VirtualBox systemd[1]: elasticsearch.service: Unit entered failed state. Ara 11 11:52:02 bilal-VirtualBox systemd[1]: elasticsearch.service: Failed with result 'exit-code'.
这是elasticsearch 5.x
中的预期行为。 不允许在节点级别配置上设置索引级别设置。
从文档中,
默认为 10,000 的 index.max_result_window 是一种保护措施, 搜索请求占用堆内存和时间,与 from + 大小成正比。
如果你检查 elasticsearch 日志,它会显示类似这样的内容,
在节点级别配置上找到索引级别设置。
由于 elasticsearch 5.x 索引级别设置无法在 节点配置,如系统属性中的 elasticsearch.yaml。 或命令行参数。为了升级所有索引 必须通过/${索引}/_settings API 更新设置。除非所有 设置是动态的,必须关闭所有索引才能应用 升级将来创建的索引应使用索引模板来 设置默认值。
溶液?
请确保通过执行以下命令在所有索引上更新所有必需的值:
curl -XPUT 'http://localhost:9200/_all/_settings?preserve_existing=true' -d '{
"index.max_result_window" : "1000"
}'
或
您可以使用索引模板。