3 ES快速入门3.1 创建索引库3.2 创建映射3.2.1 概念说明3.2.2 创建映射3.3 创建文档3.4 搜索文档3.4.1查询结果分析4 IK分词器4.1测试分词器4.2 安装IK分词器4.3 两种分词模式4.4 自定义词库6 映射类型6.1 映射维护方法6.2 常用映射类型6.2.1 text文本字段6.2.2 keyword关键字字段6.2.3 date日期类型6.2.4 数值类型
3 ES快速入门
ES作为一个索引及搜索服务,对外提供丰富的REST接口,快速入门部分的实例使用head插件来测试,目的是对ES的使用方法及流程有个初步的认识。
3.1 创建索引库
ES的索引库是一个逻辑概念,它包括了分词列表及文档列表,同一个索引库中存储了相同类型的文档。它就相当于MySQL中的表,或相当于Mongodb中的集合。 关于索引这个语: 索引(名词):ES是基于Lucene构建的一个搜索服务,它要从索引库搜索符合条件索引数据。 索引(动词):索引库刚创建起来是空的,将数据添加到索引库的过程称为索引。 下边介绍两种创建索引库的方法,它们的工作原理是相同的,都是客户端向ES服务发送命令。 1)使用postman或curl这样的工具创建: put http://localhost:9200/索引库名称
{
"settings":{
"index":{
"number_of_shards":1,"number_of_replicas":0 } } }
number_of_shards:设置分片的数量,在集群中通常设置多个分片,表示一个索引库将拆分成多片分别存储不同的结点,提高了ES的处理能力和高可用性,入门程序使用单机环境,这里设置为1。 number_of_replicas:设置副本的数量,设置副本是为了提高ES的高可靠性,单机环境设置为0. 如下是创建的例子,创建xc_course索引库,共1个分片,0个副本:
使用head插件创建
image.png
image.png
3.2 创建映射
3.2.1 概念说明
在索引中每个文档都包括了一个或多个field,创建映射就是向索引库中创建field的过程,下边是document和field与关系数据库的概念的类比:
文档(Document)----------------Row记录 字段(Field)-------------------Columns 列 注意:6.0之前的版本有type(类型)概念,type相当于关系数据库的表,ES官方将在ES9.0版本中彻底删除type。 上边讲的创建索引库相当于关系数据库中的数据库还是表? 1、如果相当于数据库就表示一个索引库可以创建很多不同类型的文档,这在ES中也是允许的。 2、如果相当于表就表示一个索引库只能存储相同类型的文档,ES官方建议 在一个索引库中只存储相同类型的文档。
3.2.2 创建映射
我们要把信息存储到ES中,这里我们创建信息的映射,先来一个简单的映射,如下: 发送:post http://localhost: