From a9fbc27c6e71e0c37296f16126c366696a5f0aa4 Mon Sep 17 00:00:00 2001
From: buczekp <buczekp>
Date: Fri, 8 Oct 2010 07:54:59 +0000
Subject: [PATCH] [LMS-1829] always use non wildcard mode if search term
 contains '*'

SVN: 18217
---
 .../server/dataaccess/db/search/LuceneQueryBuilder.java   | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/search/LuceneQueryBuilder.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/search/LuceneQueryBuilder.java
index 8dc1ded3a50..64459ba08eb 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/search/LuceneQueryBuilder.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/search/LuceneQueryBuilder.java
@@ -78,8 +78,12 @@ public class LuceneQueryBuilder
                 (useWildcardSearchMode == true) ? CHARS_ESCAPED_IN_WILCARD_MODE
                         : CHARS_ESCAPED_IN_BASIC_MODE;
         String result = escapeQuery(userQuery, escapedChars);
-        // add '*' wildcard at the beginning and at the end of the query in basic search mode
-        if (useWildcardSearchMode == false && isQuoted(result) == false)
+        // add '*' wildcard at the beginning and at the end of the query if all conditions are met:
+        // 1. in basic search mode
+        // 2. query is not in quotes
+        // 3. query doesn't contain '*'
+        if (useWildcardSearchMode == false && isQuoted(result) == false
+                && result.contains("*") == false)
         {
             result = addWildcards(result);
         }
-- 
GitLab