ElasticSearch简单教程
基本了解
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
解释上面一段话
上面的那一段话是从百度百科上摘下来的,相信大家和我一样,看了这样一段话大家都很懵。没关系,我们来一句一句解释它们。
lucene:通俗的讲,这是一个用来搜索的引擎,可以简单的理解为,一个数据库,只用来存文档的,但是存不是它的特点,快速的查找存进去的东西是他的特点。而为了快速的查找里面的东西,他会建立一个倒排索引 。
基于Restful接口:这个是一种框架风格,可以简单的理解为,用http请求的URL可以操作这个索引数据库。
解释完上面那一段话,我们可以来具体的安装它了。
安装步骤
因为是基于java开发的,那么安装elastic search之前jdk一定是要装好的。
接下来直接从官网上根据操作系统以及版本下载所需要的安装包。
顺便也可以在官网上简单了解下.
下载并解压以后就可以使用了,没有听错,就是可以直接使用了,没有听错,开箱即用就是elasticsearch的特点之一。
在解压的目录下找到elasticsearch.bat文件双击即可,在浏览器中输入URL地址
如果出现以一个json格式的数据表示安装成功了。
e1.PNG接下来安装一个小插件使得这个页面能好看一点,安装命令如下:
cd C:\elasticsearch-2.4.4\bin
plugin install mobz/elasticsearch-head
然后再像以前一样运行elasticsearch,页面就会如下图所示
e2.PNG这时候就可以操作elastic search了。
CRUD操作
这里需要了解的是elasticsearch的CRUD操作分为两种形式,Query String类型操作,Query DSL Json类型操作。下面进行一些Query Sting操作下的增,删,改,查的操作。
增加
POST http://localhost:9200/account/person
{ "user":"张三", "title":"工程师", "desc":"数据库管理" }
结果如下:
e3.PNG删除
DELETE http://localhost:9200/account/person/"id"
这个理由一个id号,需要注意的是,每一个Doucument都会有一个id号,可以在自己插入数据时指定,也可以不指定由系统生成,可以对应MySQL中的主键理解。
更新
PUT http://localhost:9200/account/person/"id"
查询
GET http://localhost:9200/account/person/_search?q="索引字段"
查询语句过滤条件
term
精确匹配,指定一个字段,在查找的返回结果(Document)中的指定字段中必须精确匹配term制定的内容。
e4.PNG在account的person中的user字段必须含有“张三”字段。
terms
与term相似,但是支持更多的term字段的匹配。
range
range过滤用于数字,对数字限定一个范围。
-
gt : 大于
-
gte: 大于等于
-
lt : 小于
-
lte : 小于等于
bool
用来合并多个语句,一般使用最多的就是bool过滤
-
must : 多个查询条件的完全匹配,相当于 and。
-
must_not : 多个查询条件的相反匹配,相当于 not。
-
should : 至少有一个查询条件匹配, 相当于 or。
总结
ElasticSearch很多概念可以类比MySQL的概念对应学习
ElasSearch | MySQL | 对应的意义 |
---|---|---|
Index | 数据库的库 | 操纵ElasticSearch的最大单位 |
Type | 数据库的表 | 直接存放数据的单位 |
Document | 数据库的一行数据 | 返回数据结果的单位 |
另外,这里会有一个误区就是,”ElasticSearch就是一个数据库“,这种理解是片面的,ElasticSearch是一个搜索工具,在ELK Stack中可以看到这一点。