在Elasticsearch 6x中添加索引缓冲区大小的位置

时间:2018-04-13 09:34:10

标签: node.js elasticsearch elasticsearch-5 elasticsearch-6

我想在模板设置中增加elasticsearch的缓冲区大小,但我应该在哪里添加此设置。我应该在哪里写indices.memory.index_buffer_size:?据我所知,它应该为索引定义,实际上我有一个索引。

const indexTemplateSettings = {
    number_of_shards: 2,
    number_of_replicas : 0,
    refresh_interval: '3600s',
    'indices.memory.index_buffer_size': '30%',
    // 'store.throttle.max_bytes_per_sec' : '100mb',
    max_result_window: 1000000000,
    'index.routing.allocation.enable': 'all',
}

export const init = async types => {
    try {
        let client = createClient()

        const templateSettings = {
            index_patterns : ['*'],
            settings: indexTemplateSettings,
            mappings : types.reduce((p, type) => ({
                ...p,
                [type] : {
                    numeric_detection: true,
                    _source : {enabled : true},
                    dynamic_templates: [
                        {
                            all: {
                                match: '*',
                                mapping: {
                                    copy_to: searchField,
                                },
                            },
                        },
                    ],
                    properties: {
                        _searchField: {
                            type: 'text',
                        },
                    },
                },
            }), {}),
        }

        await client.indices.putTemplate({
            name: 'default',
            body: templateSettings,
        },(error, response) => {
            logger.silly('Pushing of index template completed', response)
        })
    } catch (e) {
        logger.error(e)
    }
}

1 个答案:

答案 0 :(得分:0)

这应该转到 elasticsearch.yml 配置文件。引自relevant docs

  

以下设置是静态的,必须在群集中的每个数据节点上进行配置

默认值是堆的10%。这是一个节点范围设置,而不是每个索引库。

旁注:这应该是512MB per shard as the maximum as described in the docs