- Elasticsearch作为一门全文检索技术,那它是如何使用的呢?
- 先学习Elasticsearch的一些语法,后续再在项目中实战应用 。
要知道计算机是老美搞出来的,它的很多东西对于中文来说其实是很不友好的 。
关于分词,即把一段中文或者别的划分成一个个的关键字 。
比如"我是中国人",可以分为多少个词?
按照中国汉字语言,其分为“我”,“是”,“中国人”,“中国”,“国人”这5个 。
也就是说用户输入上述5个词语,都可以搜索到“我是中国人”这条数据 。
而默认的中文分词是将每个字看成一个词,会被分为“我”,“是”,"中","国","人" 。
这显然是不符合要求的,所以用中文分词器ik来解决这个问题 。
文章插图
【如何通过Elasticsearch创建索引库?】①analyze:翻译过来就是分析的意思,这里就可以理解成分词 。
②analyzer:这里也就是指分词器,我们使用ik_max_word 。
- ik_max_word为最细粒度划分 。
- ik_smart为最少切分 。
可以把上述代码修改做一个对比,会发现使用ik_smart只能分三个词:“我”,“是”,“中国人”
这里显然使用ik_max_word更加的合适 。
二、基本概念Elasticsearch本质上也就是在存储数据,其有很多概念可以和MySQL类似的 。
文章插图
为了方便学习将其和MySQL结合起来 。
当然严格来说将这些概念对应起来不太准确,但目前就这样理解也没问题 。
①索引库indices
- MySQL中通过数据库存储数据 。
- Elasticsearch中通过索引库存储索引 。
②类型type
- 一个数据库中可以创建多张表,比如说商品表,订单表 。
- 一个索引集也可以有不同类型的索引,比如说商品索引,订单索引 。
③文档document
- 数据库中一条数据就是一行 。
- 索引集中一条信息就是一个文档
- 数据库中列就是每一行中的数据 。
- 索引集中字段就是文档中的属性 。
三、操作索引库昨天我们也说明过了,Elasticsearch是一个基于RESTful风格的搜索引擎 。
Elasticsearch采用的是REST风格API,其API本质上也就是一次http请求:
1索引库的创建
文章插图
既然是请求,那自然就会有:
- 请求方式:PUT,其对应的就是创建 。
- 请求路径:/索引库名
- 请求参数:这里是settings
- number_of_shards:分片数量 。
- number_of_rplicas:副本数量 。
2索引库的查询与删除
REST风格的方便之处就在于通过请求方式的不同就能实现不同的操作:
文章插图
①查询索引库
请求方式GET对应的就是查询操作 。
请求路径依旧是上述创建的索引库,可以查询出liuxiaoai01索引库的信息 。
②删除索引库
请求方式DELETE对应的就是删除操作 。
请求路径依旧是上述创建的索引库,可以删除liuxiaoai01索引库 。
删除后再次使用GET查询对应的索引库,会发现其会报错了,证明删除成功 。
四、操作字段映射创建了索引库也就相当于有了database数据库,接下来就是数据表并添加数据了 。
1类型的创建
文章插图
在索引库中添加数据叫映射,这也是上述格式中_mApping的由来 。
goods就是索引类型,也就是相当于数据库中的goods数据表 。
推荐阅读
- iPadAir 4、iPadPro、iPad8应如何选择?
- 如何做才能我们的保住元气
- 径山茶盖碗如何冲泡,径山茶冲泡方式茶艺先容
- 初学者如何学太极拳 二个训练方法要谨记
- 如何练好太极拳 五个要点很重要
- 古代人的洁牙妙招 古人是如何刷牙的?
- 减肥姜茶作用如何,姜茶的功效与禁忌
- 老茶头的由来,如何冲泡老茶头
- 瘦男人如何健身呢?
- 如何正确跑步锻炼啊?