关于中文的全文检索,
http://blog.youkuaiyun.com/qq_33663251/article/details/69612619 写的算是比较完整的,但是具体实现的时候,会有一些问题要解决。
- mysql语句
这里的搜索,使用的是sql语句,不支持hql。如果使用hibernate实体控制的话,需要做些修改
createQuery()==>createSQLQuery
(返回的实体,在还需增加.addEntity(clazz) 这里的clazz指具体的实体类 )
还有就是关于搜索条数的返回
hql语句返回的是Long类型,而sql语句返回是BigDecimal
这是hql
Long l = getSession().createQuery("select count(*) from Requirement r where r.reStatus!=2 ").uniqueResult();
return l
这是sql,稍微转换一下就好了
BigInteger bi =(BigInteger)(getSession().createSQLQuery("select count(*) from datum d where MATCH (datum_name) AGAINST ('"+searchText+"' IN NATURAL LANGUAGE MODE) ").uniqueResult());
Long l=bi.longValue();
return l;