1. elasticsearch简介
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。
ucene只是一个提供全文搜索功能类库的核心工具包,而真正使用它还需要一个完善的服务框架搭建起来的应用。
好比lucene是类似于发动机,而搜索引擎软件(ES,Solr)就是汽车。
目前市面上流行的搜索引擎软件,主流的就两款,elasticsearch和solr,这两款都是基于lucene的搭建的,可以独立部署启动的搜索引擎服务软件。由于内核相同,所以两者除了服务器安装、部署、管理、集群以外,对于数据的操作,修改、添加、保存、查询等等都十分类似。就好像都是支持sql语言的两种数据库软件。只要学会其中一个另一个很容易上手。
从实际企业使用情况来看,elasticSearch的市场份额逐步在取代solr,国内百度、京东、新浪都是基于elasticSearch实现的搜索功能。国外就更多了 像维基百科、GitHub、Stack Overflow等等也都是基于ES的。
2. EKL 安装
注意:es和kibana版本下载需一致,这里安装7.x版本
安装教程:https://www.freesion.com/article/8579680591/
分词插件安装需要同ES同版本:
$ cd /usr/share/elasticsearch/plugins
$ mkdir ik
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.0-linux-x86_64.tar.gz
$ unzip elasticsearch-7.17.0-linux-x86_64.tar.gz & rm -f elasticsearch-7.17.0-linux-x86_64.tar.gz
# 重启服务
$ systemctl restart elasticsearch
自定义中文词库:
$ cd /usr/share/elasticsearch/plugins/id/config
$ vim 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://11.8.38.86/fenci/esword.txt</entry>
<!--用户可以在这里配置远程扩展停止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
------------------------------------------------------------------------
阿里云自定义词库只能通过API接口实现:
https://help.aliyun.com/document_detail/161871.htm?spm=a2c4g.11186623.0.0.2e8f6cf0GBuqxZ#doc-api-elasticsearch-UpdateHotIkDicts
*.dic文件直接通过接口可以更新,无需重启ES服务
IKAnalyzer.cfg.xml 不能直接导入到分词中
3. 注意事项
- ES7.x取消了type
- 默认type只有text类型会进行分词,keyword是不会分词的字符串。mapping除了自动定义,还可以手动定义,但是只能对新加的、没有数据的字段进行定义。一旦有了数据就无法再做修改了。
- Laravel/scout插件 Es7.x 自动添加索引兼容性问题?
其他文档:
https://blog.csdn.net/wt334502157/article/details/119515730
https://blog.csdn.net/weixin_45067790/article/details/111875241