美文网首页
ElasticSearch简单教程

ElasticSearch简单教程

作者: JoyDang | 来源:发表于2018-12-24 21:35 被阅读0次

    基本了解

    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简单教程

          本文链接:https://www.haomeiwen.com/subject/dbstlqtx.html