摘要: MonitoringHibernate Search通过SearchFactory.getStatistics()提供了到Statistics对象的访问。通过Statistics对象,你可以得到一些有用的信息,如:哪些类被索引了或index中有多少个实体类。然而,通过指定hibernate.search.generate_statistics属性,你还可以收集Lucene query的总数或平均数,对象加载时间等。8.1. JMX你也可以通过JMX访问statistics。设置属性hibernate.search.jmx_enabled,便会自动地注册StatisticsInfoMBean。依 阅读全文
posted @ 2013-04-30 15:36 眉间尺之魂 阅读(216) 评论(0) 推荐(0) 编辑
摘要: Index Optimization随着时间推移,Lucene index需要经过优化。这个过程实际上是文件的合并。在优化操作触发之前,Lucene文档删除操作只是标志删除的文档,并不会从物理上删除文档。在优化过程中,将会应用删除操作,也会影响Lucene Directory中文件的数量。优化Lucene index可以提高搜索的速度,但对于更新操作是毫无效果的。在优化过程中,也可以进行搜索操作,但会显得有些慢。所有的index更新操作会被停止。它推荐schedule optimization:在一个空闲的系统中或当搜索不频繁时。在大量index修改后当使用MassIndexer(see Se 阅读全文
posted @ 2013-04-30 15:35 眉间尺之魂 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 当Hibernate core应用实体类的改变到数据库,Hibernate Search也会自动地探测这些改变并更新index(除非禁用事件监听器)。有时候并不是通过Hibernate来修改数据库的数据,像当还原数据库的备份或数据是不同的方式生成的。对于这样的用例,Hibernate Search暴露了Manual Index API来明确地更新,删除index中的单一实体,或重建整个数据库的index,或删除某个指定类型的所有引用。所有的这些方法只影响 Lucene Index,并不会修改数据库。6.1. Adding instances to the index使用FullTextSess 阅读全文
posted @ 2013-04-30 15:34 眉间尺之魂 阅读(507) 评论(0) 推荐(0) 编辑
摘要: Hibernate Search的第二个很重要的能力是运行Lucene queries并通过Hibernate session获得受管理的实体。search在提供了Lucene强大的功能之外还保持着Hibernate的编程模式(给Hibernate典型的search机制提供另外的dimension:HQL,Criteria query,native SQL query)预备和运行一个query由4个步骤组成:创建一个FullTextSession通过Hibernate Search query DSL(推荐的)或Lucene query API创建一个Lucene query。使用org.hi 阅读全文
posted @ 2013-04-30 15:33 眉间尺之魂 阅读(804) 评论(0) 推荐(0) 编辑
摘要: Mapping entities to the index structure 4.1. 映射一个实体(Mapping an entity)在第一章中,你已经知道了建立实体索引的所有元信息是通过注解描述的,所以不需要xml的映射文件。但是你依然可以使用Hibernate的映射文件来配置基本的Hibernate映射,但Hibernate Search的配置只能通过注解来表达。4.1.1.基本映射(Basic mapping)我们先介绍最常使用的注解。4.1.1.1. @Indexed首先,我们必须要声明一个持久化类是可索引的。这可以由注解@Indexed来注明,所有没有@Indexed的实体将忽 阅读全文
posted @ 2013-04-30 15:31 眉间尺之魂 阅读(488) 评论(0) 推荐(0) 编辑
摘要: Configuration3.1激活Hiberate Search与自动indexing功能3.1.1激活Hibernate SearchHibernate Core会自动探测是否应用激活Hibernate Search。如果想禁用Hibernate Search,把hibernate.search.autoregister_listeners配置为false。当然,即使hibernate.search.autoregister_listeners配置为true,但是没有任何一个实体被注解为@Indexed,Hibernate Search也不会运行任何东西。3.1.2激活自动indexing 阅读全文
posted @ 2013-04-30 15:23 眉间尺之魂 阅读(661) 评论(0) 推荐(0) 编辑
摘要: Archetype2.1概述Hibernate Search由建立索引和索引搜索两个组件组成,并且都是基于Apache Lucene。每次一个实体从数据库中被插入,更新或移除,Hibernate Search会跟踪这些事件并维护index的更新。所有index更新工作都会由Hibernate Search完成而不需要你去使用Lucene API。为了与Lucene的index交互,Hibernate Search有一个DirectoryProvider的概念。DirectoryProvider会管理Lucene中的Directory类型。你可以配置DirectoryProvider来调整Dir 阅读全文
posted @ 2013-04-30 15:17 眉间尺之魂 阅读(264) 评论(0) 推荐(0) 编辑
摘要: Getting Start1.1系统配置要求java runtimeJDK或JRE5以上版本Hibernate Search hibernate-search-3.4.0.Final.jar及其所需依赖。可通过Jboss Maven仓库下载(http://repository.jboss.org/nexus/content/groups/public-jboss/ )Hibernate Core 3.4版本的Hibernate Search与3.6版本的Hibernate Core测试良好JPA2 虽然Hinbernate Search没有用到JPA,但Hibernate的持久化必须要用到JP 阅读全文
posted @ 2013-04-30 15:14 眉间尺之魂 阅读(369) 评论(0) 推荐(0) 编辑