elasticsearch学习笔记 (一)

1.下载elasticsearch最新版7.9

https://www.elastic.co/cn/elasticsearch/

需要安装jdk 11。

启动:D:\elasticsearch-7.9.0\bin\elasticsearch.bat

访问:http://127.0.0.1:9200/

2.安装可视化界面elasticsearch-head

注意:不可安装在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/

3.解决跨域问题

D:\elasticsearch-7.9.0\config\elasticsearch.yml
添加:

http.cors.enabled: true
http.cors.allow-origin: "*"

重启es服务,重新连接

4.安装Kibana

https://www.elastic.co/cn/downloads/kibana

启动:D:\kibana-7.9.0-windows-x86_64\bin\kibana.bat
访问:
http://localhost:5601/

5.安装ik分词器

https://github.com/medcl/elasticsearch-analysis-ik

解压到Elasticsearch安装目录中的plugins中即可 ik文件夹

重启观察es

IK提供了两个分词算法ik_smart 和 ik_max_word,其中 ik_smart 为最少切分,ik_max_word为最细粒度划分

分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作

默认的中文分词是将每个字看成一个词,比如"中国的花"会被分为"中",“国”,“的”,“花”,这显然是不符合要求的,所以我们需要安装中文分词器ik来解决这个问题。

6.kibana测试

GET _analyze
{
  "analyzer": "ik_max_word",
  "text": ["中国的花"]
}
GET _analyze
{
  
   "text": ["中国的花"]
}

7.自定义分词

8.倒排索引

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

9.分词

参考资料:
https://blog.csdn.net/jiaojiao521765146514/article/details/83750548
分词器
分词器是ES中专门处理分词的组件,英文为Analyzer,它的组成如下:

Character Filters:针对原始文本进行处理,比如去除html标签
Tokenizer:将原始文本按照一定规则切分为单词
Token Filters:针对Tokenizer处理的单词进行再加工,比如转小写、删除或增新等处理
分词器调用顺序

10.php的elasticsearch扩展

安装

composer require elasticsearch/elasticsearch

参考资料
https://packagist.org/packages/elasticsearch/elasticsearch

你可能感兴趣的:(elasticsearch,elasticsearch)