【云知易】Elasticsearch服务 入门 01 快速开始使用ES
660
2022-05-29
一、elasticsearch-分词器
1.什么是分词器
分词器是Elasticsearch中很重要的一个组件,用来将一段文本分析成一个一个的词,Elasticsearch再根据这些词去做倒排索引。
2.ElasticSearch分词器类型
Elasticsearch 中内置了一些分词器,这些分词器只能对英文进行分词处理,无法将中文的词识别出来。所以ElasticSearch需要自定义中文分词器。
2.1 ElasticSearch之内置分词器
2.2 ElasticSearch之IK分词器
Elasticsearch中内置的分词器不能对中文进行分词,因此我们需要再安装一个能够支持中文的分词器,IK分词器就是个不错的选择。
IK分词器下载网址:https://github.com/medcl/elasticsearch-analysis-ik
注意:分词器版本必须和ES版本一致
二、.NET Core ElasticSearch分词器落地
1.创建项目
vs2022创建项目
2.下载Elasticsearch
-:https://www.elastic.co/downloads/elasticsearch
3.然后启动Elasticsearch
通过cmd执行命令
./elasticsearch.bat
默认地址:http://localhost:9200/
4、在项目中引入NEST
dotnet add package NEST
在项目中NEST连接Elasticsearch,通过NEST提供的API进行添加商品数据,然后在进行模糊查询。
三、ElasticSearch根据片段查询出文档
ElasticSearch根据片段查询出文档步骤如下:
1、先下载kibana。
Kibana是一个设计出来用于和Elasticsearch一起使用的开源的分析与可视化平台,可以用kibana 搜索、查看、交互存放在Elasticsearch索引里的数据,使用各种不同的图表、表格、地图等展示高级数据分析与可视化,基于浏览器的接口使你能快速创建和分享实时展现Elasticsearch查询变化的动态仪表盘,让大量数据变得简单,容易理解
注意:安装kibana时,必须先安装elasticsearch且kibana的版本和elasticsearch的版本号必须一致
kibana下载网址:https://www.elastic.co/cn/downloads/kibana
2、然后配置kibana
kibana\config\kibana.yml配置文件,此处根据自己实际减压后的路径去找kibana.yml配置文件。
添加如下:
elasticsearch.hosts:["http://localhost:9200"] i18n.locale:"zh-CN"
3、然后进入bin目录直接cmd启动:
kibana.bat
4、打开kibana,直接进入开发者工具页面
5、 然后通过分析器分析文本
GET products/_analyze { "text": "愚公搬代码" }
即可得到被分词后的效果。默认使用是standard标准分析器实现
四、ElasticSearch Analyzer 分析器执行原理
ElasticSearch 分词时候主要做了如下三个事情:
字符过滤器 char_filter:过滤不必要的分词符号
分词器 tokenizer:实现分词规则
词单元过滤器 filter:实现自定义操作
五、ElasticSearch指定字段进行分词
1.先通过kibana查询Index商品表对应Mapping映射
GET products/_mapping
2.查看映射关系
发现string 都被默认转换成为了text文本。只有文本才能实现分词
ElasticSearch无法修改映射。需要重新创建索引。就是数据库
3.重新创建Index商品,然后指定映射。
PUT producs_0 { "mappings": { "properties": { "productTitle": { "type": "keyword" } } } }
4.迁移数据
POST _reindex { "source": { "index": "products" }, "dest": { "index": "products_0" } }
5.查询映射关系
GET products_0/_mapping
然后在客户端查询数据
六、ElasticSearch进行自定义分词
1.先创建商品数据库products_1
PUT mall_product_8 { "settings": { "analysis": { "analyzer": { "my_tony":{ "type": "custom", "char_filter": [ "html_strip"], "tokenizer": "standard", "filter":[ "lowercase"] } } }}, "mappings": { "properties": { "productTitle": { "type": "text", "analyzer": "my_tony" } } } }
2.然后在数据库products_1中进行测试
GET product_1/_analyze { "analyzer": "my_tony", "text": "p6架构班TTEST11wqaaa" }
然后进行数据读写
七.ElasticSearch进行自定义分词扩展
1、先进入到bin目录,然后安装elasticsearch-analysis-ik
elasticsearch-plugin.bat install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.10.1/elasticsearch-analysis-ik-7.10.1.zip
2、然后创建index数据库products_2
PUT products_2 { "mappings": { "properties": { "productTitle": { "analyzer": "ik_max_word", "search_analyzer": "ik_smart" } } } }
3、然后进行验证
GET mall_product_8/_analyze { "analyzer": "ik_max_word", "text": "p6架构班" }
.NET Elasticsearch 分布式
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。