ElasticSearch

血红的双手。 提交于 2020-02-26 20:04:43

ElasticSearch

1.什么是ElasticSearch
Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别*(pb指petabyte,它是较高级的存储单位)*的数据。es也使用Java开发并使用Lucene作为其核心来实 现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得 简单。

2.下载ES压缩包
ElasticSearch的官方地址: https://www.elastic.co/products/elasticsearch
在这里插入图片描述
3.安装ES服务
Window版的ElasticSearch的安装很简单,类似Window版的Tomcat,解压开即安装完毕,解压后的ElasticSearch 的目录结构如下:
在这里插入图片描述
修改elasticsearch配置文件,config/elasticsearch.yml文件,增加文件内容如下(在最后面添加就可):

http.cors.enabled: true 
http.cors.allow-origin: "*"

4.启动ES服务
  点击elasticsearch下的bin目录下的elasticsearch.bat启动:
  在这里插入图片描述
    注意:9300是tcp通讯端口,集群间和TCPClient都执行该端口,9200是http协议的RESTful接口;
  通过浏览器访问elasticsearch服务器,启动成功后的内容如下:
在这里插入图片描述
  注意:elasticsearch是使用java开发的,且本版本的ES需要的jdk版本要是1.8以上,所以安装elasticsearch之前保证jdk1.8以上安装完毕,并正确的配置好jdk变量环境,否则启动elasticsearch失败;
步骤四:安装ES的图形化界面插件
  elasticsearch不同于Solr自带图形化界面,我们可以通过安装elasticsearch的head插件,完成图形化界面的效果,完成索引数据的查看。安装插件的方式有两种,在线安装和本地安装。

4.1 下载head插件:https://github.com/mobz/elasticsearch-head
在这里插入图片描述
  4.2 将压缩包解压到任意目录下,但是要和elasticsearch的安装目录区分开
  4.3 下载nodejs:https://nodejs.org/en/download/  在这里插入图片描述

双击安装程序:具体步骤如下:
在这里插入图片描述
      在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
cd跳到elasticsearch-head-master目录下
在这里插入图片描述
安装完毕后,通过cmd控制台查看版本号,命令如下:
在这里插入图片描述

node -v

4.5 将grunt安装为全局命令,grunt是基于Node.js的项目构建工具
在cmd控制台中执行如下命令:

npm install ‐g grunt‐cli
npm install ‐g grunt‐cli

4.6 进入elasticsearch-head-master目录启动head,输入命令如下:

npm install
grunt server

在这里插入图片描述

4.7 打开浏览器,输入http://localhost:9100/,页面效果如下:
在这里插入图片描述
注意事项:
   启动elasticsearch.bat时,如果一闪而过,修改配置如下:
    Elasticsearch默认会配置2G的JVM堆的初始值和最大值,该jvm参数被配置在/config/jvm.options里,可以将JVM参数该小:

Xms512M
Xmx512M

ElasticSearch的客户端操作

实际开发中,主要由三种方式可以作为elasticsearch服务的客户端:

1.elasticsearch-head插件;

2.使用elasticsearch提供的Restful接口直接访问;

3.使用elasticsearch提供的API进行访问;

使用Postman工具进行Restful接口访问(下载地址:https://www.postman.com/)
  1.elasticsearch的接口语法

curl ‐X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' ‐d '<BODY>'

解释:

VERB:适当的HTTP方法或谓词,(GET,POST,PUT,DELETE);

PROTOCOL:HTTP或者HTTPS(如果你在elasticsearch前面有一个HTTPS代理);

HOST:elasticsearch集群中任意节点的主机名,或者用localhost代表本机机器上的节点;

PORT:运行elasticsearch http服务的端口号,默认为9200;

PATH:API的终端路径;

QUERY_STRING:任意可选的查询字符串参数;

BODY:一个JSON格式的请求体;

2.创建索引index和映射mapping(添加)
    2.1 在postman地址栏中输入如下地址:(添加的HTTP方法是PUT)
http://localhost:9200/
    2.2 请求体
按 Ctrl+C 复制代码

{
    "mappings":{
        "type_table1":{
            "properties": {
                "id":{
                    "type":"long",
                    "store":true,
                    "index":"not_analyzed"
                },
                "title":{
                    "type":"text",
                    "store":true,
                    "index":"analyzed",
                    "analyzer":"standard"
                },
                "content":{
                    "type":"text",
                    "store":true,
                    "index":"analyzed",
                    "analyzer":"standard"
                }
            }
        }
    }
}

在这里插入图片描述
    2.3 点击Send按钮,查看页面执行结果
    在这里插入图片描述

点击【信息】下的【索引信息】,查看elasticsearch-head:
在这里插入图片描述
  3.创建索引后设置mapping(修改)
    3.1 先创建一个索引,不指定mapping信息
      
在这里插入图片描述
    3.2 请求的url(修改请求的方式是POST)

http://127.0.0.1:9200/blog1/hello/_mapping

3.3 请求体

{
        "type_table2": {
            "properties": {
                "id":{
                    "type":"long",
                    "store":true,
                    "index":"not_analyzed"
                },
                "title":{
                    "type":"text",
                    "store":true,
                    "index":"analyzed",
                    "analyzer":"standard"
                },
                "content":{
                    "type":"text",
                    "store":true,
                    "index":"analyzed",
                    "analyzer":"standard"
                }
            }
        }
}

3.4 点击Send后执行的结果
      
在这里插入图片描述
      在这里插入图片描述

4.删除索引index
    4.1 请求的url  (删除的请求方式是delete)

http://localhost:9200/wn_2

4.2 实现效果
      在这里插入图片描述

5.创建文档document
    5.1 请求的url (请求方式post)
http://localhost:9200/wn_1/type_table2/1
    5.2 请求体
{
“id”:1,
“title”:“ElasticSearch是一个基于Lucene的搜索服务器”,
“content”:“它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java 开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时 搜索,稳定,可靠,快速,安装使用方便。”
}
    5.3 点击Send后,查看实现效果

在这里插入图片描述
在这里插入图片描述
  6.修改文档document
    6.1 请求的url·(请求的方式是POST)

http://127.0.0.1:9200/blog1/hello/_mapping

6.2 请求体
{
“id”:1,
“title”:"【修改】ElasticSearch是一个基于Lucene的搜索服务器",
“content”:"【修改】它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch 是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够 达到实时搜索,稳定,可靠,快速,安装使用方便。"
}
    6.3 点击Send后,实现效果    
      
在这里插入图片描述
  7.删除文档document
    7.1 请求的url (请求的方式是delete)

http://127.0.0.1:9200/blog1/hello/_mapping

7.2 点击Send后,实现效果
      在这里插入图片描述

8.查询文档-根据id查询
    8.1 创建文档(两条数据)
      
在这里插入图片描述
    8.2 请求的url (请求方式是GET)      
http://localhost:9200/wn_1/type_table2/1
    8.3 点击Send后,查询出的结果
      在这里插入图片描述

9.查询文档-querystring查询
    9.1 请求的url  (请求的方式为POST)
http://localhost:9200/wn_1/type_table2/_search
    9.2 请求体

{ 
    "query": { 
        "query_string": { 
            "default_field": "title", 
            "query": "搜索服务器" 
        } 
    } 
}

9.3 点击Send后,效果实现
      在这里插入图片描述

9.4 注意:将搜索内容"搜索服务器"修改为"修改",同样也能搜索到文档
      
在这里插入图片描述
  10.查询文档-term查询

    10.1 请求的url  (请求的方式为POST)
http://localhost:9200/wn_1/type_table2/_search
    10.2 请求体
复制代码
{ 
    "query": { 
        "term": { 
            "title": "搜索" 
        } 
    } 
}

10.3 点击Send,效果实现
      
在这里插入图片描述
      因为这里使用的是标椎分词器,所以查出的数据是空的,下面我可以测试一下标椎分词器的效果:(GET请求方式)

http://localhost:9200/_analyze?analyzer=standard&pretty=true&text=我是程序员
      效果实现:
在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!