ElasticSearch简单教程

基本了解

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

解释上面一段话

上面的那一段话是从百度百科上摘下来的,相信大家和我一样,看了这样一段话大家都很懵。没关系,我们来一句一句解释它们。

lucene:通俗的讲,这是一个用来搜索的引擎,可以简单的理解为,一个数据库,只用来存文档的,但是存不是它的特点,快速的查找存进去的东西是他的特点。而为了快速的查找里面的东西,他会建立一个倒排索引 。

基于Restful接口:这个是一种框架风格,可以简单的理解为,用http请求的URL可以操作这个索引数据库。

解释完上面那一段话,我们可以来具体的安装它了。

安装步骤

因为是基于java开发的,那么安装elastic search之前jdk一定是要装好的。

接下来直接从官网上根据操作系统以及版本下载所需要的安装包。

https://www.elastic.co/cn/downloads

顺便也可以在官网上简单了解下.

下载并解压以后就可以使用了,没有听错,就是可以直接使用了,没有听错,开箱即用就是elasticsearch的特点之一。

在解压的目录下找到elasticsearch.bat文件双击即可,在浏览器中输入URL地址

http://locathost:9200

如果出现以一个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中可以看到这一点。

你可能感兴趣的:(ElasticSearch简单教程)