如今在一些中大型網站中,搜索引擎已是必不可少的內容了。首先我們看看搜索引擎到底是什么呢?搜索引擎,就是根據用戶需求與一定算法,運用特定策略從互聯網檢索出制定信息反饋給用戶的一門檢索技術。搜索引擎依托於多種技術,如網絡爬蟲技術、檢索排序技術、網頁處理技術、大數據處理技術、自然語言處理技術等,為信息檢索用戶提供快速、高相關性的信息服務。搜索引擎技術的核心模塊一般包括爬蟲、索引、檢索和排序等,同時可添加其他一系列輔助模塊,以為用戶創造更好的網絡使用環境。

基於Java的搜索引擎框架,目前市面上很多。如:Lucene、Nutch、Solandra、Solr、ElasticSearch、Compass等,這里具體不一一對比討論。今天主要說的是ElasticSearch搜索引擎的實現。

ElasticSearch接入實現
ElasticSearch簡稱es,它是一款基於Lucene框架的分布式搜索引擎,也是一個高度可擴展的開源全文搜索和分析引擎,可以快速的、近實時地對大數據進行存儲、搜索和分析,用來支撐復雜的數據搜索需求和企業級應用。並且也是一款為數不多的基於JSON進行索引的搜索引擎。它特別適合在雲計算平台上使用。
一、ElasticSearch的安裝
我們先進入Linux服務器,然后在/usr/local/下創建elasticsearch,命令如下:
cd /usr/local/
然后進入elasticsearch目錄,下載es。
cd elasticsearch
解壓es
tar -zxvf elasticsearch-6.8.1.tar.gz
修改配置文件:
vim elasticsearch-6.8.1/config/elasticsearch.yml
##修改內容
修改/etc/sysctl.conf
vim /etc/sysctl.conf
使用非root賬號啟動es服務
cd elasticsearch-6.8.1
測試:

二、ElasticSearch接入實現
pom文件,版本號:2.1.4.RELEASE
<!-- 版本號 -->
application.properties配置
##ES
ES的泛型實體,具體根據自己的業務和所需字段定義

ElasticsearchRepository類
package com.lyn.web.elastic;
啟動類添加如下代碼,解決與Netty沖突異常。
System.setProperty("es.set.netty.runtime.available.processors", "false");

ES同步及查詢接口

啟動項目,測試結果:
項目啟動成功后先執行save接口,同步數據庫數據到es。然后調用search接口查詢。

此刻,Springboot集成ElasticSearch的索引接入已經完成。代碼也已同步上傳到github,有需要的小伙伴可根據下面獲取方式獲取源碼。
掃碼關注公眾號,發送關鍵詞獲取相關資料:
- 發送“Springboot”領取電商項目實戰源碼;
- 發送“SpringCloud”領取cloud學習實戰資料;
