https://www.elastic.co/cn/elasticsearch/
需要安装jdk 11。
启动:D:\elasticsearch-7.9.0\bin\elasticsearch.bat
访问:http://127.0.0.1:9200/
注意:不可安装在elasticsearch的plugins文件下,否则es启动会报错
https://github.com/mobz/elasticsearch-head
安装流程:
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install ===> 速度慢可以使用cnpm install
启动服务npm run start
打开ES后浏览器访问 http://localhost:9100/
D:\elasticsearch-7.9.0\config\elasticsearch.yml
添加:
http.cors.enabled: true
http.cors.allow-origin: "*"
重启es服务,重新连接
https://www.elastic.co/cn/downloads/kibana
启动:D:\kibana-7.9.0-windows-x86_64\bin\kibana.bat
访问:
http://localhost:5601/
https://github.com/medcl/elasticsearch-analysis-ik
解压到Elasticsearch安装目录中的plugins中即可 ik文件夹
重启观察es
IK提供了两个分词算法ik_smart 和 ik_max_word,其中 ik_smart 为最少切分,ik_max_word为最细粒度划分
分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作
默认的中文分词是将每个字看成一个词,比如"中国的花"会被分为"中",“国”,“的”,“花”,这显然是不符合要求的,所以我们需要安装中文分词器ik来解决这个问题。
GET _analyze
{
"analyzer": "ik_max_word",
"text": ["中国的花"]
}
GET _analyze
{
"text": ["中国的花"]
}
ES存储的是一个JSON格式的文档,其中包含多个字段,每个字段会有自己的倒排索引
ElasticSearch引擎把文档数据写入到倒排索引(Inverted Index)的数据结构中,倒排索引建立的是分词(Term)和文档(Document)之间的映射关系,在倒排索引中,数据是面向词(Term)而不是面向文档的。
一个倒排索引由文档中所有不重复词的列表构成,对于其中每个词,有一个包含它的文档列表
示例:
对以下三个文档去除停用词后构造倒排索引
倒排索引-查询过程
查询包含“搜索引擎”的文档
通过倒排索引获得“搜索引擎”对应的文档id列表,有1,3
通过正排索引查询1和3的完整内容
返回最终结果
倒排索引-组成
单词词典(Term Dictionary)
倒排列表(Posting List)
参考资料:
https://blog.csdn.net/jiaojiao521765146514/article/details/83750548
参考资料:
https://blog.csdn.net/jiaojiao521765146514/article/details/83750548
分词器
分词器是ES中专门处理分词的组件,英文为Analyzer,它的组成如下:
Character Filters:针对原始文本进行处理,比如去除html标签
Tokenizer:将原始文本按照一定规则切分为单词
Token Filters:针对Tokenizer处理的单词进行再加工,比如转小写、删除或增新等处理
分词器调用顺序
安装
composer require elasticsearch/elasticsearch
参考资料
https://packagist.org/packages/elasticsearch/elasticsearch