Hibernate Search修改内容后再索引

cwalet 发布于 2012/04/05 14:53
阅读 2K+
收藏 0
EntityManagerFactory emf = Persistence.createEntityManagerFactory("searchPU");
 EntityManager em = emf.createEntityManager();
 FullTextEntityManager ftem = Search.getFullTextEntityManager(em);
 ftem.getTransaction().begin();
 List<Article> items = em.createQuery("FROM Article").getResultList();
 for (Article a : items) {
 Article a_ = a;
 a_.setContent(a_.getContent().replaceAll("\\s+", ""));
 ftem.index(a_);
 }
 ftem.getTransaction().commit();
 em.close();
 emf.close();

我希望将Article表中的Content字段的内容进行索引(Content中存放的是HTML代码),当然我希望将HTML标签过滤后再索引,但是这样事务提交后过滤后的结果就会保存到数据库,如何实现只索引Content的文本而不改变其在数据库中的值呢?

另外,我是使用注解配置的实体,因此Hibernate会自动加入FullTextIndexEventListener监听器,有没有办法改变这个设置?

加载中
0
happysoul
happysoul

我想找的是价格值范围的搜索~ 顺便回你这个帖子一句吧~

存的时候一份html的 一份去掉格式的 索引的时候仅索引没有html格式的那个字段的

如果觉得数据量大就再建表,把有html的另外存起来,见过几个cms 都是存2份

cwalet
cwalet
你这样做是多余的,不用存去掉格式的,你只需要将索引加在一个transient标注的字段上,然后在其get方法中返回原html数据去格式后的string,这样索引就不会包含html标签了。 至于按范围搜索,你可以参考这里:http://www.oschina.net/question/724344_123752
返回顶部
顶部