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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php elasticsearch ik,elasticsearch和analysis-ik的安装使用

發布時間:2025/4/5 php 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php elasticsearch ik,elasticsearch和analysis-ik的安装使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

全文搜索和中文分詞主要介紹了兩組全文搜索加中文分詞方案;

TNTSearch+jieba-php這套組合對于博客這類的小項目基本夠用了;

但是如果最求性能追求更強大的功能的話;

那更優的選擇就非 elasticsearch 莫屬了;

elasticsearch 需要 java8 以上;

這里安裝最新版的 java10 ;

下載 jdkwget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http:%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/10.0.1+10/fb4372174a714e6b8c52526dc134031e/jdk-10.0.1_linux-x64_bin.rpm"

因為版本會一直升級;

如果執行上面這段代碼返回了 ERROR 404: Not Found ;

那說明有新版本了;

那就自己去官網復制最新的下載鏈接;

http://www.oracle.com/technetwork/java/javase/downloads/jdk10-downloads-4416644.html ;

選中 Accept License Agreement 然后在 jdk-10.0.1_linux-x64_bin.rpm 上右鍵復制鏈接地址;

替換上面命令中的下載鏈接;

安裝 jdk 注意文件名要跟鏈接中的保持一直;sudo rpm -ivh jdk-10.0.1_linux-x64_bin.rpm

能查看到版本號則表示安裝成功;java -version

下載 elasticsearch ;wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm

安裝 elasticsearch ;sudo rpm -ivh elasticsearch-6.2.4.rpm

安裝完成后編輯配置項vim /etc/elasticsearch/elasticsearch.yml

去掉下面三行的注釋;bootstrap.memory_lock: true

network.host: 192.168.0.1

http.port: 9200

然后把 network.host 改成 localhost

啟動 elasticsearch ;sudo systemctl daemon-reload

sudo systemctl enable elasticsearch.service

sudo systemctl start elasticsearch

稍等片刻給 elasticsearch 個啟動的時間;

因為 elasticsearch 啟動的略慢;

后續涉及到重啟 elasticsearch 的時候也都記得稍等片刻;

然后查看 9200 端口檢查是否成功啟動;netstat -plntu

如果半天過后仍然沒有啟動起來;

可能是內存不夠出錯;vim /etc/elasticsearch/jvm.options

把內存改為自己服務器內存的一半以下;

比如說這里改為 512M ;

嘗試啟動;sudo systemctl restart elasticsearch

查看狀態是否正常;curl 'localhost:9200'

至此 elasticsearch 算是安裝完成了;

但是如果想用來搜索中文;

還需要安裝中文分詞;

怎么算分詞呢?

全文搜索和中文分詞 文章中已經簡單介紹過了;

這里我們從 elasticsearch 實戰一遍;

比如說 白俊遙技術博客 這句話;

elasticsearch內置的分詞器對中文相當不友好;

只會一個只一個字的分;curl -H 'Content-Type: application/json' -XGET 'localhost:9200/_analyze?pretty' -d '{"text":"白俊遙技術博客"}'

所以我們需要一個中文分詞器;

這里選擇和 elasticsearch 配套的 ik-analyzer ;

安裝 ik-analyzer ;/usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.4/elasticsearch-analysis-ik-6.2.4.zip

如果報下面這種錯誤的話可能是網絡不好;Exception in thread "main" java.net.ConnectException: Connection timed out (Connection timed out)

at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

沐浴更衣大念帥白最帥;

再試幾次即可;

然后重新啟動下服務;sudo systemctl restart elasticsearch

看下 ik-analyzer 的效果;curl -H 'Content-Type: application/json' -XGET 'localhost:9200/_analyze?pretty' -d '{"analyzer":"ik_max_word","text":"白俊遙技術博客"}'

我們可以看到 技術 和 博客 兩個詞語已經成功組合到了一起;

然而本博主 白俊遙 的名字被硬生生的拆成了3個字這怎么忍;

還好強大的 analysis-ik 支持自定義詞庫;

增加自定義詞庫;vim /etc/elasticsearch/analysis-ik/IKAnalyzer.cfg.xml

增加一個 白俊遙 到詞庫;echo '白俊遙' > /etc/elasticsearch/analysis-ik/baijunyao.dic

重新啟動下服務;sudo systemctl restart elasticsearch

再看下分詞效果 ;curl -H 'Content-Type: application/json' -XGET 'localhost:9200/_analyze?pretty' -d '{"analyzer":"ik_max_word","text":"白俊遙技術博客"}'

雙擊 666 ;

本來準備一口氣把 elasticsearch 在 laravel 中的應用也寫完的;

不過看著情形今個是完不成了;

下篇文章繼續哈;

另外給個用于在線測試的教程:騰訊云開發者實驗室

總結

以上是生活随笔為你收集整理的php elasticsearch ik,elasticsearch和analysis-ik的安装使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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