summaryrefslogtreecommitdiff
path: root/modules/percolator
diff options
context:
space:
mode:
Diffstat (limited to 'modules/percolator')
-rw-r--r--modules/percolator/src/main/java/org/elasticsearch/percolator/PercolateQueryBuilder.java37
-rw-r--r--modules/percolator/src/test/java/org/elasticsearch/percolator/PercolateQueryBuilderTests.java40
-rw-r--r--modules/percolator/src/test/java/org/elasticsearch/percolator/PercolatorFieldMapperTests.java4
-rw-r--r--modules/percolator/src/test/java/org/elasticsearch/percolator/PercolatorQuerySearchIT.java51
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