2015-09-26 137 views
0

我試圖在我的項目中添加彈性搜索。我使用hibernate作爲ORM來訪問我的數據。我想索引我的一些實體到elasticsearch集羣。elasticsearch,spring-data和hibernate

要做到這一點,我有想法使用我現有的hibernate實體類,並添加除休眠類之外的spring-data-elasticsearch註釋。

我對這個選擇並不完全有信心,我不知道它是否有一些設計錯誤(註釋之間可能存在衝突?)。

舉例來說,我已經把2 Id註解:"@javax.persistence.Id「爲hibernate和」 @org.springframework.data.annotation.Id「彈性搜索

預先感謝您的輸入

回答

0

我成功配置和測試我的想法。我發現ES索引器包括類的每一個字段,不僅包括「彈性搜索註釋」

更重要的是,spring-data-elasticsearch並不是有用的我認爲這是因爲ES ind exer使用JPA註釋,並且我的課程的每個領域已經有了它自己的休眠...

總之,我要爲db存儲做一個類,而另一個用較少的信息做我的ES索引。

0

您可以同時使用Spring Data JPA和SPring Data Elasticsearch。使用此配置:

@Configuration 
@EnableTransactionManagement 
@EnableJpaRepositories(excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = ElasticsearchCrudRepository.class)) 
@EnableElasticsearchRepositories(includeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = ElasticsearchCrudRepository.class)) 
public class DataConfiguration { 
    ... 
}