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 ) );