我应该在哪里配置max_result_window索引设置?

时间:2019-04-09 13:45:14

标签: elasticsearch elastica

我正在尝试添加到我的.header { background: linear-gradient( to right bottom, rgba(255, 255, 255, 0), rgba(255,255,255, 0.3)), url(../../assets/coder-min.jpg) no-repeat center right / cover; height: 100vh; color: #fff; position: relative; z-index: 1; }

elasticsearch.yml

但是问题是它不像我在配置中添加index.max_result_window: 10000 (这会导致错误),这在Elastica 2.X版本中有效,但是现在在6.X中却没有似乎有效。知道如何在最新的Elastica版本中配置索引吗?我似乎找不到答案。

2 个答案:

答案 0 :(得分:1)

max_result_window是动态索引级别设置,而不是特定于节点的。默认值为10,000,因此,如果这是您要设置的值,则不需要。

您可以通过更新特定索引设置或在所有现有索引中全局更新来进行调整:

PUT _settings
{
  "index.max_result_window": 11000
}

以上内容将更新所有现有的索引。为了使它对将来的索引生效,您需要一个以特定索引模式为目标的索引模板(或者对于全局索引仅*)-例如:

PUT _template/example
{
  "index_patterns": ["settings_test*"],
  "settings": {
    "index.max_result_window": 12000
  }
}

PUT settings_test

以上内容将产生以下内容:

GET settings_test
...

{
  "settings_test" : {
    "aliases" : { },
    "mappings" : { },
    "settings" : {
      "index" : {
        ...
        "max_result_window" : "12000",
        ...
      }
    }
  }
}

参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules.html

答案 1 :(得分:0)

对于Elastica,我认为这是解决方案:

// Load index
$elasticaIndex = $elasticaClient->getIndex('twitter');

// Create the index new
$elasticaIndex->create(
    array(
        'number_of_shards' => 4,
        'number_of_replicas' => 1,
        'analysis' => array(
            'analyzer' => array(
                'default_index' => array(
                    'type' => 'custom',
                    'tokenizer' => 'standard',
                    'filter' => array('lowercase', 'mySnowball')
                ),
                'default_search' => array(
                    'type' => 'custom',
                    'tokenizer' => 'standard',
                    'filter' => array('standard', 'lowercase', 'mySnowball')
                )
            ),
            'filter' => array(
                'mySnowball' => array(
                    'type' => 'snowball',
                    'language' => 'German'
                )
            )
        ),
        'max_result_window' => 10000
    ),
    true
);