热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ElasticSearch的客户端基本语法操作

ElasticSearch的客户端基本语法操作1elasticsearch-head2使用Postman工具进行Restful接口访问2.1ElasticSearch的接口语法2.

ElasticSearch的客户端基本语法操作

  • 1 elasticsearch-head
  • 2 使用Postman工具进行Restful接口访问
    • 2.1 ElasticSearch的接口语法
    • 2.2 创建索引index和映射mapping
    • 2.3 创建索引后设置Mapping
    • 2.4 删除索引index
    • 2.5 创建文档document
    • 2.6 修改文档document
    • 2.7 删除文档document
    • 2.8 查询文档-根据id查询
    • 2.9 查询文档-query请求url:
    • 2.10 查询文档-term查询



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

第一种,elasticsearch-head插件

第二种,使用elasticsearch提供的Restful接口直接访问

第三种,使用elasticsearch提供的API进行访问
1 elasticsearch-head

ElasticSearch不同于Solr自带图形化界面,我们可以通过安装ElasticSearch的head插件,完成图形化界面的效果,完成索引数据的查看。安装插件的方式有两种,在线安装和本地安装。本次采用本地安装方式进行head插件的安装。elasticsearch-5-*以上版本安装head需要安装node和grunt

(1)下载head插件:https://github.com/mobz/elasticsearch-head
(2)将elasticsearch-head-master压缩包解压到任意目录,但是要和elasticsearch的安装目录区别开
(3)下载nodejs:https://nodejs.org/en/download/
双击安装程序,安装完毕,可以通过cmd控制台输入:node -v 查看版本号
(4)将grunt安装为全局命令 ,Grunt是基于Node.js的项目构建工具
在cmd控制台中输入如下执行命令:

cnpm install -g grunt-cli

执行结果如下图:
在这里插入图片描述(5)进入elasticsearch-head-master目录启动head,在命令提示符下输入命令:

>npm install
>grunt server

在这里插入图片描述(6)打开浏览器,输入 http://localhost:9100,看到如下页面:
在这里插入图片描述如果不能成功连接到es服务,需要修改ElasticSearch的config目录下的配置文件:
config/elasticsearch.yml,增加以下两句命令:

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

然后重新启动ElasticSearch服务。

2 使用Postman工具进行Restful接口访问

2.1 ElasticSearch的接口语法

curl -X<VERB> &#39;<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>&#39; -d &#39;<BODY>&#39;

其中&#xff1a;

参数解释
VERB适当的 HTTP 方法 或 谓词 : GET 、 POST 、 PUT 、 HEAD 或者 DELETE 。
PROTOCOLhttp 或者 https &#xff08;如果你在 Elasticsearch 前面有一个 https 代理&#xff09;
HOSTElasticsearch 集群中任意节点的主机名&#xff0c;或者用 localhost 代表本地机器上的节点。
PORT运行 Elasticsearch HTTP 服务的端口号&#xff0c;默认是 9200 。
PATHAPI 的终端路径&#xff08;例如 _count 将返回集群中文档数量&#xff09;。Path 可能包含多个组件&#xff0c;例如&#xff1a; _cluster/stats 和 _nodes/stats/jvm 。
QUERY_STRING任意可选的查询字符串参数 (例如 ?pretty 将格式化地输出 JSON 返回值&#xff0c;使其更容易阅读)
BODY一个 JSON 格式的请求体 (如果请求需要的话)

2.2 创建索引index和映射mapping

请求url&#xff1a;

PUT 192.168.220.100:9200/blog1

请求体&#xff1a;

{
"mappings": {
"article": {
"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"
}
}
}
}
}

post man 截图&#xff1a;
在这里插入图片描述
elasticsearch-head查看&#xff1a;
在这里插入图片描述

2.3 创建索引后设置Mapping

我们可以在创建索引时设置mapping信息&#xff0c;当然也可以先创建索引然后再设置mapping。
在上一个步骤中不设置maping信息&#xff0c;直接使用put方法创建一个索引&#xff0c;然后设置mapping信息。
请求的url&#xff1a;

POST http://192.168.220.100:9200/blog2/hello/_mapping

请求体&#xff1a;

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

PostMan截图
在这里插入图片描述

2.4 删除索引index

请求url&#xff1a;

DELETE 192.168.220.100:9200/blog1

postman截图&#xff1a;
在这里插入图片描述elasticsearch-head查看&#xff1a;
在这里插入图片描述

2.5 创建文档document

请求url&#xff1a;

POST 192.168.220.100:9200/blog1/article/1

请求体&#xff1a;

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

postman截图&#xff1a;
在这里插入图片描述
elasticsearch-head查看&#xff1a;
在这里插入图片描述

2.6 修改文档document

请求url&#xff1a;

POST 192.168.220.100:9200/blog1/article/1

请求体&#xff1a;

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

postman截图&#xff1a;
在这里插入图片描述elasticsearch-head查看&#xff1a;
在这里插入图片描述

2.7 删除文档document

请求url&#xff1a;

DELETE 192.168.220.100:9200/blog1/article/1

postman截图&#xff1a;
在这里插入图片描述

2.8 查询文档-根据id查询

请求url&#xff1a;

GET 192.168.220.100:9200/blog1/article/1

postman截图&#xff1a;
在这里插入图片描述

2.9 查询文档-query请求url&#xff1a;

请求url&#xff1a;

POST 192.168.220.100:9200/blog1/article/_search

请求体&#xff1a;

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

postman截图&#xff1a;
在这里插入图片描述注意&#xff1a;
将搜索内容"搜索服务器"修改为"钢索"&#xff0c;同样也能搜索到文档&#xff0c;该原因会在下面讲解中得到答案

{
"query": {
"query_string": {
"default_field": "title",
"query": "钢索"
}
}
}

钢索 -> “钢”&#xff0c; “索”&#xff0c;搜索是分成两个词&#xff0c;注意Standard标准分词器&#xff0c;会把汉字每个字一个词存到索引库中的tilte&#xff0c;也是按照Standard进行的分词所以搜索钢索能搜到这个document


2.10 查询文档-term查询

请求url&#xff1a;

POST 192.168.220.100:9200/blog1/article/_search

请求体&#xff1a;

{
"query": {
"term": {
"title": "搜索"
}
}
}

postman截图&#xff1a;
在这里插入图片描述
query_string&#xff1a;搜索之前对搜索的关键词分词
term&#xff1a;对搜索的关键词不分词


推荐阅读
  • 必须先赞下国人npm库作品:node-images(https:github.comzhangyuanweinode-images),封装了跨平台的C++逻辑,形成nodejsAP ... [详细]
  • Node.js详细安装及环境配置
    1、下载安装根据自己电脑系统及位数选择,我这里选择windows64位.msi格式安装包(官网:https:odejs.orgzh-cndownload).msi和.zip格式区别 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • 用NAN写一个nodejs的c++扩大
    NAN引见NAN的全称为NativeAbstractionforNode.js,其表现上是一个Node.js包。装置后,就获得一堆C++头文件,内里是一堆宏。它主要为Node.js ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • phpcomposer 那个中文镜像是不是凉了 ... [详细]
  • vuecli创建项目(详情步骤)
    1、安装node环境2、下载vue和vue-cli脚手架命令行输入npm ... [详细]
  • centos php部署到nginx 404_NodeJS项目部署到阿里云ECS服务器全程详解
    本文转载自:http:www.kovli.com20170919ecs-deploy作者:Kovli本文详细介绍如何部署NodeJS项目到阿里云ECS上, ... [详细]
  • 这篇文章给大家介绍怎么从源码启动和编译IoTSharp ,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。IoTSharp项目是 ... [详细]
  • 先下载nodejs针对windows安装安装就行。自定义安装在对应的文件夹就行安装完之后需要在电脑的环境变量里面添加两个路径通过cmd可以查看自己node的版本号最后通过运行npm ... [详细]
  • 问题内容npmERR!code1npmERR!pathE:\WebProject\jeecgboot-vue3\node_modules\gifsiclenpmERR!com ... [详细]
  • 原文http:a317222029201405212739.iteye.comblog2174140引自http:www.tuicool.comarticlesaeye6rY ... [详细]
author-avatar
乳酪杳杳
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有