1 使用hibernate search 时,当你的字段加入了索引,而进行搜索的时候去没搜索出来,那可能是你在实体字体里使用的分词器和作为搜索时使用的分词器不同所造成的,这个要注意一致性。还有一个就是就是可能你分词的时候将词变成乱码,
即由于对中文支持不好造成的,这个也会导致搜索的时候没找出来。
2 使用hibernate search 多字段查询可以如下方式:
StandardAnalyzer analyzer = new StandardAnalyzer();
MultiFieldQueryParser parser = new MultiFieldQueryParser(//这个是用户输入的的搜索串在下面的field里进行搜索
new String[] { "title","description","post_user_username" }, analyzer);
parser.setDefaultOperator(QueryParser.OR_OPERATOR);
BooleanQuery query = new BooleanQuery();
query.add(parser.parse(content),BooleanClause.Occur.MUST);
QueryParser parser2=new QueryParser("post_obj_objectID",analyzer);//从指定的ID里搜索,也就是首先在满足这个条件,再去搜索用户输入的查询串
query.add(parser2.parse(objectPK) , BooleanClause.Occur.MUST);
Query hibQuery = fullTextSession.createFullTextQuery(query,Posts.class);
使用MultiFieldQueryParser类来复合查询域,里面指定要搜索的field,这里是从"title","description",
"post_user_username"三个域里进行搜索,其中,post_user_username这个是在待搜索的实体Posts类里关联的
实体的一个索引域,也就是在Post实体里加入了@IndexedEmbedded(prefix="post_user_", depth=1)注解在关联
的实体(User user;)上,使得,可以从Post里去查询出它的user,那么只要在User实体里一个属性上面加入如下:
@Field(name = "username", index = Index.UN_TOKENIZED, store = Store.YES)形式的信息,便可完成跨
实体的查询。
3 使用FullTextQuery可以返回结果集,如下:
org.hibernate.search.FullTextQuery = hibQueryfullTextSession.createFullTextQuery(luceneQuery,Question.class);
int count = hibQuery.getResultSize();
这样就可以不用先获取一个list所有的对象信息后再求它的size,这样速度会快很多,因为不用对大量对象进行从数据库到的封装。
注:自己是在原来项目里接手做的,由于原来的项目里用的lucene版本比较低(用的是lucene2.4.1,hibernate search是3.1.1),所以有些方法和现在高版本的方法不同。
分享到:
相关推荐
hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记
Hibernate学习笔记 Hibernate学习笔记 Hibernate学习笔记 Hibernate学习笔记
hibernate个人学习笔记完整版 hibernate个人学习笔记完整版
Hibernate学习笔记_特别详细 Hibernate学习笔记_特别详细
Hibernate学习笔记Hibernate学习笔记Hibernate学习笔记Hibernate学习笔记
hibernate的学习笔记,hibernate所以知识点全,一看就能上手........包含代码和书写格式和图片分析~~~~hibernate的学习笔记,hibernate所以知识点全,一看就能上手........包含代码和书写格式和图片分析~~~~...
Hibernate3 学习笔记.ppt 一、O/R Mapping 二、Hibernate入门 三、Hibernate映射申明(Mapping declaration) 四、Hibernate Annotations 五、持久化对象的状态和生命周期 六、Hibernate查询 七、Hibernate最佳实践 ...
学习hibernate框架时,整理的笔记,对hibernate框架有全面的介绍
Hibernate_学习笔记.Hibernate_学习笔记.
hibernate-学习笔记学习笔记学习笔记学习笔记学习笔记学习笔记学习笔记学习笔记学习笔记学习笔记
Hibernate的学习笔记.docHibernate的学习笔记.docHibernate的学习笔记.docHibernate的学习笔记.docHibernate的学习笔记.docHibernate的学习笔记.docHibernate的学习笔记.docHibernate的学习笔记.docHibernate的学习...
Hibernate的学习笔记,希望对各位有一定的帮助。
Hibernate+学习笔记
Hibernate4学习笔记1
hibernate 学习笔记精要hibernate 学习笔记精要hibernate 学习笔记精要hibernate 学习笔记精要
一步步hibernate annotation练习笔记, 实例操作,从经验中学习
达内HIBERNATE学习笔记,达内HIBERNATE学习笔记,达内HIBERNATE学习笔记,达内HIBERNATE学习笔记,
学习hibernate框架笔记整理和自己对hibernate认知,相互学习
传智博客2016 hibernate框架学习笔记,分为 day01、day02、day03、day04,包含pdf和文档