Elasticsearch使用REST API实现全文检索

本文涉及的产品
Elasticsearch Serverless检索通用型,资源抵扣包 100CU*H
简介:

通过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实现全文检索,如需转载请自行联系原博主。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
4月前
|
存储 人工智能 API
(Elasticsearch)使用阿里云 infererence API 及 semantic text 进行向量搜索
本文展示了如何使用阿里云 infererence API 及 semantic text 进行向量搜索。
199 8
|
6月前
|
存储 人工智能 自然语言处理
Elasticsearch Inference API增加对阿里云AI的支持
本文将介绍如何在 Elasticsearch 中设置和使用阿里云的文本生成、重排序、稀疏向量和稠密向量服务,提升搜索相关性。
271 14
Elasticsearch Inference API增加对阿里云AI的支持
|
5月前
|
监控 API 索引
Elasticsearch集群使用 _cluster/health API
Elasticsearch集群使用 _cluster/health API
177 2
|
5月前
|
Unix API 索引
Elasticsearch集群使用 _cat/health API
Elasticsearch集群使用 _cat/health API
97 1
|
6月前
|
JSON Java 网络架构
elasticsearch学习四:使用springboot整合 rest 进行搭建elasticsearch服务
这篇文章介绍了如何使用Spring Boot整合REST方式来搭建和操作Elasticsearch服务。
203 4
elasticsearch学习四:使用springboot整合 rest 进行搭建elasticsearch服务
|
5月前
|
缓存 API 网络架构
掌握现代API开发:GraphQL vs REST
【10月更文挑战第24天】本文深入探讨了现代API开发中两种主流技术——GraphQL和REST的设计理念、技术特点及实际开发中的对比分析。GraphQL通过声明式数据请求和强类型系统提供更高的灵活性和性能,而REST则以其无状态特性和成熟的生态系统见长。文章还讨论了两者在客户端-服务器交互、安全性和工具支持方面的优劣,帮助开发者根据项目需求做出明智选择。
|
6月前
|
Web App开发 JavaScript Java
elasticsearch学习五:springboot整合 rest 操作elasticsearch的 实际案例操作,编写搜索的前后端,爬取京东数据到elasticsearch中。
这篇文章是关于如何使用Spring Boot整合Elasticsearch,并通过REST客户端操作Elasticsearch,实现一个简单的搜索前后端,以及如何爬取京东数据到Elasticsearch的案例教程。
407 0
elasticsearch学习五:springboot整合 rest 操作elasticsearch的 实际案例操作,编写搜索的前后端,爬取京东数据到elasticsearch中。
|
6月前
|
Java API Maven
使用 Smart-doc 记录 Spring REST API
使用 Smart-doc 记录 Spring REST API
126 0
|
23天前
|
JSON 数据挖掘 API
1688API最新指南:商品详情接口接入与应用
本指南介绍1688商品详情接口的接入与应用,该接口可获取商品标题、价格、规格、库存等详细信息,适用于电商平台开发、数据分析等场景。接口通过商品唯一标识查询,支持HTTP GET/POST请求,返回JSON格式数据,助力开发者高效利用1688海量商品资源。
|
23天前
|
JSON 数据挖掘 API
京东API接口最新指南:店铺所有商品接口的接入与使用
本文介绍京东店铺商品数据接口的应用与功能。通过该接口,商家可自动化获取店铺内所有商品的详细信息,包括基本信息、销售数据及库存状态等,为营销策略制定提供数据支持。此接口采用HTTP请求(GET/POST),需携带店铺ID和授权令牌等参数,返回JSON格式数据,便于解析处理。这对于电商运营、数据分析及竞品研究具有重要价值。