热门标签 | 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;对搜索的关键词不分词


推荐阅读
  • 深入解析 Vue 中的 Axios 请求库
    本文深入探讨了 Vue 中的 Axios 请求库,详细解析了其核心功能与使用方法。Axios 是一个基于 Promise 的 HTTP 客户端,支持浏览器和 Node.js 环境。文章首先介绍了 Axios 的基本概念,随后通过具体示例展示了如何在 Vue 项目中集成和使用 Axios 进行数据请求。无论你是初学者还是有经验的开发者,本文都能为你解决 Vue.js 相关问题提供有价值的参考。 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • 深入探索Node.js新框架:Nest.js第六篇
    在本文中,我们将深入探讨Node.js的新框架Nest.js,并通过一个完整的示例来展示其强大功能。我们将使用多个装饰器创建一个基本控制器,该控制器提供了多种方法来访问和操作内部数据,涵盖了常见的CRUD操作。此外,我们还将详细介绍Nest.js的核心概念和最佳实践,帮助读者更好地理解和应用这一现代框架。 ... [详细]
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • 【前端开发】深入探讨 RequireJS 与性能优化策略
    随着前端技术的迅速发展,RequireJS虽然不再像以往那样吸引关注,但其在模块化加载方面的优势仍然值得深入探讨。本文将详细介绍RequireJS的基本概念及其作为模块加载工具的核心功能,并重点分析其性能优化策略,帮助开发者更好地理解和应用这一工具,提升前端项目的加载速度和整体性能。 ... [详细]
  • 本文详细介绍了在 React Native 开发过程中遇到的 'Could not connect to development server' 错误及其解决方法。该问题不仅影响开发效率,而且难以通过网络资源找到确切的解决方案。本文将提供详细的步骤,帮助开发者快速解决这一常见问题。 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 在Eclipse中提升开发效率,推荐使用Google V8插件以增强Node.js的调试体验。安装方法有两种:一是通过Eclipse Marketplace搜索并安装;二是通过“Help”菜单中的“Install New Software”,在名称栏输入“googleV8”。此插件能够显著改善调试过程中的性能和响应速度,提高开发者的生产力。 ... [详细]
  • 本文介绍了 Vue 开发的入门指南,重点讲解了开发环境的配置与项目的基本搭建。推荐使用 WebStorm 作为 IDE,其下载地址为 。安装时请选择适合您操作系统的版本,并通过 获取激活码。WebStorm 是前端开发者的理想选择,提供了丰富的功能和强大的代码编辑能力。 ... [详细]
  • 在Node.js中调用MySQL存储过程`updateUser(p1, p2, @p3)`时,其中`@p3`为输出参数。若更新操作失败,则返回0;成功则返回1。本文将详细介绍如何正确获取存储过程的返回结果,并确保在实际应用中能够顺利执行。 ... [详细]
  • Node.js 配置文件管理方法详解与最佳实践
    本文详细介绍了 Node.js 中配置文件管理的方法与最佳实践,涵盖常见的配置文件格式及其优缺点,并提供了多种实用技巧和示例代码,帮助开发者高效地管理和维护项目配置,具有较高的参考价值。 ... [详细]
  • 本文深入探讨了在Spring Boot中处理RESTful风格的表单请求的方法,包括请求参数处理、请求映射以及RESTful设计原则的应用。文章详细介绍了如何利用HTTP动词(如GET、POST、PUT、DELETE)来操作资源,并结合Spring Boot的注解(如@GetMapping、@PostMapping等)实现高效、清晰的请求处理逻辑。通过实例分析,展示了如何在实际项目中应用这些技术,提高开发效率和代码可维护性。 ... [详细]
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
  • Node.js 教程第五讲:深入解析 EventEmitter(事件监听与发射机制)
    本文将深入探讨 Node.js 中的 EventEmitter 模块,详细介绍其在事件监听与发射机制中的应用。内容涵盖事件驱动的基本概念、如何在 Node.js 中注册和触发自定义事件,以及 EventEmitter 的核心 API 和使用方法。通过本教程,读者将能够全面理解并熟练运用 EventEmitter 进行高效的事件处理。 ... [详细]
  • MySQL 错误:检测到死锁,在尝试获取锁时;建议重启事务(Node.js 环境)
    在 Node.js 环境中,MySQL 数据库操作时遇到了“检测到死锁,在尝试获取锁时;建议重启事务”的错误。本文将探讨该错误的原因,并提供有效的解决策略,包括事务管理优化和锁机制的理解。 ... [详细]
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社区 版权所有