You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by to...@apache.org on 2015/04/14 16:38:22 UTC
incubator-usergrid git commit: Fixes wildcard search bug
Repository: incubator-usergrid
Updated Branches:
refs/heads/two-dot-o-dev ec8a943f8 -> 9ed116183
Fixes wildcard search bug
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/9ed11618
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/9ed11618
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/9ed11618
Branch: refs/heads/two-dot-o-dev
Commit: 9ed1161831f769582c81f3a3ef745d2993cdd5ed
Parents: ec8a943
Author: Todd Nine <tn...@apigee.com>
Authored: Tue Apr 14 08:37:06 2015 -0600
Committer: Todd Nine <tn...@apigee.com>
Committed: Tue Apr 14 08:37:21 2015 -0600
----------------------------------------------------------------------
.../usergrid/persistence/index/impl/EsQueryVistor.java | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9ed11618/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsQueryVistor.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsQueryVistor.java b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsQueryVistor.java
index 74ffb7c..7b66c0d 100644
--- a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsQueryVistor.java
+++ b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsQueryVistor.java
@@ -363,13 +363,15 @@ public class EsQueryVistor implements QueryVisitor {
//special case so we support our '*' char with wildcard
if ( value instanceof String ) {
- final String svalue = ( String ) value;
+ final String stringValue = (( String ) value).toLowerCase().trim();
// or field is just a string that does need a prefix us a query
- if ( svalue.indexOf( "*" ) != -1 ) {
+ if ( stringValue.contains( "*" ) ) {
+ //Because of our legacy behavior, where we match CCCC*, we need to use the unanalyzed string to ensure that
+ //we start
final WildcardQueryBuilder wildcardQuery =
- QueryBuilders.wildcardQuery( IndexingUtils.FIELD_STRING_NESTED, svalue.toLowerCase() );
+ QueryBuilders.wildcardQuery( IndexingUtils.FIELD_STRING_NESTED_UNANALYZED, stringValue );
queryBuilders.push( fieldNameTerm( name, wildcardQuery ) );
filterBuilders.push( NoOpFilterBuilder.INSTANCE );
return;
@@ -377,7 +379,7 @@ public class EsQueryVistor implements QueryVisitor {
//it's an exact match, use a filter
final TermFilterBuilder termFilter =
- FilterBuilders.termFilter( IndexingUtils.FIELD_STRING_NESTED_UNANALYZED, svalue.toLowerCase() );
+ FilterBuilders.termFilter( IndexingUtils.FIELD_STRING_NESTED_UNANALYZED, stringValue );
queryBuilders.push( NoOpQueryBuilder.INSTANCE );
filterBuilders.push( fieldNameTerm( name, termFilter ) );