diff options
Diffstat (limited to 'modules/percolator')
4 files changed, 97 insertions, 35 deletions
diff --git a/modules/percolator/src/main/java/org/elasticsearch/percolator/PercolateQueryBuilder.java b/modules/percolator/src/main/java/org/elasticsearch/percolator/PercolateQueryBuilder.java index 632c502283..97a65a29ad 100644 --- a/modules/percolator/src/main/java/org/elasticsearch/percolator/PercolateQueryBuilder.java +++ b/modules/percolator/src/main/java/org/elasticsearch/percolator/PercolateQueryBuilder.java @@ -57,6 +57,7 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentHelper; import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.index.analysis.FieldNameAnalyzer; import org.elasticsearch.index.mapper.DocumentMapper; import org.elasticsearch.index.mapper.DocumentMapperForType; @@ -94,6 +95,7 @@ public class PercolateQueryBuilder extends AbstractQueryBuilder<PercolateQueryBu private final String field; private final String documentType; private final BytesReference document; + private final XContentType documentXContentType; private final String indexedDocumentIndex; private final String indexedDocumentType; @@ -102,7 +104,16 @@ public class PercolateQueryBuilder extends AbstractQueryBuilder<PercolateQueryBu private final String indexedDocumentPreference; private final Long indexedDocumentVersion; + /** + * @deprecated use {@link #PercolateQueryBuilder(String, String, BytesReference, XContentType)} with the document content type to avoid + * autodetection + */ + @Deprecated public PercolateQueryBuilder(String field, String documentType, BytesReference document) { + this(field, documentType, document, XContentFactory.xContentType(document)); + } + + public PercolateQueryBuilder(String field, String documentType, BytesReference document, XContentType documentXContentType) { if (field == null) { throw new IllegalArgumentException("[field] is a required argument"); } @@ -115,6 +126,7 @@ public class PercolateQueryBuilder extends AbstractQueryBuilder<PercolateQueryBu this.field = field; this.documentType = documentType; this.document = document; + this.documentXContentType = Objects.requireNonNull(documentXContentType); indexedDocumentIndex = null; indexedDocumentType = null; indexedDocumentId = null; @@ -150,6 +162,7 @@ public class PercolateQueryBuilder extends AbstractQueryBuilder<PercolateQueryBu this.indexedDocumentPreference = indexedDocumentPreference; this.indexedDocumentVersion = indexedDocumentVersion; this.document = null; + this.documentXContentType = null; } /** @@ -170,6 +183,15 @@ public class PercolateQueryBuilder extends AbstractQueryBuilder<PercolateQueryBu indexedDocumentVersion = null; } document = in.readOptionalBytesReference(); + if (document != null) { + if (in.getVersion().after(Version.V_5_3_0_UNRELEASED)) { // TODO update to onOrAfter after backporting + documentXContentType = XContentType.readFrom(in); + } else { + documentXContentType = XContentFactory.xContentType(document); + } + } else { + documentXContentType = null; + } } @Override @@ -188,6 +210,9 @@ public class PercolateQueryBuilder extends AbstractQueryBuilder<PercolateQueryBu out.writeBoolean(false); } out.writeOptionalBytesReference(document); + if (document != null && out.getVersion().after(Version.V_5_3_0_UNRELEASED)) { // TODO update to onOrAfter after backporting + documentXContentType.writeTo(out); + } } @Override @@ -294,7 +319,7 @@ public class PercolateQueryBuilder extends AbstractQueryBuilder<PercolateQueryBu PercolateQueryBuilder queryBuilder; if (source != null) { - queryBuilder = new PercolateQueryBuilder(field, documentType, source); + queryBuilder = new PercolateQueryBuilder(field, documentType, source, XContentType.JSON); } else if (indexedDocumentId != null) { queryBuilder = new PercolateQueryBuilder(field, documentType, indexedDocumentIndex, indexedDocumentType, indexedDocumentId, indexedDocumentRouting, indexedDocumentPreference, indexedDocumentVersion); @@ -350,7 +375,8 @@ public class PercolateQueryBuilder extends AbstractQueryBuilder<PercolateQueryBu "indexed document [" + indexedDocumentIndex + "/" + indexedDocumentType + "/" + indexedDocumentId + "] source disabled" ); } - return new PercolateQueryBuilder(field, documentType, getResponse.getSourceAsBytesRef()); + final BytesReference source = getResponse.getSourceAsBytesRef(); + return new PercolateQueryBuilder(field, documentType, source, XContentFactory.xContentType(source)); } @Override @@ -370,7 +396,7 @@ public class PercolateQueryBuilder extends AbstractQueryBuilder<PercolateQueryBu DocumentMapperForType docMapperForType = mapperService.documentMapperWithAutoCreate(documentType); DocumentMapper docMapper = docMapperForType.getDocumentMapper(); - ParsedDocument doc = docMapper.parse(source(context.index().getName(), documentType, "_temp_id", document)); + ParsedDocument doc = docMapper.parse(source(context.index().getName(), documentType, "_temp_id", document, documentXContentType)); FieldNameAnalyzer fieldNameAnalyzer = (FieldNameAnalyzer) docMapper.mappers().indexAnalyzer(); // Need to this custom impl because FieldNameAnalyzer is strict and the percolator sometimes isn't when @@ -435,6 +461,11 @@ public class PercolateQueryBuilder extends AbstractQueryBuilder<PercolateQueryBu return document; } + //pkg-private for testing + XContentType getXContentType() { + return documentXContentType; + } + static IndexSearcher createMultiDocumentSearcher(Analyzer analyzer, ParsedDocument doc) { RAMDirectory ramDirectory = new RAMDirectory(); try (IndexWriter indexWriter = new IndexWriter(ramDirectory, new IndexWriterConfig(analyzer))) { diff --git a/modules/percolator/src/test/java/org/elasticsearch/percolator/PercolateQueryBuilderTests.java b/modules/percolator/src/test/java/org/elasticsearch/percolator/PercolateQueryBuilderTests.java index e1589cba14..23f3fc77c2 100644 --- a/modules/percolator/src/test/java/org/elasticsearch/percolator/PercolateQueryBuilderTests.java +++ b/modules/percolator/src/test/java/org/elasticsearch/percolator/PercolateQueryBuilderTests.java @@ -27,14 +27,18 @@ import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.MatchAllDocsQuery; import org.apache.lucene.search.Query; import org.elasticsearch.ResourceNotFoundException; +import org.elasticsearch.Version; import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest; import org.elasticsearch.action.get.GetRequest; import org.elasticsearch.action.get.GetResponse; import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.compress.CompressedXContent; +import org.elasticsearch.common.io.stream.BytesStreamOutput; +import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.index.get.GetResult; import org.elasticsearch.index.mapper.MapperService; import org.elasticsearch.index.mapper.ParseContext; @@ -48,6 +52,7 @@ import org.hamcrest.Matchers; import java.io.IOException; import java.util.ArrayList; +import java.util.Base64; import java.util.Collection; import java.util.Collections; import java.util.List; @@ -107,7 +112,7 @@ public class PercolateQueryBuilderTests extends AbstractQueryTestCase<PercolateQ return new PercolateQueryBuilder(queryField, docType, indexedDocumentIndex, indexedDocumentType, indexedDocumentId, indexedDocumentRouting, indexedDocumentPreference, indexedDocumentVersion); } else { - return new PercolateQueryBuilder(queryField, docType, documentSource); + return new PercolateQueryBuilder(queryField, docType, documentSource, XContentType.JSON); } } @@ -155,7 +160,8 @@ public class PercolateQueryBuilderTests extends AbstractQueryTestCase<PercolateQ IllegalStateException e = expectThrows(IllegalStateException.class, () -> pqb.toQuery(createShardContext())); assertThat(e.getMessage(), equalTo("query builder must be rewritten first")); QueryBuilder rewrite = pqb.rewrite(createShardContext()); - PercolateQueryBuilder geoShapeQueryBuilder = new PercolateQueryBuilder(pqb.getField(), pqb.getDocumentType(), documentSource); + PercolateQueryBuilder geoShapeQueryBuilder = + new PercolateQueryBuilder(pqb.getField(), pqb.getDocumentType(), documentSource, XContentType.JSON); assertEquals(geoShapeQueryBuilder, rewrite); } @@ -176,14 +182,16 @@ public class PercolateQueryBuilderTests extends AbstractQueryTestCase<PercolateQ public void testRequiredParameters() { IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> { - new PercolateQueryBuilder(null, null, new BytesArray("{}")); + new PercolateQueryBuilder(null, null, new BytesArray("{}"), XContentType.JSON); }); assertThat(e.getMessage(), equalTo("[field] is a required argument")); - e = expectThrows(IllegalArgumentException.class, () -> new PercolateQueryBuilder("_field", null, new BytesArray("{}"))); + e = expectThrows(IllegalArgumentException.class, + () -> new PercolateQueryBuilder("_field", null, new BytesArray("{}"), XContentType.JSON)); assertThat(e.getMessage(), equalTo("[document_type] is a required argument")); - e = expectThrows(IllegalArgumentException.class, () -> new PercolateQueryBuilder("_field", "_document_type", null)); + e = expectThrows(IllegalArgumentException.class, + () -> new PercolateQueryBuilder("_field", "_document_type", null, null)); assertThat(e.getMessage(), equalTo("[document] is a required argument")); e = expectThrows(IllegalArgumentException.class, () -> { @@ -226,7 +234,7 @@ public class PercolateQueryBuilderTests extends AbstractQueryTestCase<PercolateQ } Analyzer analyzer = new WhitespaceAnalyzer(); - ParsedDocument parsedDocument = new ParsedDocument(null, null, "_id", "_type", null, docs, null, null); + ParsedDocument parsedDocument = new ParsedDocument(null, null, "_id", "_type", null, docs, null, null, null); IndexSearcher indexSearcher = PercolateQueryBuilder.createMultiDocumentSearcher(analyzer, parsedDocument); assertThat(indexSearcher.getIndexReader().numDocs(), equalTo(numDocs)); @@ -239,6 +247,26 @@ public class PercolateQueryBuilderTests extends AbstractQueryTestCase<PercolateQ assertThat(result.clauses().get(1).getOccur(), equalTo(BooleanClause.Occur.MUST_NOT)); } + public void testSerializationBwc() throws IOException { + final byte[] data = Base64.getDecoder().decode("P4AAAAAFZmllbGQEdHlwZQAAAAAAAA57ImZvbyI6ImJhciJ9AAAAAA=="); + final Version version = randomFrom(Version.V_5_0_0, Version.V_5_0_1, Version.V_5_0_2, + Version.V_5_0_3_UNRELEASED, Version.V_5_1_1_UNRELEASED, Version.V_5_1_2_UNRELEASED, Version.V_5_2_0_UNRELEASED); + try (StreamInput in = StreamInput.wrap(data)) { + in.setVersion(version); + PercolateQueryBuilder queryBuilder = new PercolateQueryBuilder(in); + assertEquals("type", queryBuilder.getDocumentType()); + assertEquals("field", queryBuilder.getField()); + assertEquals("{\"foo\":\"bar\"}", queryBuilder.getDocument().utf8ToString()); + assertEquals(XContentType.JSON, queryBuilder.getXContentType()); + + try (BytesStreamOutput out = new BytesStreamOutput()) { + out.setVersion(version); + queryBuilder.writeTo(out); + assertArrayEquals(data, out.bytes().toBytesRef().bytes); + } + } + } + private static BytesReference randomSource() { try { XContentBuilder xContent = XContentFactory.jsonBuilder(); diff --git a/modules/percolator/src/test/java/org/elasticsearch/percolator/PercolatorFieldMapperTests.java b/modules/percolator/src/test/java/org/elasticsearch/percolator/PercolatorFieldMapperTests.java index 4d94ab3a29..d47e0a4614 100644 --- a/modules/percolator/src/test/java/org/elasticsearch/percolator/PercolatorFieldMapperTests.java +++ b/modules/percolator/src/test/java/org/elasticsearch/percolator/PercolatorFieldMapperTests.java @@ -565,7 +565,7 @@ public class PercolatorFieldMapperTests extends ESSingleNodeTestCase { ParsedDocument doc = mapperService.documentMapper(typeName).parse("test", typeName, "1", XContentFactory.jsonBuilder().startObject() - .rawField(fieldName, new BytesArray(query.string())) + .rawField(fieldName, new BytesArray(query.string()), query.contentType()) .endObject().bytes()); BytesRef querySource = doc.rootDoc().getFields(fieldType.queryBuilderField.name())[0].binaryValue(); Map<String, Object> parsedQuery = XContentHelper.convertToMap(new BytesArray(querySource), true).v2(); @@ -592,7 +592,7 @@ public class PercolatorFieldMapperTests extends ESSingleNodeTestCase { doc = mapperService.documentMapper(typeName).parse("test", typeName, "1", XContentFactory.jsonBuilder().startObject() - .rawField(fieldName, new BytesArray(query.string())) + .rawField(fieldName, new BytesArray(query.string()), query.contentType()) .endObject().bytes()); querySource = doc.rootDoc().getFields(fieldType.queryBuilderField.name())[0].binaryValue(); parsedQuery = XContentHelper.convertToMap(new BytesArray(querySource), true).v2(); diff --git a/modules/percolator/src/test/java/org/elasticsearch/percolator/PercolatorQuerySearchIT.java b/modules/percolator/src/test/java/org/elasticsearch/percolator/PercolatorQuerySearchIT.java index 1cce5fdbbd..07fc9aa2fe 100644 --- a/modules/percolator/src/test/java/org/elasticsearch/percolator/PercolatorQuerySearchIT.java +++ b/modules/percolator/src/test/java/org/elasticsearch/percolator/PercolatorQuerySearchIT.java @@ -28,6 +28,7 @@ import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.index.mapper.MapperParsingException; import org.elasticsearch.index.query.MatchPhraseQueryBuilder; import org.elasticsearch.index.query.MultiMatchQueryBuilder; @@ -94,7 +95,8 @@ public class PercolatorQuerySearchIT extends ESSingleNodeTestCase { .setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE) .execute().actionGet(); SearchResponse response = client().prepareSearch("index") - .setQuery(new PercolateQueryBuilder("query", "type", jsonBuilder().startObject().field("field1", "b").endObject().bytes())) + .setQuery(new PercolateQueryBuilder("query", "type", jsonBuilder().startObject().field("field1", "b").endObject().bytes(), + XContentType.JSON)) .get(); assertHitCount(response, 1); assertSearchHits(response, "1"); @@ -122,7 +124,7 @@ public class PercolatorQuerySearchIT extends ESSingleNodeTestCase { BytesReference source = jsonBuilder().startObject().endObject().bytes(); logger.info("percolating empty doc"); SearchResponse response = client().prepareSearch() - .setQuery(new PercolateQueryBuilder("query", "type", source)) + .setQuery(new PercolateQueryBuilder("query", "type", source, XContentType.JSON)) .get(); assertHitCount(response, 1); assertThat(response.getHits().getAt(0).getId(), equalTo("1")); @@ -130,7 +132,7 @@ public class PercolatorQuerySearchIT extends ESSingleNodeTestCase { source = jsonBuilder().startObject().field("field1", "value").endObject().bytes(); logger.info("percolating doc with 1 field"); response = client().prepareSearch() - .setQuery(new PercolateQueryBuilder("query", "type", source)) + .setQuery(new PercolateQueryBuilder("query", "type", source, XContentType.JSON)) .addSort("_uid", SortOrder.ASC) .get(); assertHitCount(response, 2); @@ -140,7 +142,7 @@ public class PercolatorQuerySearchIT extends ESSingleNodeTestCase { source = jsonBuilder().startObject().field("field1", "value").field("field2", "value").endObject().bytes(); logger.info("percolating doc with 2 fields"); response = client().prepareSearch() - .setQuery(new PercolateQueryBuilder("query", "type", source)) + .setQuery(new PercolateQueryBuilder("query", "type", source, XContentType.JSON)) .addSort("_uid", SortOrder.ASC) .get(); assertHitCount(response, 3); @@ -199,7 +201,7 @@ public class PercolatorQuerySearchIT extends ESSingleNodeTestCase { // Test long range: BytesReference source = jsonBuilder().startObject().field("field1", 12).endObject().bytes(); SearchResponse response = client().prepareSearch() - .setQuery(new PercolateQueryBuilder("query", "type", source)) + .setQuery(new PercolateQueryBuilder("query", "type", source, XContentType.JSON)) .get(); assertHitCount(response, 2); assertThat(response.getHits().getAt(0).getId(), equalTo("3")); @@ -207,7 +209,7 @@ public class PercolatorQuerySearchIT extends ESSingleNodeTestCase { source = jsonBuilder().startObject().field("field1", 11).endObject().bytes(); response = client().prepareSearch() - .setQuery(new PercolateQueryBuilder("query", "type", source)) + .setQuery(new PercolateQueryBuilder("query", "type", source, XContentType.JSON)) .get(); assertHitCount(response, 1); assertThat(response.getHits().getAt(0).getId(), equalTo("1")); @@ -215,7 +217,7 @@ public class PercolatorQuerySearchIT extends ESSingleNodeTestCase { // Test double range: source = jsonBuilder().startObject().field("field2", 12).endObject().bytes(); response = client().prepareSearch() - .setQuery(new PercolateQueryBuilder("query", "type", source)) + .setQuery(new PercolateQueryBuilder("query", "type", source, XContentType.JSON)) .get(); assertHitCount(response, 2); assertThat(response.getHits().getAt(0).getId(), equalTo("6")); @@ -223,7 +225,7 @@ public class PercolatorQuerySearchIT extends ESSingleNodeTestCase { source = jsonBuilder().startObject().field("field2", 11).endObject().bytes(); response = client().prepareSearch() - .setQuery(new PercolateQueryBuilder("query", "type", source)) + .setQuery(new PercolateQueryBuilder("query", "type", source, XContentType.JSON)) .get(); assertHitCount(response, 1); assertThat(response.getHits().getAt(0).getId(), equalTo("4")); @@ -231,7 +233,7 @@ public class PercolatorQuerySearchIT extends ESSingleNodeTestCase { // Test IP range: source = jsonBuilder().startObject().field("field3", "192.168.1.5").endObject().bytes(); response = client().prepareSearch() - .setQuery(new PercolateQueryBuilder("query", "type", source)) + .setQuery(new PercolateQueryBuilder("query", "type", source, XContentType.JSON)) .get(); assertHitCount(response, 2); assertThat(response.getHits().getAt(0).getId(), equalTo("9")); @@ -239,7 +241,7 @@ public class PercolatorQuerySearchIT extends ESSingleNodeTestCase { source = jsonBuilder().startObject().field("field3", "192.168.1.4").endObject().bytes(); response = client().prepareSearch() - .setQuery(new PercolateQueryBuilder("query", "type", source)) + .setQuery(new PercolateQueryBuilder("query", "type", source, XContentType.JSON)) .get(); assertHitCount(response, 1); assertThat(response.getHits().getAt(0).getId(), equalTo("7")); @@ -263,7 +265,7 @@ public class PercolatorQuerySearchIT extends ESSingleNodeTestCase { .must(matchQuery("field2", "value")) ).endObject()).get(); - client().prepareIndex("test", "type", "1").setSource("{}").get(); + client().prepareIndex("test", "type", "1").setSource("{}", XContentType.JSON).get(); client().prepareIndex("test", "type", "2").setSource("field1", "value").get(); client().prepareIndex("test", "type", "3").setSource("field1", "value", "field2", "value").get(); client().admin().indices().prepareRefresh().get(); @@ -305,7 +307,7 @@ public class PercolatorQuerySearchIT extends ESSingleNodeTestCase { .setSource(jsonBuilder().startObject().field("query", matchAllQuery()).endObject()) .get(); - client().prepareIndex("test", "type", "1").setSource("{}").get(); + client().prepareIndex("test", "type", "1").setSource("{}", XContentType.JSON).get(); client().admin().indices().prepareRefresh().get(); logger.info("percolating empty doc with source disabled"); @@ -376,7 +378,7 @@ public class PercolatorQuerySearchIT extends ESSingleNodeTestCase { .field("field2", "the quick brown fox falls down into the well") .endObject().bytes(); SearchResponse response = client().prepareSearch() - .setQuery(new PercolateQueryBuilder("query", "type", source)) + .setQuery(new PercolateQueryBuilder("query", "type", source, XContentType.JSON)) .addSort("_uid", SortOrder.ASC) .get(); assertHitCount(response, 4); @@ -423,7 +425,7 @@ public class PercolatorQuerySearchIT extends ESSingleNodeTestCase { .field("field1", "The quick brown fox jumps over the lazy dog") .endObject().bytes(); SearchResponse searchResponse = client().prepareSearch() - .setQuery(new PercolateQueryBuilder("query", "type", document)) + .setQuery(new PercolateQueryBuilder("query", "type", document, XContentType.JSON)) .highlighter(new HighlightBuilder().field("field1")) .addSort("_uid", SortOrder.ASC) .get(); @@ -457,7 +459,7 @@ public class PercolatorQuerySearchIT extends ESSingleNodeTestCase { client().admin().indices().prepareRefresh().get(); SearchResponse response = client().prepareSearch().setQuery( - new PercolateQueryBuilder("query", "type", new BytesArray("{\"field\" : [\"brown\", \"fox\"]}")) + new PercolateQueryBuilder("query", "type", new BytesArray("{\"field\" : [\"brown\", \"fox\"]}"), XContentType.JSON) ).get(); assertHitCount(response, 1); assertThat(response.getHits().getAt(0).getId(), equalTo("2")); @@ -517,7 +519,7 @@ public class PercolatorQuerySearchIT extends ESSingleNodeTestCase { BytesReference source = jsonBuilder().startObject().field("field", "value").endObject().bytes(); SearchResponse response = client().prepareSearch() - .setQuery(new PercolateQueryBuilder(queryFieldName, "doc_type", source)) + .setQuery(new PercolateQueryBuilder(queryFieldName, "doc_type", source, XContentType.JSON)) .setIndices("test1") .get(); assertHitCount(response, 1); @@ -526,7 +528,7 @@ public class PercolatorQuerySearchIT extends ESSingleNodeTestCase { assertThat(response.getHits().getAt(0).index(), equalTo("test1")); response = client().prepareSearch() - .setQuery(new PercolateQueryBuilder("object_field." + queryFieldName, "doc_type", source)) + .setQuery(new PercolateQueryBuilder("object_field." + queryFieldName, "doc_type", source, XContentType.JSON)) .setIndices("test2") .get(); assertHitCount(response, 1); @@ -576,7 +578,7 @@ public class PercolatorQuerySearchIT extends ESSingleNodeTestCase { .startObject().field("name", "virginia potts").endObject() .startObject().field("name", "tony stark").endObject() .endArray() - .endObject().bytes())) + .endObject().bytes(), XContentType.JSON)) .addSort("_doc", SortOrder.ASC) .get(); assertHitCount(response, 1); @@ -590,14 +592,15 @@ public class PercolatorQuerySearchIT extends ESSingleNodeTestCase { .startObject().field("name", "virginia stark").endObject() .startObject().field("name", "tony stark").endObject() .endArray() - .endObject().bytes())) + .endObject().bytes(), XContentType.JSON)) .addSort("_doc", SortOrder.ASC) .get(); assertHitCount(response, 0); response = client().prepareSearch() .setQuery(new PercolateQueryBuilder("query", "employee", - XContentFactory.jsonBuilder().startObject().field("companyname", "notstark").endObject().bytes())) + XContentFactory.jsonBuilder().startObject().field("companyname", "notstark").endObject().bytes(), + XContentType.JSON)) .addSort("_doc", SortOrder.ASC) .get(); assertHitCount(response, 0); @@ -632,16 +635,16 @@ public class PercolatorQuerySearchIT extends ESSingleNodeTestCase { MultiSearchResponse response = client().prepareMultiSearch() .add(client().prepareSearch("test") .setQuery(new PercolateQueryBuilder("query", "type", - jsonBuilder().startObject().field("field1", "b").endObject().bytes()))) + jsonBuilder().startObject().field("field1", "b").endObject().bytes(), XContentType.JSON))) .add(client().prepareSearch("test") .setQuery(new PercolateQueryBuilder("query", "type", - yamlBuilder().startObject().field("field1", "c").endObject().bytes()))) + yamlBuilder().startObject().field("field1", "c").endObject().bytes(), XContentType.JSON))) .add(client().prepareSearch("test") .setQuery(new PercolateQueryBuilder("query", "type", - smileBuilder().startObject().field("field1", "b c").endObject().bytes()))) + smileBuilder().startObject().field("field1", "b c").endObject().bytes(), XContentType.JSON))) .add(client().prepareSearch("test") .setQuery(new PercolateQueryBuilder("query", "type", - jsonBuilder().startObject().field("field1", "d").endObject().bytes()))) + jsonBuilder().startObject().field("field1", "d").endObject().bytes(), XContentType.JSON))) .add(client().prepareSearch("test") .setQuery(new PercolateQueryBuilder("query", "type", "test", "type", "1", null, null, null))) .add(client().prepareSearch("test") // non existing doc, so error element |