From fdc7db7b11348a82d197cd211e5c24271c41b4bc Mon Sep 17 00:00:00 2001 From: Michael McCandless Date: Fri, 17 Apr 2015 14:02:53 -0400 Subject: [PATCH 1/3] Test back compat of 0.90.6 index Add back UpgradeReallyOldIndexTest from 1.x, but test 0.90.6 index (Lucene 4.x) instead of 0.20 (Lucene 3.x), and make sure only_ancient_segments works. Closes #10639 --- .../StaticIndexBackwardCompatibilityTest.java | 57 ++++++++++++++++++ .../upgrade/UpgradeReallyOldIndexTest.java | 39 ++++++++++++ .../admin/indices/upgrade/index-0.90.6.zip | Bin 0 -> 85057 bytes 3 files changed, 96 insertions(+) create mode 100644 src/test/java/org/elasticsearch/bwcompat/StaticIndexBackwardCompatibilityTest.java create mode 100644 src/test/java/org/elasticsearch/rest/action/admin/indices/upgrade/UpgradeReallyOldIndexTest.java create mode 100644 src/test/resources/org/elasticsearch/rest/action/admin/indices/upgrade/index-0.90.6.zip diff --git a/src/test/java/org/elasticsearch/bwcompat/StaticIndexBackwardCompatibilityTest.java b/src/test/java/org/elasticsearch/bwcompat/StaticIndexBackwardCompatibilityTest.java new file mode 100644 index 00000000000..1b0718038bf --- /dev/null +++ b/src/test/java/org/elasticsearch/bwcompat/StaticIndexBackwardCompatibilityTest.java @@ -0,0 +1,57 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.bwcompat; + +import org.apache.lucene.util.LuceneTestCase; +import org.elasticsearch.action.admin.indices.get.GetIndexResponse; +import org.elasticsearch.action.search.SearchResponse; +import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.test.ElasticsearchIntegrationTest; + +import java.nio.file.Paths; + +import static org.hamcrest.Matchers.greaterThanOrEqualTo; + +/** + * These tests are against static indexes, built from versions of ES that cannot be upgraded without + * a full cluster restart (ie no wire format compatibility). + */ +@LuceneTestCase.SuppressCodecs({"Lucene3x", "MockFixedIntBlock", "MockVariableIntBlock", "MockSep", "MockRandom", "Lucene40", "Lucene41", "Appending", "Lucene42", "Lucene45", "Lucene46", "Lucene49"}) +@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 0, minNumDataNodes = 0, maxNumDataNodes = 0) +public class StaticIndexBackwardCompatibilityTest extends ElasticsearchIntegrationTest { + + public void loadIndex(String index, Object... settings) throws Exception { + logger.info("Checking static index " + index); + Settings nodeSettings = prepareBackwardsDataDir(Paths.get(getClass().getResource(index + ".zip").toURI()), settings); + internalCluster().startNode(nodeSettings); + ensureGreen(index); + assertIndexSanity(index); + } + + private void assertIndexSanity(String index) { + GetIndexResponse getIndexResponse = client().admin().indices().prepareGetIndex().get(); + assertEquals(1, getIndexResponse.indices().length); + assertEquals(index, getIndexResponse.indices()[0]); + ensureYellow(index); + SearchResponse test = client().prepareSearch(index).get(); + assertThat(test.getHits().getTotalHits(), greaterThanOrEqualTo(1l)); + } + +} diff --git a/src/test/java/org/elasticsearch/rest/action/admin/indices/upgrade/UpgradeReallyOldIndexTest.java b/src/test/java/org/elasticsearch/rest/action/admin/indices/upgrade/UpgradeReallyOldIndexTest.java new file mode 100644 index 00000000000..10416d44868 --- /dev/null +++ b/src/test/java/org/elasticsearch/rest/action/admin/indices/upgrade/UpgradeReallyOldIndexTest.java @@ -0,0 +1,39 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.rest.action.admin.indices.upgrade; + +import org.elasticsearch.bwcompat.StaticIndexBackwardCompatibilityTest; +import org.elasticsearch.node.Node; + +public class UpgradeReallyOldIndexTest extends StaticIndexBackwardCompatibilityTest { + + public void testUpgrade_0_90_6() throws Exception { + String indexName = "index-0.90.6"; + loadIndex(indexName, Node.HTTP_ENABLED, true); + + UpgradeTest.assertNotUpgraded(httpClient(), indexName); + assertTrue(UpgradeTest.hasAncientSegments(httpClient(), indexName)); + UpgradeTest.runUpgrade(httpClient(), indexName, "wait_for_completion", "true", "only_ancient_segments", "true"); + assertFalse(UpgradeTest.hasAncientSegments(httpClient(), "index-0.90.6")); + // This index has only ancient segments, so it should now be fully upgraded: + UpgradeTest.assertUpgraded(httpClient(), indexName); + } + +} diff --git a/src/test/resources/org/elasticsearch/rest/action/admin/indices/upgrade/index-0.90.6.zip b/src/test/resources/org/elasticsearch/rest/action/admin/indices/upgrade/index-0.90.6.zip new file mode 100644 index 0000000000000000000000000000000000000000..8a77e4c8ec1ac97e1e957fbebd5f04f1f2b99711 GIT binary patch literal 85057 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≷+EtZX@#V+8rOgL=g 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 Date: Fri, 17 Apr 2015 12:54:15 -0700 Subject: [PATCH 2/3] Change nocommit checks to not happen on intellij files (where there can be a TODO task named eg Nocommits). --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index 04f99765164..dcd343d2055 100644 --- a/pom.xml +++ b/pom.xml @@ -667,6 +667,7 @@ + From dc1742785d25ebf557313b4cb805a0b3e0607816 Mon Sep 17 00:00:00 2001 From: Julie Tibshirani Date: Tue, 31 Mar 2015 17:11:14 -0700 Subject: [PATCH 3/3] Mappings: Fixed an equality check in StringFieldMapper. The check was ineffective and was causing search_quote_analyzer to be added to the mapping unnecessarily. Closes #10357 closes #10359 --- .../index/mapper/core/StringFieldMapper.java | 2 +- .../string/SimpleStringMappingTests.java | 80 ++++++++++++++++++- 2 files changed, 79 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/elasticsearch/index/mapper/core/StringFieldMapper.java b/src/main/java/org/elasticsearch/index/mapper/core/StringFieldMapper.java index 4d4b7d6bba8..43da31336be 100644 --- a/src/main/java/org/elasticsearch/index/mapper/core/StringFieldMapper.java +++ b/src/main/java/org/elasticsearch/index/mapper/core/StringFieldMapper.java @@ -382,7 +382,7 @@ public class StringFieldMapper extends AbstractFieldMapper implements Al if (includeDefaults || positionOffsetGap != Defaults.POSITION_OFFSET_GAP) { builder.field("position_offset_gap", positionOffsetGap); } - if (searchQuotedAnalyzer != null && searchAnalyzer != searchQuotedAnalyzer) { + if (searchQuotedAnalyzer != null && !searchQuotedAnalyzer.name().equals(searchAnalyzer.name())) { builder.field("search_quote_analyzer", searchQuotedAnalyzer.name()); } else if (includeDefaults) { if (searchQuotedAnalyzer == null) { diff --git a/src/test/java/org/elasticsearch/index/mapper/string/SimpleStringMappingTests.java b/src/test/java/org/elasticsearch/index/mapper/string/SimpleStringMappingTests.java index bf50d730eaa..d4e1c3ef053 100644 --- a/src/test/java/org/elasticsearch/index/mapper/string/SimpleStringMappingTests.java +++ b/src/test/java/org/elasticsearch/index/mapper/string/SimpleStringMappingTests.java @@ -20,6 +20,8 @@ package org.elasticsearch.index.mapper.string; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Lists; + import org.apache.lucene.index.DocValuesType; import org.apache.lucene.index.IndexOptions; import org.apache.lucene.index.IndexableField; @@ -27,13 +29,13 @@ import org.apache.lucene.index.IndexableFieldType; import org.apache.lucene.index.Term; import org.apache.lucene.queries.TermFilter; import org.apache.lucene.queries.TermsFilter; -import org.elasticsearch.Version; -import org.elasticsearch.cluster.metadata.IndexMetaData; import org.elasticsearch.common.lucene.search.Queries; import org.elasticsearch.common.settings.ImmutableSettings; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.ToXContent; +import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.index.IndexService; import org.elasticsearch.index.fielddata.FieldDataType; import org.elasticsearch.index.mapper.ContentPath; @@ -52,6 +54,7 @@ import org.junit.Test; import java.util.Arrays; import java.util.Collections; +import java.util.Map; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.notNullValue; @@ -216,6 +219,79 @@ public class SimpleStringMappingTests extends ElasticsearchSingleNodeTest { assertThat(fieldType.omitNorms(), equalTo(false)); assertParseIdemPotent(fieldType, defaultMapper); } + + @Test + public void testSearchQuoteAnalyzerSerialization() throws Exception { + // Cases where search_quote_analyzer should not be added to the mapping. + String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") + .startObject("properties") + .startObject("field1") + .field("type", "string") + .field("position_offset_gap", 1000) + .endObject() + .startObject("field2") + .field("type", "string") + .field("position_offset_gap", 1000) + .field("analyzer", "standard") + .endObject() + .startObject("field3") + .field("type", "string") + .field("position_offset_gap", 1000) + .field("analyzer", "standard") + .field("search_analyzer", "simple") + .endObject() + .startObject("field4") + .field("type", "string") + .field("position_offset_gap", 1000) + .field("analyzer", "standard") + .field("search_analyzer", "simple") + .field("search_quote_analyzer", "simple") + .endObject() + .endObject() + .endObject().endObject().string(); + + DocumentMapper mapper = parser.parse(mapping); + for (String fieldName : Lists.newArrayList("field1", "field2", "field3", "field4")) { + Map serializedMap = getSerializedMap(fieldName, mapper); + assertFalse(serializedMap.containsKey("search_quote_analyzer")); + } + + // Cases where search_quote_analyzer should be present. + mapping = XContentFactory.jsonBuilder().startObject().startObject("type") + .startObject("properties") + .startObject("field1") + .field("type", "string") + .field("position_offset_gap", 1000) + .field("search_quote_analyzer", "simple") + .endObject() + .startObject("field2") + .field("type", "string") + .field("position_offset_gap", 1000) + .field("analyzer", "standard") + .field("search_analyzer", "standard") + .field("search_quote_analyzer", "simple") + .endObject() + .endObject() + .endObject().endObject().string(); + + mapper = parser.parse(mapping); + for (String fieldName : Lists.newArrayList("field1", "field2")) { + Map serializedMap = getSerializedMap(fieldName, mapper); + assertEquals(serializedMap.get("search_quote_analyzer"), "simple"); + } + } + + private Map getSerializedMap(String fieldName, DocumentMapper mapper) throws Exception { + FieldMapper fieldMapper = mapper.mappers().smartNameFieldMapper(fieldName); + XContentBuilder builder = JsonXContent.contentBuilder().startObject(); + fieldMapper.toXContent(builder, ToXContent.EMPTY_PARAMS).endObject(); + builder.close(); + + Map fieldMap = JsonXContent.jsonXContent.createParser(builder.bytes()).mapAndClose(); + @SuppressWarnings("unchecked") + Map result = (Map) fieldMap.get(fieldName); + return result; + } @Test public void testTermVectors() throws Exception {