Elastic Search 搜索引擎在 SpringBoot 中的實踐
實驗環境
ES版本:5.3.0
spring bt版本:1.5.9
首先當然需要安裝好elastic search環境,最好再安裝上可視化插件 elasticsearch-head來便於我們直觀地查看數據。
當然這部分可以參考本人的帖子: 《centos7上elastic search安裝填坑記》https://www.jianshu.com/p/04f4d7b4a1d3
我的ES安裝在http://113.209.119.170:9200/這個地址(該地址需要配到springboot項目中去)
Spring工程創建
這部分沒有特殊要交代的,但有幾個注意點一定要當心
注意在新建項目時記得勾選web和NoSQL中的Elasticsearch依賴,來張圖說明一下吧:
項目自動生成以後pom.xml中會自動添加spring-boot-starter-data-elasticsearch的依賴:
本項目中我們使用開源的基於restful的es java客戶端jest,所以還需要在pom.xml中添加jest依賴:
除此之外還必須添加jna的依賴:
否則啟動spring項目的時候會報JNA not found. native methods will be disabled.的錯誤:
項目的配置文件application.yml中需要把es伺服器地址配置對
代碼組織
我的項目代碼組織如下:
各部分代碼詳解如下,注釋都有:
Entity.java
TestService.java
TestServiceImpl.java
EntityController.java
實際實驗
增加幾條數據,可以使用postman工具,也可以直接在瀏覽器中輸入,如增加以下5條數據:
數據插入效果如下(使用可視化插件elasticsearch-head觀看):
我們來做一下搜索的測試:例如我要搜索關鍵字「南京」 我們在瀏覽器中輸入:
搜索結果如下:
剛才插入的5條記錄中包含關鍵字「南京」的四條記錄均被搜索出來了!
當然這裡用的是standard分詞方式,將每個中文都作為了一個term,凡是包含「南」、「京」關鍵字的記錄都被搜索了出來,只是評分不同而已,當然還有其他的一些分詞方式,此時需要其他分詞插件的支持,此處暫不涉及,後文中再做探索。
TAG:開源中國 |