Skip to content

Commit 22077d1

Browse files
committed
move regex to use Object as paramater as well
1 parent f8a08a4 commit 22077d1

5 files changed

Lines changed: 23 additions & 21 deletions

File tree

src/main/java/org/elasticsearch/index/mapper/FieldMapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,9 +183,9 @@ public Term createIndexNameTerm(BytesRef value) {
183183

184184
Filter prefixFilter(Object value, @Nullable QueryParseContext context);
185185

186-
Query regexpQuery(String value, int flags, @Nullable MultiTermQuery.RewriteMethod method, @Nullable QueryParseContext context);
186+
Query regexpQuery(Object value, int flags, @Nullable MultiTermQuery.RewriteMethod method, @Nullable QueryParseContext context);
187187

188-
Filter regexpFilter(String value, int flags, @Nullable QueryParseContext parseContext);
188+
Filter regexpFilter(Object value, int flags, @Nullable QueryParseContext parseContext);
189189

190190
/**
191191
* A term query to use when parsing a query string. Can return <tt>null</tt>.

src/main/java/org/elasticsearch/index/mapper/core/AbstractFieldMapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@ public Filter prefixFilter(Object value, @Nullable QueryParseContext context) {
462462
}
463463

464464
@Override
465-
public Query regexpQuery(String value, int flags, @Nullable MultiTermQuery.RewriteMethod method, @Nullable QueryParseContext context) {
465+
public Query regexpQuery(Object value, int flags, @Nullable MultiTermQuery.RewriteMethod method, @Nullable QueryParseContext context) {
466466
RegexpQuery query = new RegexpQuery(names().createIndexNameTerm(indexedValueForSearch(value)), flags);
467467
if (method != null) {
468468
query.setRewriteMethod(method);
@@ -471,7 +471,7 @@ public Query regexpQuery(String value, int flags, @Nullable MultiTermQuery.Rewri
471471
}
472472

473473
@Override
474-
public Filter regexpFilter(String value, int flags, @Nullable QueryParseContext parseContext) {
474+
public Filter regexpFilter(Object value, int flags, @Nullable QueryParseContext parseContext) {
475475
return new RegexpFilter(names().createIndexNameTerm(indexedValueForSearch(value)), flags);
476476
}
477477

src/main/java/org/elasticsearch/index/mapper/internal/IdFieldMapper.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -225,21 +225,21 @@ public Filter prefixFilter(Object value, @Nullable QueryParseContext context) {
225225
}
226226

227227
@Override
228-
public Query regexpQuery(String value, int flags, @Nullable MultiTermQuery.RewriteMethod method, @Nullable QueryParseContext context) {
228+
public Query regexpQuery(Object value, int flags, @Nullable MultiTermQuery.RewriteMethod method, @Nullable QueryParseContext context) {
229229
if (fieldType.indexed() || context == null) {
230230
return super.regexpQuery(value, flags, method, context);
231231
}
232232
Collection<String> queryTypes = context.queryTypes();
233233
if (queryTypes.size() == 1) {
234-
RegexpQuery regexpQuery = new RegexpQuery(new Term(UidFieldMapper.NAME, Uid.createUidAsBytes(Iterables.getFirst(queryTypes, null), value)), flags);
234+
RegexpQuery regexpQuery = new RegexpQuery(new Term(UidFieldMapper.NAME, Uid.createUidAsBytes(Iterables.getFirst(queryTypes, null), BytesRefs.toBytesRef(value))), flags);
235235
if (method != null) {
236236
regexpQuery.setRewriteMethod(method);
237237
}
238238
return regexpQuery;
239239
}
240240
BooleanQuery query = new BooleanQuery();
241241
for (String queryType : queryTypes) {
242-
RegexpQuery regexpQuery = new RegexpQuery(new Term(UidFieldMapper.NAME, Uid.createUidAsBytes(queryType, value)), flags);
242+
RegexpQuery regexpQuery = new RegexpQuery(new Term(UidFieldMapper.NAME, Uid.createUidAsBytes(queryType, BytesRefs.toBytesRef(value))), flags);
243243
if (method != null) {
244244
regexpQuery.setRewriteMethod(method);
245245
}
@@ -248,17 +248,17 @@ public Query regexpQuery(String value, int flags, @Nullable MultiTermQuery.Rewri
248248
return query;
249249
}
250250

251-
public Filter regexpFilter(String value, int flags, @Nullable QueryParseContext context) {
251+
public Filter regexpFilter(Object value, int flags, @Nullable QueryParseContext context) {
252252
if (fieldType.indexed() || context == null) {
253253
return super.regexpFilter(value, flags, context);
254254
}
255255
Collection<String> queryTypes = context.queryTypes();
256256
if (queryTypes.size() == 1) {
257-
return new RegexpFilter(new Term(UidFieldMapper.NAME, Uid.createUidAsBytes(Iterables.getFirst(queryTypes, null), value)), flags);
257+
return new RegexpFilter(new Term(UidFieldMapper.NAME, Uid.createUidAsBytes(Iterables.getFirst(queryTypes, null), BytesRefs.toBytesRef(value))), flags);
258258
}
259259
XBooleanFilter filter = new XBooleanFilter();
260260
for (String queryType : queryTypes) {
261-
filter.add(new RegexpFilter(new Term(UidFieldMapper.NAME, Uid.createUidAsBytes(queryType, value)), flags), BooleanClause.Occur.SHOULD);
261+
filter.add(new RegexpFilter(new Term(UidFieldMapper.NAME, Uid.createUidAsBytes(queryType, BytesRefs.toBytesRef(value))), flags), BooleanClause.Occur.SHOULD);
262262
}
263263
return filter;
264264
}

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

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.apache.lucene.index.Term;
2323
import org.apache.lucene.search.Filter;
2424
import org.elasticsearch.common.inject.Inject;
25+
import org.elasticsearch.common.lucene.BytesRefs;
2526
import org.elasticsearch.common.lucene.search.RegexpFilter;
2627
import org.elasticsearch.common.xcontent.XContentParser;
2728
import org.elasticsearch.index.cache.filter.support.CacheKeyFilter;
@@ -44,7 +45,7 @@ public RegexpFilterParser() {
4445

4546
@Override
4647
public String[] names() {
47-
return new String[]{ NAME };
48+
return new String[]{NAME};
4849
}
4950

5051
@Override
@@ -55,8 +56,8 @@ public Filter parse(QueryParseContext parseContext) throws IOException, QueryPar
5556
CacheKeyFilter.Key cacheKey = null;
5657
String fieldName = null;
5758
String secondaryFieldName = null;
58-
String value = null;
59-
String secondaryValue = null;
59+
Object value = null;
60+
Object secondaryValue = null;
6061
int flagsValue = -1;
6162

6263
String filterName = null;
@@ -72,7 +73,7 @@ public Filter parse(QueryParseContext parseContext) throws IOException, QueryPar
7273
currentFieldName = parser.currentName();
7374
} else {
7475
if ("value".equals(currentFieldName)) {
75-
value = parser.text();
76+
value = parser.objectBytes();
7677
} else if ("flags".equals(currentFieldName)) {
7778
String flags = parser.textOrNull();
7879
flagsValue = RegexpFlag.resolveValue(flags);
@@ -92,7 +93,7 @@ public Filter parse(QueryParseContext parseContext) throws IOException, QueryPar
9293
cacheKey = new CacheKeyFilter.Key(parser.text());
9394
} else {
9495
secondaryFieldName = currentFieldName;
95-
secondaryValue = parser.text();
96+
secondaryValue = parser.objectBytes();
9697
}
9798
}
9899
}
@@ -122,7 +123,7 @@ public Filter parse(QueryParseContext parseContext) throws IOException, QueryPar
122123
}
123124
}
124125
if (filter == null) {
125-
filter = new RegexpFilter(new Term(fieldName, value), flagsValue);
126+
filter = new RegexpFilter(new Term(fieldName, BytesRefs.toBytesRef(value)), flagsValue);
126127
}
127128

128129
if (cache) {

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

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.apache.lucene.search.RegexpQuery;
2626
import org.apache.lucene.util.automaton.RegExp;
2727
import org.elasticsearch.common.inject.Inject;
28+
import org.elasticsearch.common.lucene.BytesRefs;
2829
import org.elasticsearch.common.xcontent.XContentParser;
2930
import org.elasticsearch.index.mapper.MapperService;
3031
import org.elasticsearch.index.query.support.QueryParsers;
@@ -46,7 +47,7 @@ public RegexpQueryParser() {
4647

4748
@Override
4849
public String[] names() {
49-
return new String[]{ NAME };
50+
return new String[]{NAME};
5051
}
5152

5253
@Override
@@ -60,7 +61,7 @@ public Query parse(QueryParseContext parseContext) throws IOException, QueryPars
6061
String fieldName = parser.currentName();
6162
String rewriteMethod = null;
6263

63-
String value = null;
64+
Object value = null;
6465
float boost = 1.0f;
6566
int flagsValue = -1;
6667
token = parser.nextToken();
@@ -71,7 +72,7 @@ public Query parse(QueryParseContext parseContext) throws IOException, QueryPars
7172
currentFieldName = parser.currentName();
7273
} else if (token.isValue()) {
7374
if ("value".equals(currentFieldName)) {
74-
value = parser.text();
75+
value = parser.objectBytes();
7576
} else if ("boost".equals(currentFieldName)) {
7677
boost = parser.floatValue();
7778
} else if ("rewrite".equals(currentFieldName)) {
@@ -91,7 +92,7 @@ public Query parse(QueryParseContext parseContext) throws IOException, QueryPars
9192
}
9293
parser.nextToken();
9394
} else {
94-
value = parser.text();
95+
value = parser.objectBytes();
9596
parser.nextToken();
9697
}
9798

@@ -116,7 +117,7 @@ public Query parse(QueryParseContext parseContext) throws IOException, QueryPars
116117
}
117118
}
118119
if (query == null) {
119-
RegexpQuery regexpQuery = new RegexpQuery(new Term(fieldName, value), flagsValue);
120+
RegexpQuery regexpQuery = new RegexpQuery(new Term(fieldName, BytesRefs.toBytesRef(value)), flagsValue);
120121
if (method != null) {
121122
regexpQuery.setRewriteMethod(method);
122123
}

0 commit comments

Comments
 (0)