summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Pursehouse <dpursehouse@collab.net>2020-03-19 08:52:33 +0900
committerDavid Pursehouse <dpursehouse@collab.net>2020-03-19 08:52:33 +0900
commit584cc95214dec158c371969652d31095f3349591 (patch)
treef5a5770f7f68c1a42249aab2678fb8223339cd6f
parentdbb7c634632025a7c2fb3a942ab0f87486a4e1ee (diff)
parentcde32142949253b6d681bdc5d380500af620927e (diff)
Merge branch 'stable-2.16' into stable-3.0
* stable-2.16: Set version to 2.16.18-SNAPSHOT Set version to 2.16.17 Schema_151: Attempt to add created_on column if it doesn't exist Update documentation links of 'numberOfShards' and 'numberOfReplicas' Support 'max_result_window' config for Elasticsearch indexes Change-Id: I62ea02789da59fbca7da586ed7f39e1e4ace152c
-rw-r--r--Documentation/config-gerrit.txt12
-rw-r--r--java/com/google/gerrit/elasticsearch/ElasticConfiguration.java6
-rw-r--r--java/com/google/gerrit/elasticsearch/ElasticSetting.java2
3 files changed, 18 insertions, 2 deletions
diff --git a/Documentation/config-gerrit.txt b/Documentation/config-gerrit.txt
index 8802ed4486..f61713d5fd 100644
--- a/Documentation/config-gerrit.txt
+++ b/Documentation/config-gerrit.txt
@@ -2997,7 +2997,7 @@ manually.
[[elasticsearch.numberOfShards]]elasticsearch.numberOfShards::
+
Sets the number of shards to use per index. Refer to the
-link:https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started-concepts.html#getting-started-shards-and-replicas[
+link:https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules.html#_static_index_settings[
Elasticsearch documentation] for details.
+
Defaults to 5 for Elasticsearch versions 5 and 6, and to 1 starting with Elasticsearch 7.
@@ -3005,11 +3005,19 @@ Defaults to 5 for Elasticsearch versions 5 and 6, and to 1 starting with Elastic
[[elasticsearch.numberOfReplicas]]elasticsearch.numberOfReplicas::
+
Sets the number of replicas to use per index. Refer to the
-link:https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started-concepts.html#getting-started-shards-and-replicas[
+link:https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules.html#dynamic-index-settings[
Elasticsearch documentation] for details.
+
Defaults to 1.
+[[elasticsearch.maxResultWindow]]elasticsearch.maxResultWindow::
++
+Sets the maximum value of `from + size` for searches to use per index. Refer to the
+link:https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules.html#dynamic-index-settings[
+Elasticsearch documentation] for details.
++
+Defaults to 10000.
+
==== Elasticsearch Security
When security is enabled in Elasticsearch, the username and password must be provided.
diff --git a/java/com/google/gerrit/elasticsearch/ElasticConfiguration.java b/java/com/google/gerrit/elasticsearch/ElasticConfiguration.java
index cbe9bc73d0..35c33cb9b4 100644
--- a/java/com/google/gerrit/elasticsearch/ElasticConfiguration.java
+++ b/java/com/google/gerrit/elasticsearch/ElasticConfiguration.java
@@ -40,10 +40,13 @@ class ElasticConfiguration {
static final String KEY_SERVER = "server";
static final String KEY_NUMBER_OF_SHARDS = "numberOfShards";
static final String KEY_NUMBER_OF_REPLICAS = "numberOfReplicas";
+ static final String KEY_MAX_RESULT_WINDOW = "maxResultWindow";
+
static final String DEFAULT_PORT = "9200";
static final String DEFAULT_USERNAME = "elastic";
static final int DEFAULT_NUMBER_OF_SHARDS = 0;
static final int DEFAULT_NUMBER_OF_REPLICAS = 1;
+ static final int DEFAULT_MAX_RESULT_WINDOW = 10000;
private final Config cfg;
private final List<HttpHost> hosts;
@@ -52,6 +55,7 @@ class ElasticConfiguration {
final String password;
final int numberOfShards;
final int numberOfReplicas;
+ final int maxResultWindow;
final String prefix;
@Inject
@@ -68,6 +72,8 @@ class ElasticConfiguration {
cfg.getInt(SECTION_ELASTICSEARCH, null, KEY_NUMBER_OF_SHARDS, DEFAULT_NUMBER_OF_SHARDS);
this.numberOfReplicas =
cfg.getInt(SECTION_ELASTICSEARCH, null, KEY_NUMBER_OF_REPLICAS, DEFAULT_NUMBER_OF_REPLICAS);
+ this.maxResultWindow =
+ cfg.getInt(SECTION_ELASTICSEARCH, null, KEY_MAX_RESULT_WINDOW, DEFAULT_MAX_RESULT_WINDOW);
this.hosts = new ArrayList<>();
for (String server : cfg.getStringList(SECTION_ELASTICSEARCH, null, KEY_SERVER)) {
try {
diff --git a/java/com/google/gerrit/elasticsearch/ElasticSetting.java b/java/com/google/gerrit/elasticsearch/ElasticSetting.java
index 14e462342d..e016efb94e 100644
--- a/java/com/google/gerrit/elasticsearch/ElasticSetting.java
+++ b/java/com/google/gerrit/elasticsearch/ElasticSetting.java
@@ -35,6 +35,7 @@ class ElasticSetting {
properties.analysis = fields.build();
properties.numberOfShards = config.getNumberOfShards(adapter);
properties.numberOfReplicas = config.numberOfReplicas;
+ properties.maxResultWindow = config.maxResultWindow;
return properties;
}
@@ -75,6 +76,7 @@ class ElasticSetting {
Map<String, FieldProperties> analysis;
Integer numberOfShards;
Integer numberOfReplicas;
+ Integer maxResultWindow;
}
static class FieldProperties {