Windows服務下的安裝部署:
下載運行ES:
1,官網(wǎng)下載地址:https://www.elastic.co/cn/downloads/elasticsearch
? 注:右側(cè)選擇歷史版本,jdk1.8對應的版本是7.x的。
下載完以后進入bin目錄,輸入elasticsearch回車;或者直接雙擊 elasticsearch.bat 進行啟動。
? 注:請確認環(huán)境變量是否已經(jīng)配置成功
? 注:請確認java版本是否為ES對應版本
啟動以后瀏覽器輸入 http://localhost:9200/ 查看是否啟動成功,如下圖是成功的

2,下載對應版本的ik分詞器:https://github.com/medcl/elasticsearch-analysis-ik/releases
? 注:解壓到 es目錄下的plugins下 命名為ik
3,下載對應版本的Kibana:https://www.elastic.co/guide/en/kibana/current/install.html
Linux服務下的安裝部署:
1,創(chuàng)建網(wǎng)絡,需要es和kibana容器互聯(lián),在同一個網(wǎng)絡(可省略)
docker network create es-net?
2,將es.tar? 和 kibana.tar上傳到服務器,運行命令加載即可:
docker load -i es.tar
docker load -i kibana.tar
3,運行docker命令,部署單點es

======================================================================================================================
docker run -d \
--name es \
? ? -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \? ??????????????????? ?// 設置內(nèi)存大小
? ? -e "discovery.type=single-node" \? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ???// single-node單機模式
? ? -v es-data:/usr/share/elasticsearch/data \
? ? -v es-plugins:/usr/share/elasticsearch/plugins \
? ? --privileged \
? ? --network es-net \? ? ? ? ? ??? ???????????????????????????????????????????????????//?network:處在同一網(wǎng)絡 網(wǎng)絡名
? ? -p 9200:9200 \? ? ? ? ? ? ? ? ? ????????????????????????????????????????????????????? //http://127.0.0.1:9200:客戶訪問端口
? ? -p 9300:9300 \? ? ? ? ? ? ? ? ????????????????????????????????????????????????????? ? //?9300:es容器各個容器互聯(lián)端口
elasticsearch:7.12.1
=======================================================================================================================
命令解釋:
- `-e "cluster.name=es-docker-cluster"`:設置集群名稱
- `-e "http.host=0.0.0.0"`:監(jiān)聽的地址,可以外網(wǎng)訪問
- `-e "ES_JAVA_OPTS=-Xms512m -Xmx512m"`:內(nèi)存大小
- `-e "discovery.type=single-node"`:非集群模式
- `-v es-data:/usr/share/elasticsearch/data`:掛載邏輯卷,綁定es的數(shù)據(jù)目錄
- `-v es-logs:/usr/share/elasticsearch/logs`:掛載邏輯卷,綁定es的日志目錄
- `-v es-plugins:/usr/share/elasticsearch/plugins`:掛載邏輯卷,綁定es的插件目錄
- `--privileged`:授予邏輯卷訪問權(quán)
- `--network es-net` :加入一個名為es-net的網(wǎng)絡中
- `-p 9200:9200`:端口映射配置
=======================================================================================================================
啟動成功:

3,運行docker命令,部署單點kibana

network:同es所處在的同一網(wǎng)絡
ELASTICSEAECH_HOSTS :es的名稱 ,端口
http://127.0.0.1:5601? ? ?:客戶訪問端口
啟動成功:

測試IK分詞器:ik_smart (智能切分,粗粒度)? ?ik_max_word(最細切分,細粒度)
使用命令: docker? volume? inspect es-plugins 找到目錄
將IK分詞器放進去
重啟es : docker restart? es

IK分詞器拓展詞庫,停用詞庫:
修改config文件中的?IKAnalyzer.cfg.xml 文件


在config文件目錄下添加擴展字典,停用字典

4,mapping屬性:詳見? ? ? http://www.itdecent.cn/p/01f489c46c38

實例:

像 tradeType、map 這兩個屬性屬于Object類型,在es中不必特殊指定類型,如下

es中的【nested】類型,特定用在某屬性是數(shù)組類型,而且該屬性在es結(jié)構(gòu)中必須要加上【nested】類型,否在在檢索、聚合時候就會出現(xiàn)報錯或查不到數(shù)據(jù)問題,以下:

es中的結(jié)構(gòu)如下:subjectList 便是數(shù)組類型,并且泛型是包裝類型,在es中都需要指定該字段是【nested】。

非常注意:如果某屬性的泛型是基本類型(比如:List< String >、List< Integer > )那es的類型可不是【nested】,而是keyword或Integer 這種。如下:


準備索引:
通過es控制臺或者postman都可以進行索引操作,類型mysql可視化工具對mysql數(shù)據(jù)庫表結(jié)構(gòu)操作類型,只不過,es對于創(chuàng)建后的索引的字段類型不可改變,如果一定要變更字段類型,就需要刪除索引重新創(chuàng)建,這就是為什么對于要插入的數(shù)據(jù)類型嚴格控制的原因。


查詢,刪除索引庫語法:

修改索引庫:索引庫和mapping一旦創(chuàng)建無法修改,但是可以添加新的字段,語法如下

文檔操作:
添加,查詢,刪除文檔

修改文檔:
全量修改:(上條數(shù)據(jù)修改后) 當索引(例如:1)存在,則是修改,不存在則是新增

局部修改:

創(chuàng)建索引注意點:
1,一個字段想要查詢其他字段的內(nèi)容可以用:copy_to
2,地理位置坐標:需要使用geo_point(代表橫縱坐標上的一個點)或 geo_shape(代表橫縱坐標上的一片區(qū)域,例如一條直線) ,加入橫縱坐標

RestClient操作索引庫
1,引入es的 RestHighLevelClient依賴:版本需和安裝的 es 保持一致
<dependency>
? ? <groupId>org.elasticsearch.client</groupId>
? ? <artifactId>elasticsearch-rest-high-level-client</artifactId>
? ? <version>7.12.1</version>
</dependency>

修改版本一致

酒店實體舉例創(chuàng)建,刪除,判斷索引是否存在
初始化連接地址:




酒店實體舉例:新增文檔,查詢文檔,更新文檔,刪除文檔


DSL查詢文檔


全文檢索查詢

精確查詢:term:根據(jù)詞條精確值查詢? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? range:根據(jù)值范圍查詢(gt :大于? ? lt:小于? ? ? gte:大于等于? ? ?lte:小于等于)

根據(jù)經(jīng)緯度查詢:
矩形范圍查詢:FIELD 對應的是 location字段

對應查詢例如:附近的人,酒店等~~~

復合查詢:將其他簡單查詢組合起來
相關(guān)性算分(了解)





搜索結(jié)果處理:排序,分頁,高亮
項目中使用:
1,導入amqp(RabbitMQ)依賴包,yaml文件中添加amqp的地址

生產(chǎn)者方:設置交換機,隊列,RoutingKey

綁定交換機和隊列:

數(shù)據(jù)聚合:
