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 ee2cc96e76537eb7678465b9c4c2462d67f74285..9f9ca6641389ba329d229b88cd25b16300d29479 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) {