Skip to content

Commit f8625b4

Browse files
author
Christoph Büscher
committed
Revert changes in Parser, now using objectBytes() again. Instead use ByteRefs comparison in equals()
1 parent 3799b9f commit f8625b4

File tree

3 files changed

+22
-10
lines changed

3 files changed

+22
-10
lines changed

src/main/java/org/elasticsearch/index/query/TermQueryBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ public void writeTo(StreamOutput out) throws IOException {
233233

234234
@Override
235235
public int hashCode() {
236-
return Objects.hash(fieldName, value, boost, queryName);
236+
return Objects.hash(fieldName, BytesRefs.toBytesRef(value), boost, queryName);
237237
}
238238

239239
@Override
@@ -246,7 +246,7 @@ public boolean equals(Object obj) {
246246
}
247247
TermQueryBuilder other = (TermQueryBuilder) obj;
248248
return Objects.equals(fieldName, other.fieldName) &&
249-
Objects.equals(value, other.value) &&
249+
Objects.equals(BytesRefs.toBytesRef(value), BytesRefs.toBytesRef(other.value)) &&
250250
Objects.equals(boost, other.boost) &&
251251
Objects.equals(queryName, other.queryName);
252252
}

src/main/java/org/elasticsearch/index/query/TermQueryParser.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,9 @@ public QueryBuilder fromXContent(QueryParseContext parseContext) throws IOExcept
6060
currentFieldName = parser.currentName();
6161
} else {
6262
if ("term".equals(currentFieldName)) {
63-
value = parser.objectText();
63+
value = parser.objectBytes();
6464
} else if ("value".equals(currentFieldName)) {
65-
value = parser.objectText();
65+
value = parser.objectBytes();
6666
} else if ("boost".equals(currentFieldName)) {
6767
boost = parser.floatValue();
6868
} else if ("_name".equals(currentFieldName)) {
@@ -74,7 +74,7 @@ public QueryBuilder fromXContent(QueryParseContext parseContext) throws IOExcept
7474
}
7575
parser.nextToken();
7676
} else {
77-
value = parser.objectText();
77+
value = parser.text();
7878
// move to the next token
7979
parser.nextToken();
8080
}

src/test/java/org/elasticsearch/index/query/TermQueryBuilderTest.java

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,26 @@ protected TermQueryBuilder createEmptyQueryBuilder() {
4343
/**
4444
* @return a TermQuery with random field name and value, optional random boost and queryname
4545
*/
46-
4746
protected TermQueryBuilder createTestQueryBuilder() {
4847
Object value = null;
4948
switch (randomIntBetween(0, 3)) {
50-
case 0: value = randomBoolean(); break;
51-
case 1: value = randomAsciiOfLength(8); break;
52-
case 2: value = randomInt(10000); break;
53-
case 3: value = randomDouble(); break;
49+
case 0:
50+
value = randomBoolean();
51+
break;
52+
case 1:
53+
if (randomInt(10) > 0) {
54+
value = randomAsciiOfLength(8);
55+
} else {
56+
// generate unicode string in 10% of cases
57+
value = randomUnicodeOfLength(10);
58+
}
59+
break;
60+
case 2:
61+
value = randomInt(10000);
62+
break;
63+
case 3:
64+
value = randomDouble();
65+
break;
5466
}
5567
TermQueryBuilder query = new TermQueryBuilder(randomAsciiOfLength(8), value);
5668
if (randomBoolean()) {

0 commit comments

Comments
 (0)