From ffaa66208a7779db079038440792b452c039a59c Mon Sep 17 00:00:00 2001
From: anttil <anttil>
Date: Fri, 5 Feb 2016 09:06:40 +0000
Subject: [PATCH] SSDM-3147: improved regexp for matching

SVN: 35636
---
 .../generic/server/dataaccess/db/HibernateSearchDAO.java      | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/HibernateSearchDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/HibernateSearchDAO.java
index ee2cc96e765..9f9ca664138 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/HibernateSearchDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/HibernateSearchDAO.java
@@ -377,7 +377,7 @@ final class HibernateSearchDAO extends HibernateDaoSupport implements IHibernate
 
                             if (useWildcardSearchMode)
                             {
-                                Pattern pattern = Pattern.compile("(?s)" + q.toLowerCase().replace("*", ".*").replace("?", ".?"));
+                                Pattern pattern = Pattern.compile("(?s)(^|\\s)" + q.toLowerCase().replace("*", ".*").replace("?", ".?") + "($|\\s)");
                                 Matcher matcher = pattern.matcher(content[i].toLowerCase());
 
                                 while (matcher.find())
@@ -488,7 +488,7 @@ final class HibernateSearchDAO extends HibernateDaoSupport implements IHibernate
                     boolean fullmatch = (start == 0 || !StringUtils.isAlphanumeric(text.substring(start - 1, start))) &&
                             (end == text.length() || !StringUtils.isAlphanumeric(text.substring(end, end + 1))) &&
                             !wildcard; // full/partial matching not relevant for wildcard mode
-                    if (field.equals("Perm ID") || field.equals("Identifier") || field.equals("Code"))
+                    if (field.equals("Perm ID") || field.equals("Code"))
                     {
                         if (fullmatch)
                         {
-- 
GitLab