日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

2022还在使用Mysql进行数据检索?ElasticSearch自定义扩展词库完成检索

發布時間:2024/10/5 数据库 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2022还在使用Mysql进行数据检索?ElasticSearch自定义扩展词库完成检索 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1.為什么要自定義擴展ES詞庫呢?
    • 2.如何自定義擴展詞庫呢?
    • 3.Docker安裝Nginx
    • 4.在nginx中保存一個簡易詞庫
    • 5.修改IK分詞器的配置文件,讓其指向nginx保存的詞庫
    • 6.測試分詞效果


1.為什么要自定義擴展ES詞庫呢?

雖然IK-中文分詞器已經很強悍了,能夠識別大多數的詞匯,但是對于網絡中新興的網絡詞匯是無法識別的(比如“爺青回” “打工人”)

下圖是我在Kibana對“爺青回”的分詞情況

分詞結果如下:

本身我們想讓“爺青回”作為一個詞,由于是網絡詞匯,IK-分詞器是無法識別出的,所以需要我們自定義擴展詞庫

2.如何自定義擴展詞庫呢?

有兩種思路,如下所示:

  • Ⅰ.我們構建一個詞庫服務器,讓IK分詞器給我們的詞庫服務器發送請求即可
  • Ⅱ.使用web服務器保存我們的詞庫;例如nginx服務器,只需要將我們的詞匯保存到nginx,然后讓IK分詞器向nginx發送請求即可。

3.Docker安裝Nginx

(1)新建文件夾方便一會掛載

mkdir -p /mydata/nginx/html mkdir -p /mydata/nginx/logs mkdir -p /mydata/nginx/conf

(2)給予這些文件可讀可寫可執行的權限

cd /mydata/
chmod -R 777 mydata/
-R表示遞歸mydata下的所有文件給予RWX權限

(3)拉取nginx鏡像并運行

docker pull nginx:1.14.2

docker run --name nginx -p 80:80 -v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /mydata/nginx/conf/conf.d:/etc/nginx/conf.d -v /mydata/nginx/logs:/var/log/nginx -v /mydata/nginx/html:/usr/share/nginx/html -d nginx

–name :表示為該容器起的名字
-p:表示指定端口
-v:表示掛載文件
可以看出我對nginx.conf、conf.d、logs、html進行了文件掛載,方便以后操作

docker ps查看結果

在html文件夾下,新建一個a.html文件,向文件里面追加echo “< a> HELLO </ a>”

瀏覽器訪問http://ip:80/a.html(注意如果是云服務器記得將80端口對外開放


nginx安裝成功!


4.在nginx中保存一個簡易詞庫

后期可以自行擴展,編寫一個腳本程序,定時爬取各大網站的熱點網絡詞匯,然后更新到該詞庫即可。

在html目錄下,新建一個word-house文件夾

cd到word-house目錄下,新建一個split-word.txt文件,向里面加入如下內容

5.修改IK分詞器的配置文件,讓其指向nginx保存的詞庫

進入es容器內部:docker exec -it elasticsearch /bin/bash
cd到指定目錄下:cd /usr/share/elasticsearch/plugins/ik/config

編輯IKAnalyzer.cfg.xml:vi IKAnalyzer.cfg.xml

打開遠程擴展字典

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties><comment>IK Analyzer 擴展配置</comment><!--用戶可以在這里配置自己的擴展字典 --><entry key="ext_dict"></entry><!--用戶可以在這里配置自己的擴展停止詞字典--><entry key="ext_stopwords"></entry><!--用戶可以在這里配置遠程擴展字典 --><entry key="remote_ext_dict">http://292.168.56.10/word-house/split-word.txt</entry><!--用戶可以在這里配置遠程擴展停止詞字典--><!-- <entry key="remote_ext_stopwords">words_location</entry> --> </properties>

重啟ElasticSerach容器:docker restart elasticsearch

6.測試分詞效果

重啟之后,稍等片刻,訪問Kibana


查看分詞結果

成功!

總結

以上是生活随笔為你收集整理的2022还在使用Mysql进行数据检索?ElasticSearch自定义扩展词库完成检索的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。