2018-10 更新:
剛剛把spring data elasticsearch 升級到了3.1.1, 適配Elasticsearch 6.2.2。
spring 也在準(zhǔn)備轉(zhuǎn)向Rest 客戶端做準(zhǔn)備了,不過目前這套架構(gòu)用transport client還能工作辆憔。
之前采用SSH框架咏花,全文檢索實(shí)現(xiàn)從solr到lucene聋亡,最后到elasticsearch汰蓉。沿用hibernate search, 經(jīng)過2年的過度珊佣,前端Spring 逐漸去掉了Struts, 現(xiàn)在又直接去掉了hibernate search, hibernate orm 變成了幕后的JPA底層實(shí)現(xiàn)康铭。
主要原因是hibernate 和jboss捆綁太緊密惯退,而spring boot確實(shí)方便。
這次切換后來總結(jié)下中間遇到的坑吧:
Spring JPA elasticsearch 3.0支持 elasticsearch 5.5 从藤, 不過官網(wǎng)的客戶端例子只提供了elasticsearch java api 的 node client 連接方式催跪,還是采用內(nèi)置elasticsearch 服務(wù)器的方式锁蠕。這肯定不能用于生產(chǎn)系統(tǒng)。所以第一步:從node client 換到 transportclient方式懊蒸,連接到elasticsearch荣倾。
可能是我elasticsearch不熟,這個坑有點(diǎn)大骑丸。
1舌仍, transportclient 不支持xpack,連接錯誤也不提示是xpack拒絕通危。
2铸豁,elasticsearch 5.5 的docker鏡像 默認(rèn)帶 xpack, 使用參數(shù)xpack.security.enabled = false 居然不生效!
3菊碟, bin/elasticsearch-plugin remove x-pack 能卸載xpack推姻, 卸載后要重啟,重啟后還有一堆參數(shù)等著調(diào)整框沟。所以到elasticsearch 6 之后提供了額外的卸載命令藏古。可是Spring JPA目前最高支持elasticsearch 5.6.8.
最后只好到處找到一個不帶xpack的安裝包忍燥,終于一切暢通了拧晕,開始享受elasticsearchRepository 帶來的便捷,想怎么查就怎么查梅垄!