`
m635674608
  • 浏览: 5031799 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

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。

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

 

 

http://www.cnblogs.com/xing901022/p/4703323.html

http://ju.outofmemory.cn/entry/50617

分享到:
评论

相关推荐

    ES-RestAPI技术分享.docx

    ### Elasticsearch与ES-RestAPI技术概述 #### 一、Elasticsearch简介 Elasticsearch是一款高性能的分布式搜索和分析引擎,适用于实时数据处理场景。它基于Lucene构建,提供了强大的分布式多用户全文检索功能,通过...

    使用Java调用ElasticSearch提供的相关API进行数据搜索完整实例演示

    在本文中,我们将深入探讨如何使用Java调用Elasticsearch(ES)提供的API进行数据搜索。Elasticsearch是一个流行的开源全文搜索引擎,具有分布式、实时、可扩展性等特性,广泛应用于大数据分析和日志检索等领域。...

    springboot+es实现对word,pdf,txt等文件的非结构化数据全文内容检索

    5. **使用RestHighLevelClient**:如果需要执行更复杂的操作,可以使用`RestHighLevelClient`,它是Elasticsearch官方提供的客户端,可以直接调用Elasticsearch的REST API。 6. **文件内容提取**:对于Word、PDF等...

    基于Koa2Elasticsearch50的RestApi

    在本项目中,“基于Koa2 Elasticsearch5.0的RestApi”是一个使用JavaScript开发的Web应用程序,它构建在Koa2框架之上,旨在提供与Elasticsearch 5.0数据库的RESTful接口。Koa2是Node.js社区广泛使用的下一代web应用...

    springboot 集成elasticsearch ,api的使用

    在本文中,我们将深入探讨如何将Spring Boot与Elasticsearch集成,...通过定义实体、创建repository接口以及使用提供的API,我们可以实现对Elasticsearch的数据管理,从而实现高效的全文检索、数据分析和实时数据处理。

    elasticsearch离线JAVA API文档下载

    Elasticsearch(简称ES)是一款强大的开源搜索引擎,广泛应用于数据分析、日志分析和全文检索等场景。它的Java API是开发人员与Elasticsearch进行交互的主要工具,提供了丰富的功能,使得在Java环境中操作Elastic...

    es客户端工具,便捷操作es全文检索工具的增删改查

    Elasticsearch(简称ES)是一种强大的开源搜索引擎,广泛应用于大数据分析和全文检索领域。作为Big Data解决方案的一部分,它以其高效、灵活和可扩展性而闻名。本文将深入探讨如何使用客户端工具来便捷地进行ES的增...

    ES(elasticSearch6.4.0)之java API源码demo

    Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。 ElasticSearch提供javaAPI,使用者可以...

    elasticsearch5.6以上version通用java API

    在Java环境中与Elasticsearch交互,通常会使用官方提供的Java REST客户端。然而,官方API可能无法涵盖所有实际开发中的需求,因此需要深入理解并扩展API来实现更多功能。在"elasticsearch5.6以上version通用java API...

    elastic:用于Rust的Elasticsearch REST API客户端

    Elasticsearch 是一个广泛使用的开源搜索引擎,它基于 Lucene 库构建,专为实时数据分析和大规模数据检索设计。Rust 是一种系统级编程语言,以其安全性、并发性和高性能著称。在 Rust 生态系统中,"elastic" 是一个...

    Solr和ElasticSearch全文检索客户端代码

    综上所述,全文检索客户端代码是实现高效、便捷搜索的关键,无论是Solr还是Elasticsearch,都可以通过其提供的Java客户端工具实现数据的增删改查。在实际应用中,应根据项目需求和团队技能选择合适的全文检索引擎,...

    ES查询客户端,elasticsearch可视化工具 elasticsearch查询客户端

    Elasticsearch(简称ES)是一款强大的开源搜索引擎,广泛应用于数据检索、分析和管理。作为分布式、RESTful风格的搜索和数据分析引擎,Elasticsearch能够提供实时、高可用性以及可扩展的搜索功能。在进行日常的数据...

    Lucene全文检索入门项目 Java实现Maven项目 Elasticsearch 基础实战.zip

    【标题】"Lucene全文检索入门项目 Java实现Maven项目 Elasticsearch 基础实战" 提供了一个学习如何在Java环境中运用全文检索技术的起点。这个项目涵盖了两个主要的开源工具:Lucene和Elasticsearch,它们都是业界...

    rs-es:ElasticSearch REST API的Rust客户端

    `rs-es`是一个针对Elasticsearch的Rust语言实现的客户端库,它提供了与Elasticsearch REST API交互的能力。Elasticsearch是一个广泛使用的分布式搜索引擎和分析引擎,适用于各种数据存储和检索场景。Rust则是一种...

    python操作ElasticSearch.rar

    这些命令通常以curl命令的形式给出,也可以通过Elasticsearch的REST API接口在Python中实现。 通过深入学习并实践这些Python操作Elasticsearch的方法,可以有效地利用Elasticsearch的强大功能,为数据分析和信息...

    深入探索:Elasticsearch 的 RESTful API 揭秘

    Elasticsearch 的 RESTful API 遵循 REST 原则,允许开发人员使用简单的 HTTP 请求(如 GET、POST、PUT 和 DELETE)来执行对数据的操作。这些操作包括但不限于创建索引、索引文档、查询文档、更新文档以及删除文档等...

    Elasticsearch java工具类

    Elasticsearch提供了Java REST客户端,允许开发者直接通过Java代码与ES集群进行交互。这个工具类可能包含了如索引文档、查询、更新和删除文档等基本操作的封装,以及聚合、脚本等高级功能。例如,`IndexRequest`用于...

    elasticsearch_rest_app

    在 "elasticsearch_rest_app" 中,开发者可能会使用 `index()` 或 `update()` 方法添加或更新文档,使用 `get()` 方法检索特定文档,`delete()` 方法删除文档。 **5. 查询与聚合** Elasticsearch 提供了丰富的查询...

    Go-go-elasticsearch:Elasticsearch官方的go语言客户端

    - **完整的API覆盖**:库提供了Elasticsearch REST API的完整实现,包括索引管理、搜索、更新、删除等操作。 - **错误处理**:对Elasticsearch返回的HTTP状态码和错误信息进行了封装,方便开发者处理异常情况。 - **...

    ElasticSearch整合JavaApi代码

    在IT行业中,Elasticsearch(ES)是一种广泛使用的开源全文搜索引擎,它基于Lucene构建,提供了分布式、实时、可扩展的搜索和分析能力。本文将深入探讨如何利用Java API与Elasticsearch进行集成,分为基础使用和高级...

Global site tag (gtag.js) - Google Analytics