2013-10-07 52 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整合。謝謝! –