一、我们可以使用es-head或者postman进行接口的访问,如图:
image.pngimage.png
我们可以创建一个索引:
image.png image.png
我们在创建一个索引,并且副本数选择1
image.png
然后在回到概览就可以看到节点1的变化了,出现了一个新的索引,并且集群的健康值也变成了黄色,其中有5个副本sharp是灰色的,没有分配值,下面是官网关于集群状态的描述
image.png当然我们也可以根据官网提供的接口来获取集群的健康状态信息:
image.png
二、设计一个文档结构:
通过调用接口的方式设计一个文档结构:
image.png image.png
text和keyword代表的都是字符串类型,不一样的是text是可以模糊匹配的,在es中就是可以被索引且可以倒排查询的,而keyword是精确匹配的类型,例如状态或者微信号等不允许模糊匹配的。
下面我们查询测试ES是怎么分词的:
image.png
image.png
结构是他把所有的单词都给拆分出来了,如果你查询的字段是username的话,那么分词的结构就是整句话: immoc is very good~!
需要注意一点的是:如果数据类型设置好的话,是不能修改的;
三、我们现在可以新建一个名字叫做my_doc的索引,然后使用postman的方式新增一条文档:
image.png如图我们在接口的url路径上写明了我们要新增文档到my_doc这个索引里,这条数据的id是1,这条数据的具体信息就是图中的数据,如果不写明数据id的话,es就会自动为我们的数据随机分配一个id
然后在谷歌插件的es-head上查看数据:
image.png
可以看到数据已经存储上来了,我们在索引状态里面查看下:
image.png
发现几个字段都有,而且在name下面不仅仅有text类型还有keyword属性,这个意思就是name这个字段不仅可以精确匹配而且还可以倒排序搜索,长度是256,如果超出则忽略。
当然根据官网的说明还会有删除或者更新的操作
四、文档查询操作
image.png可以看到如果要查询一个文档是如图那么的拼接url
如果想要查询所有的文档数据就如下调用接口:
http://192.168.121.172:9200/my_doc/_doc/_search
如果希望展示出来的数据仅仅展示几个字段,可以这么定义:
http://192.168.121.172:9200/my_doc/_doc/1?_source=id,name
在source后面以逗号隔开多个想要的属性即可。
如果你仅想要判断某个文档是否存在就可以使用head的接口请求方式来查询,这样的方式也是最优的方法,因为get是把所有符合请求的数据抓去过来,而head仅仅返回一个状态码,我们通过状态码是404还是200来判断是否有符合要求的文档即可。
image.png
image.png
网友评论