Hibernate Search 3.3-忽略IntraWord空格

时间:2011-05-05 10:51:29

标签: hibernate search hibernate-search

我在我的应用程序中使用了hibernate search 3.3。

我的搜索表单包含文本字段,下拉列表,列表框等。我必须搜索单词,数字和日期。基本上是一个多字段搜索。

我的问题是我无法对具有字内空格的单词执行搜索。

例如:列表框有一组允许多选的员工姓名。所以在我的Java层中,我会得到一个数组中的值 - [Ankita Murthy,Ahana Gupta,Archita Patel]
现在,我必须在逗号上分隔这些名称,并将这些名称与数据库中的employee_name列匹配并检索结果。由于内部空格,匹配失败。

我做了一些研究,发现我们可以改变分析仪来实现这一点,但我无法理解。

还指导我改变分析器,使它们忽略大写/小写

1 个答案:

答案 0 :(得分:0)

最好的方法是使用disjunction来制作OR,ilike来避免敏感,而MatchMode.ANYWHERE则用来在数据库的值中任意位置填充值。

您可以尝试使用或不使用MatchMode;但是,它有各种其他类型的开始,结束和精确。

Disjunction dis = Restrictions.disjunction();

dis.add(Restrictions.ilike("employee.name",value1,MatchMode.ANYWHERE);
....
criteria.add(dis);

Check this out