Elasticsearch使用REST API实现全文检索

通过rest api添加检索数据,阅读官方文档可以发现,elasticsearch支持动态映射,但是其中有不少问题,且听慢慢详解。

本文主要讲述三点内容:

1 Elasticsearch常用的rest api

2 Elasticsearch使用bulk命令添加索引数据

ES REST API

  elasticsearch支持通过http请求响应服务,因此通过curl命令,可以发送http请求,并得到json返回内容。

  常用的rest请求包括:

  检查ES集群状态:

curl localhost:9200/_cat/health?v

  检查ES节点状态:

curl localhost:9200/_cat/nodes?v

  查询所有的索引:

curl localhost:9200/_cat/indices?v

  创建索引(这种方式在4.1版本下会出现问题,下一小节再说):

curl -XPUT localhost:9200/索引名字/类型/id -d {"name":"xingoo"}

  删除索引

curl -XDELETE localhost:9200/索引名字

  查询索引:

curl -XGET localhost:9200/索引名字/类型名字/id

ES 使用bulk 添加数据

  动态映射无法添加数据,不要担心!可以使用bulk命令,添加json文件内的数据。

  1 定义json数据文件:

{"index":{"_index":"aaa123","_id":1}}
{"name":"xingoo","age":25}
{"index":{"_index":"aaa123","_id":2}}
{"name":"test111","age":31}
{"index":{"_index":"aaa123","_id":3}}
{"name":"test222","age":42}
{"index":{"_index":"aaa123","_id":4}}
{"name":"test333","age":13}

  注意的是,json文件名称随意指定,第一行定义了索引和一些常用字段:

  _index定义了索引的名称,如果没有指定需要在curl命令中添加索引名称字段

  _type定义了索引的类型,如果没有指定需要在curl命令中添加索引类型字段

  _id定义了该行数据的id,如果没有指定,会随机生成一串数字。

  2 执行命令

  进入到json文件所在的目录,执行命令

curl localhost:9200/索引名称/索引类型/_bulk?pretty --data-binary @data.json

  注意的是:

  如果json文件中定义了_index和_type,那么这里可以不写变成(即便写了也会按照json文件中的生成)

curl localhost:9200/_bulk?pretty --data-binary @data.json

  类似的,如果按照上面我们定义了_index却没有定义_type,那么索引会是aaa123,类型为我们curl命令中指定的类型。

  可以看到上面虽然指定了索引名称为bbb123,类型为ccc123,但是json文件中指定了索引名称为aaa123。

  最后的索引文件中,索引名称为aaa123,类型为ccc123。

  查询索引状态,可以发现正常了。

本文转自博客园xingoo的博客,原文链接:Elasticsearch使用REST API实现全文检索,如需转载请自行联系原博主。

时间: 2024-09-21 00:43:53

Elasticsearch使用REST API实现全文检索的相关文章

elasticsearch中的API

elasticsearch中的API es中的API按照大类分为下面几种: 文档API: 提供对文档的增删改查操作 搜索API: 提供对文档进行某个字段的查询 索引API: 提供对索引进行操作 查看API: 按照更直观的形式返回数据,更适用于控制台请求展示 集群API: 对集群进行查看和操作的API 文档API Index API: 创建并建立索引 Get API: 获取文档 DELETE API: 删除文档 UPDATE API: 更新文档 Multi Get API: 一次批量获取文档 Bu

Elasticsearch上手——Python API的简单使用

Python够直接,从它开始是个不错的选择. Elasticsearch客户端列表:https://www.elastic.co/guide/en/elasticsearch/client/index.html Python API:https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/index.html 参考文档:http://elasticsearch-py.readthedocs.io/en/mas

ElasticSearch 集群监控

最近在做 ElasticSearch 的信息(集群和节点)监控,特此稍微整理下学到的东西.这篇文章主要介绍集群的监控. 要监控哪些 ElasticSearch metrics Elasticsearch 提供了大量的 Metric,可以帮助您检测到问题的迹象,在遇到节点不可用.out-of-memory.long garbage collection times 的时候采取相应措施.但是指标太多了,有时我们并不需要这么多,这就需要我们进行筛选. 集群健康 一个 Elasticsearch 集群至

开源Elasticsearch云托管服务,专享企业级服务

日前,阿里云联合开源官方Elastic联合发布了Elasticsearch新产品.该产品基于开源Elasticsearch及商业版X-Pack插件的云托管服务,保证高性能.高可用,可弹性扩容,并提供企业级权限管控.安全监控告警等高级功能,适用于日志数据分析.网站或APP应用的全文搜索等场景. 一般情况下,用户自建Elasticsearch有运维难度,存在性能瓶颈.用户往往会选择在阿里云ECS上自建Elasticsearch,或者线下物理服务器上自建Elasticsearch. 而此次阿里云推出的

《深入理解ElasticSearch》——导读

前 言 Preface 欢迎来到ElasticSearch的世界.通过阅读本书,我们将带你接触与ElasticSearch紧密相关的各种话题.本书会从介绍Apache Lucene及ElasticSearch的基本概念开始.即使读者熟悉这些知识,简略的介绍也是很有必要的,掌握背景知识对于全面理解集群构建.索引文档.搜索这些操作背后到底发生了什么至关重要. 之后,读者将学习Lucene的评分过程是如何工作的,如何影响评分,以及如何让ElasticSearch选择不同的评分算法.本书也将介绍什么是查

如何把NMAP扫描结果同步到Elasticsearch?

本文讲的是如何把NMAP扫描结果同步到Elasticsearch?,如果您对信息安全感兴趣,那么您可能熟悉端口扫描工具nmap.扫描器是用于网络发现和安全审计的免费和开源(许可证)实用程序.许多网络管理员也会使用它发现网络以及监视主机或服务正常运行时间等任务. 要把nmap的扫描存储到Elasticsearch必须按照Elasticsearch的格式存储.Nmap有一个命令行参数,它允许您以xml格式化的报告输出nmap结果.比如我们要扫描scanme.nmap.org,这是一个经常用来测试nm

大数据搜索选开源还是商业软件?ElasticSearch 对比 Splunk

本文就架构,功能,产品线,概念等方面就ElasticSearch和Splunk做了一下全方位的对比,希望能够大家在制定大数据搜索方案的时候有所帮助. 简介 ElasticSearch (1)(2)是一个基于Lucene的开源搜索服务.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便. E

Elaticsearch REST API常用技巧

在Elasticsearch的REST API中,有很多使用技巧,这里针对官方文档给出的介绍,总结了几个常用的例子. 更多内容参考:Elastisearch文档总结 多索引 ES支持在一次请求中指定多个索引,可以使用通配符或者日期表达式的方式: 例如,foo*索引会匹配foo1,foo2,foo3等索引._all则会匹配所有的索引. 同时也可以针对不可用的索引进行限制.   日期表达式支持如下的格式: <static_name{date_math_expr{date_format|time_zo

11月阿里云产品快报发布

阿里云"黑科技"产品有哪些新发布?降价红利有哪些最新变动?阿里云全球又在哪里发布了新节点?查看阿里云11月产品快报,一目了然. 一.新产品发布:1.Elasticsearch 商业化 发布提供基于开源Elasticsearch服务,致力于数据分析.数据搜索等场景服务.在开源Elasticsearch基础上提供企业级权限管控.安全监控告警.自动报表生成等功能.(1)提供日志数据分析和搜索能力. (2)Kibana和商业化X-Pack提供权限.监控.报表.交互界面.机器学习功能.(3)适用