本系列目录请看这里 https://blog.csdn.net/Michel4Liu/article/details/81711892
本篇主要是感受一下es的操作,例子和大部分内容来源于官网,可以利用一些http提交工具。
1、curl linux的组件,可以用但是手写东西太多比较麻烦些。
2、火狐浏览器的RESTClient插件,难度比curl小,可以点选很多东西。 本篇主要讲此工具和es交互
3、谷歌浏览器的Sense插件(官方演示也用这个)目前 0.9.0版本(安装链接),操作也非常简单,但是不支持ES6.X版本了,主要是json提交数据时需要加Content-Type: application/json。
国内有人已经修改了此工具,https://blog.csdn.net/xieshanwu/article/details/78667881 想用sense的可以尝试一下,我没测试。
一、安装RESTClient插件
打开网址安装 https://addons.mozilla.org/zh-CN/firefox/addon/restclient/
二、使用RESTClient 实操 es,例子来源于官网,我只是转成了 RESTClient 操作而已
1、配置http头字段,自定义一个头字段Content-Type: application/json
2、利用RESTClient 新增一条数据进入es
选择PUT 表示新增,输入url :http://ES主机地址:9200/megacorp/employee/1 ,设置头字段,然后附带json发送
{
"first_name" : "John",
"last_name" : "Smith",
"age" : 25,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}
注意,路径 /megacorp/employee/1 包含了三部分的信息:
megacorp: 索引名称 (有文章说可以理解为数据库)
employee: 类型名称 (有文章说可以理解为表)
1: 特定雇员的ID (有文章说可以理解为唯一标识)
上面就新建一个人员基本数据,我们可以以此放入更多的同类型数据。相同类型结构需要一致。示例数据填入更多数据 下面演示搜索。
3、
- 按照唯一标识搜索
- 搜索全部数据
- 按条件搜索:检索last_name=Smith
- 使用表达式搜索,json传搜索条件,工具get不会传正文json的,但是curl支持get传data。所以此处查询改成post传参。
- 复杂的搜索:搜索last_name=Smith并且年龄大于 30的
这部分是一个 range 过滤器 , 它能找到年龄大于 30 的文档,其中 gt 表示_大于(_great than) - 全文搜索,之前的搜索都比较号理解类似于数据库查询,下面这个搜索是数据库的短板。搜索引擎的特点相关性检索。
搜索下所有喜欢攀岩(rock climbing)
第一个结果不难理解,包含关键字,第二个结果只是包含部分关键字,检索的相关性分数也低于第一个结果。
更详细解释或更复杂查询请查看官方文档
https://www.elastic.co/guide/cn/elasticsearch/guide/current/_indexing_employee_documents.html