2013-10-07 127 views
1

使用JBoss EAP 6.1和Solr 4.5Solrj服务器在EJB容器3

人们如何使用Solr互动(通过Solrj)?大多数人是否创建了一个包装SolrServer实现的托管bean?多少个实例或单例(排队提交等等)?也考虑使用嵌入式服务器,这增加了线程安全性考虑。

有一些远远达到JCA适配器?

回答

1

执行此操作的最佳方法是在JPA图层中使用HibernateSearch。

您需要实现自己的Solr工人后端,你可以在这里找到一个例子:HibernateSearchSolrWorkerBackend

在你的Solr工人后端是在那里你会使用SolrJ和注释后HibernateSearch annotation你的实体会自动交互在每笔交易完成后付款。所以你的所有索引都会保持最新。

你可以看看这整个为例,对如何实现它hibernate_search_solr_integration

在上述项目中,你会发现一个完整的春天例如一个想法。如果你想只使用平面JPA对象,你需要有这样的事情在你的persistence.xml

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.0" 
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> 
    <persistence-unit name="espn-mediacatalog"> 
     <jta-data-source>java:jboss/datasources/your-datasourceDS</jta-data-source> 
    <properties>    


     <property name="hibernate.search.default.worker.backend" value="com.xxx.xxproject.jpa.solr.HibernateSearchSolrWorkerBackend" />   
     <property name="hibernate.search.default.directory_provider" value="org.hibernate.search.store.impl.RAMDirectoryProvider" /> 

    </properties> 
</persistence-unit> 

喝彩!

+0

大提示@delkant。完全忘了Hibernate Search。将看看Solr整合。谢谢! –