ElasticSearch 實現分詞全文檢索 - ES、Kibana、IK安裝

来源:https://www.cnblogs.com/vipsoft/archive/2023/03/03/17144748.html
-Advertisement-
Play Games

目錄 ElasticSearch 實現分詞全文檢索 - 概述 ElasticSearch 實現分詞全文檢索 - ES、Kibana、IK安裝 ElasticSearch 實現分詞全文檢索 - Restful基本操作 --待發佈 ElasticSearch 實現分詞全文檢索 - Java Spring ...


目錄

ElasticSearch 實現分詞全文檢索 - 概述
ElasticSearch 實現分詞全文檢索 - ES、Kibana、IK安裝
ElasticSearch 實現分詞全文檢索 - Restful基本操作 --待發佈
ElasticSearch 實現分詞全文檢索 - Java SpringBoot ES 索引操作 --待發佈
ElasticSearch 實現分詞全文檢索 - Java SpringBoot ES 文檔操作 --待發佈
ElasticSearch 實現分詞全文檢索 - 測試數據準備 --待發佈
ElasticSearch 實現分詞全文檢索 - term、terms查詢 --待發佈
ElasticSearch 實現分詞全文檢索 - id、ids、prefix、fuzzy、wildcard、range、regexp 查詢 --待發佈
ElasticSearch 實現分詞全文檢索 - Scroll 深分頁 --待發佈
ElasticSearch 實現分詞全文檢索 - delete-by-query --待發佈
ElasticSearch 實現分詞全文檢索 - 複合查詢 --待發佈
ElasticSearch 實現分詞全文檢索 - filter查詢 --待發佈
ElasticSearch 實現分詞全文檢索 - 高亮查詢 --待發佈
ElasticSearch 實現分詞全文檢索 - 聚合查詢 cardinality --待發佈
ElasticSearch 實現分詞全文檢索 - 經緯度查詢 --待發佈

安裝 ElasticSearch

詳見 Docker 安裝 Elasticsearch、Kibana 7.9.3

或者 使用 docker compose 安裝

[root@localhost elasticsearch]# pwd
/opt/elasticsearch
#安裝
[root@localhost elasticsearch]# docker-compose up -d
#查看日誌
[root@localhost elasticsearch]# docker-compose logs -f

docker-compose.yml

version:
services:
	elasticsearch:
		image: daocloud.io/library/elasticsearch:7.9.3
		restart: always
	container_name: elasticsearch
	ports:
		-9200:9200
	kibana:
		image: daocloud.io/library/kibana:7.9.3
		restart: always
		container name: kibana
	ports:
		- 5601:5601
	environment:
		- elasticsearch url=http://172.16.3.88:9200
	depends_on:
		- elasticsearch

安裝 IK Analysis

ES 預設分詞器,對漢字的分詞不太友好

下載 ik 分詞器插件

找到對應的 Elasticsearch 版本,這裡用的:7.9.3,將地址複製到訊雷里下,直接下的話下不動
https://elasticsearch.cn/download/
image
image

方式一:在容器中下載安裝

先把zip下載下來。放到任意一臺伺服器(直接github上下載多數會失敗)

# 查看 ES 的容器ID
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS         PORTS                                                                                  NAMES
ad684997e228   elasticsearch:7.9.3   "/tini -- /usr/local…"   7 minutes ago   Up 7 minutes   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   elasticsearch
# 進入 ES 容器
[root@localhost ~]# docker exec -it ad68 /bin/bash
# 通過命令進行 ElasticSearch 插件安裝,不需要重啟
[root@ad684997e228 elasticsearch]# elasticsearch-plugin install http://172.16.0.66/elasticsearch-analysis-ik-7.9.3.zip
-> Downloading http://172.16.0.66/elasticsearch-analysis-ik-7.9.3.zip
[=================================================] 100%?? 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.net.SocketPermission * connect,resolve
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.

Continue with installation? [y/N]y
-> Installed analysis-ik
[root@ad684997e228 elasticsearch]#

方式二:將文件上傳至容器,進行安裝

將 ik 文件傳至伺服器

image

將 ik 複製到容器,並安裝
# 查看 ES 的容器ID
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS         PORTS                                                                                  NAMES
ad684997e228   elasticsearch:7.9.3   "/tini -- /usr/local…"   7 minutes ago   Up 7 minutes   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   elasticsearch
# 將it 插件,複製到容器中
[root@localhost ~]# docker cp /opt/elasticsearch-analysis-ik-7.9.3.zip ad684997e228:/usr/share/elasticsearch
# 進入 ES 容器
[root@localhost ~]# docker exec -it ad68 /bin/bash
# 通過命令進行 ElasticSearch 插件安裝,不需要重啟
[root@ad684997e228 elasticsearch]# elasticsearch-plugin install file:\/usr/share/elasticsearch/elasticsearch-analysis-ik-7.9.3.zip
-> Installing file:/usr/share/elasticsearch/elasticsearch-analysis-ik-7.9.3.zip
-> Downloading file:/usr/share/elasticsearch/elasticsearch-analysis-ik-7.9.3.zip
[=================================================] 100%?? 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.net.SocketPermission * connect,resolve
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.

Continue with installation? [y/N]y
-> Installed analysis-ik
[root@ad684997e228 elasticsearch]#

重啟容器

docker restart xxx

如果不重啟會報:failed to find global analyzer [ik_smart]

{
    "error": {
        "root_cause": [
            {
                "type": "illegal_argument_exception",
                "reason": "failed to find global analyzer [ik_smart]"
            }
        ],
        "type": "illegal_argument_exception",
        "reason": "failed to find global analyzer [ik_smart]"
    },
    "status": 400
}

介面測試(Postman)

http://172.16.3.88:9200/_analyze

{
    "analyzer":"ik_smart",
    "text":"心臟搭橋手術"
}

image

Kibana 測試

image

POST _analyze
{
    "analyzer":"ik_smart",
    "text":"心臟搭橋手術"
}

image


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 環境 odoo-14.0.post20221212.tar Web Controllers Controllers 控制器需要提供可擴展性,就像Model,但不能使用相同的機制,因為先決條件(已載入模塊的資料庫)可能還不可用(例如,未創建資料庫或未選擇資料庫)。 因此,控制器提供了自己的與模型的擴展 ...
  • 簡介 chatgpt-java是一個OpenAI的Java版SDK,支持開箱即用。目前以支持官網全部Api。支持最新版本GPT-3.5-Turbo模型以及whisper-1模型。增加chat聊天對話以及語音文件轉文字,語音翻譯。 開源地址:https://github.com/Grt1228/cha ...
  • 下載安裝包 Prometheus windows_exporter Grafana 下載地址:https://share.weiyun.com/D9sdiWoC 工作原理 Exporter 監控工具,獲取數據 Prometheus 普羅米修斯時序資料庫,用來存儲和查詢監控數據 Grafana 儀錶盤 ...
  • 哈嘍兄弟們,今天我們來試試,如何只用13行代碼,給抖音APP視頻自動點贊! 前因後果 事情是這樣的,昨晚表弟晚上一兩點了,房間燈還亮著,原來是還在用手機刷某音視頻,我搶過手機一看,好家伙,連刷十個都是美女,喜歡列表也全是MM。 我看他手動點贊手都點累了,乾脆熬個夜,給他寫一個自動點贊的代碼,今晚他就 ...
  • MyBatis緩存 mybatis – MyBatis 3 | cache MyBatis 一級緩存全詳解(一) MyBatis 內置了一個強大的事務性查詢緩存機制,它可以非常方便地配置和定製。 為了使它更加強大而且易於配置,我們對 MyBatis 3 中的緩存實現進行了許多改進。 1.一級緩存 1 ...
  • for迴圈 迴圈的作用與分類 作用:讓代碼更加高效的重覆運行 分類:for迴圈和while迴圈 for迴圈結構 for 臨時變數 in 可迭代對象: 重覆執行的代碼1 重覆執行的代碼2 ... 可迭代對象 = 一個容器或者序列 # 遍歷字元串 for i in 'Python': print(i) ...
  • 現象 系統根據指定的日期範圍(LocalDateTime)查詢資料庫,結果與直接將SQL語句查詢不一致,系統查詢的並不是期望日期範圍的數據。 通過 LocalDateTime、LocaDate、LocalDate 作為時間插入數據時,時間不對 解決 更換 mysql 的驅動包版本在 8.0.22及以 ...
  • Spring提供的事務使用起來很方便,一個@Transactional註解就搞定全部,但是如果不註意,也會踩坑 提到事務就應該想到至少以下幾點: 1、在事務方法中加鎖,可能會導致鎖失效 無論是JVM自帶的鎖,還是分散式鎖,都有可能出現沒鎖住的情況 原因是解鎖先於事務提交,一旦鎖釋放後其它線程就可以獲 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...