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

esik词库添加词语_Elasticsearch(2)使用Restful风格操作es索引库

使用Postman工具进行Restful接口访问ElasticSearch的接口语法curl-X::?

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

ElasticSearch的接口语法

curl -X '://:/?' -d ''

其中:

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

创建索引index和映射mapping

PUT localhost:9200/blog1

请求体:

{"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"}}}}
}

20d052b319a312ef3fb51205b0582b9b.png

这样我们就在es中定义好了一个索引库,并且配置了一个mapping

c5503b1b88e464e3272ed1f926604d47.png

给已创建的index添加mapping

使用 POST 命令,给 hello 这个type添加 mapping

POST http://127.0.0.1:9200/blog/hello/_mappings

请求体为:

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

34bdb4eedb60b89d1389f7dbb804d2bb.png

这样我们就在es中为blog索引库配置了一个mapping

be9432d74cdfae912dbb1895e10bf602.png

在elasticsearch-head-master中也可以做相应PUT和POST操作

d352571d512f8dfb86f843f9d2993225.png
15b14cda1f2e24cb16fde9446afd6bd4.png
877be4c1fe26383cddbaaaf5f704cd93.png

删除索引index

DELETE localhost:9200/blog2

a8cd8cb3f492a34d96c0628f9d094fbf.png

添加文档

POST localhost:9200/blog1/article/1

请全体

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

7001316d891eece709f46a654c412e12.png

注意

路径中最后的1指定了生成的文档的真正的id,如果未设置,则es自动生成一个uuid,对文档的增删改查就是要用这个_id

请全体中的id是我们数据中的一个字段

25621570f9fa1c095901902b455e67e5.png

如果我们未指定_id,则自动生成

952ac19862921b5c92e4273163492721.png
2a79994805a4c53b01d4ba8768b41928.png

修改文档

POST localhost:9200/blog1/article/1

请求体

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

1f7e4e8e77f31755a3f2d229c433c657.png
ec9768ae1900e82c85a0ea7027b19d71.png

删除文档document

DELETE localhost:9200/blog1/article/1

e5bf0ad8da8da1d7bcb82a4bef09d412.png
6c10eb1114e34bda4382496afabca301.png

查询文档

5524f6e47d5ff252c00936a693a1c4e4.png

根据id查询

GET localhost:9200/blog1/article/1

5880c5eb89f1382a7fc725b6c2cd3ba4.png

term查询

POST localhost:9200/blog1/article/_search

请全体

{"query": {"term": {"title": "为什么"}}
}

a48200feb0f93da7aebfc9fc82cd763a.png

因为分词的时候使用的是标准分析器,标准分析器是基于单个汉字进行分词的,因此关键词为多个汉字的词语进行查询的时候没有结果,如果使用单个汉字作为查询条件可以查到结果

adb67f3ec145d8e2df640823dff2f2d9.png

querystring查询

POST localhost:9200/blog1/article/_search

请全体

{"query":{"query_string":{"default_field":"title","query":"为什么"}}
}

会先根据字符串进行分词,将得到的所有关键词进行查询

aa43d4a8601592ac84b3cbdbbc21b7b0.png

标准分词器分词效果测试:

http://127.0.0.1:9200/_analyze?analyzer=standard&pretty=true&text=我是程序员

5e88f5afabd0c1418a0a883cf0642937.png

使用es-head进行查询

9d6659c6b835f4a18d1e0e341dadb1d3.png
a7a720348289cdf24f5f2d2d60548d0b.png



推荐阅读
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • SAP接口编程PyRFC 调用 BAPI_FIXEDASSET_CREATE1创建固定资产
    本篇演示通过PyRFC调用BAPI_FIXEDASSET_CREATE1在SAP系统中创建固定资产,再一次体验一下Python与其它语言相比的简洁性。首先简单说明B ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
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社区 版权所有