ElasticSearch的常用api

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: ElasticSearch的常用api

以下操作之前,先看下服务启动情况

http://127.0.0.1:9200/

版本:6.3.1

1、索引操作

操作 方式 接口 参数

集群健康

GET

/_cat/health?v -
节点列表

GET

/_cat/nodes?v

-
索引列表

GET

/_cat/indices?v -
创建索引 PUT /website -
查看设置

GET

/website/_settings -
设置索引 PUT /website/_settings {"number_of_replicas": "2"}
复制索引 POST /_reindex {"source":{"index":"website"}, "dest":{"index":"test002"}}
关闭索引 POST /website/_close -
打开索引 POST /website/_open -
删除索引 DELETE /website -

2、文档操作

操作

方式

接口 参数
添加文档

PUT

/website/blog/001

{"name": "tom"}

获取文档 GET /website/blog/001 -
检查文档是否存在

HEAD

/website/blog/001 -
一次取多个 POST /website/blog/_mget {"docs": [{"_id": "001"}, {"_id": "002"}] }
搜索多个 POST /website/_search {"query":{"terms": {"_id":["001", "002"]}}}
更新文档(doc方式) POST /website/blog/001/_update {"doc":{"name":"Jack" }}
更新文档(脚本方式) POST /website/blog/001/_update { "script":{"inline": "ctx._source.star += params.star", "lang":"painless","params":{ "star":100} }}
查询更新 POST /website/_update_by_query {"script":{"inline":"ctx._source.age = 23", "lang":"painless"}, "query":{"term":{"name":"Tom"} } }
删除文档(指定ID) DELETE /website/blog/001 -
删除文档(带查询条件) DELETE /website {"query":{"term":{"name":"Tom"} } }
批量操作(多行格式) POST

/_bulk

{"index":{ "_index": "books", "_type": "IT", "_id": "1" }}{"name": "Tom"}

3、搜索操作

搜索查询

POST | /website/_search

操作 参数
查看所有 {"query":{"match_all":{} } }
精确匹配

{"query":{"constant_score":{"filter":{"term":{"price":549} } } } }

词项查询(term query) {"query":{"term":{"title":"java"} } }
分词查询(match query) {"query":{"match":{"title":"Core Java"} } }
分词查询(全部匹配) {"query":{"match":{"title":{"query":"Core Java", "operator":"and"} } } }
顺序匹配 {"query":{"match_phrase":{"title":"Core Java"} } }
前缀匹配 {"query":{"match_phrase_prefix":{"title":"Core J"} } }
多字段搜索

{"query":{"multi_match":{"query":"1986 deep", "fields":["title", "description"] } } }

多词查询 {"query":{"terms":{"title":["deep", "core"] } } }
范围查询 {"query":{"range":{"publish_time":{"gte":"2016-01-01", "lte":"2016-12-31", "format":"yyyy-MM-dd"} } } }
存在字段查询 {"query":{"exists":{"field":"author"} } }
前缀查询 {"query":{"prefix":{"title":"cor"} } }
通配符查询("?“一个,”*"多个 {"query":{"wildcard":{"title":"cor?"} } }
正则表达式 {"query":{"regexp":{"description":"[0-9]{4}"} } }
模糊查询 {"query":{"fuzzy":{"description":"1987"} } }
复合查询(must, should, must_not, filter) {"query":{"bool":{"must":{"term":{"title":"java"} }, "must_not":[{"term":{"title":"core"}} ] } } }
脚本查询 {"query":{"bool":{"must":{"script":{"script":{"inline":"doc['price'].value>500", "lang":"painless"} } } } } }

指定排序字段

{"query":{"term":{"title":"java"} }, "sort":[{"price":{"order":"desc"}} ] }

4、其他操作

操作 方式 接口 参数
分词效果 POST /website/_analyze {"field":"title", "text":"Core Java", "analyzer": "ik_smart"}

设置分词器

PUT /blog {"settings" : {"index" : {"analysis.analyzer.default.type": "ik_max_word"} } }
分页 GET /website/_search?size=10&from=0 -
高亮 POST /website/_search {"query" : {"match_phrase" : {"about" : "rock climbing"} }, "highlight": {"fields" : {"about" : {} } } }
数量 GET /website/_count -

参考

  1. Elasticsearch集群和索引常用命令
  2. elasticsearch实战三部曲之一:索引操作
  3. elasticsearch实战三部曲之二:文档操作
  4. elasticsearch实战三部曲之三:搜索操作
  5. 修改ES默认分词设置
相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
5天前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
12月前
|
存储 人工智能 自然语言处理
Elasticsearch Inference API增加对阿里云AI的支持
本文将介绍如何在 Elasticsearch 中设置和使用阿里云的文本生成、重排序、稀疏向量和稠密向量服务,提升搜索相关性。
411 14
Elasticsearch Inference API增加对阿里云AI的支持
|
10月前
|
存储 人工智能 API
(Elasticsearch)使用阿里云 infererence API 及 semantic text 进行向量搜索
本文展示了如何使用阿里云 infererence API 及 semantic text 进行向量搜索。
387 8
|
11月前
|
监控 API 索引
Elasticsearch集群使用 _cluster/health API
Elasticsearch集群使用 _cluster/health API
408 2
|
11月前
|
Unix API 索引
Elasticsearch集群使用 _cat/health API
Elasticsearch集群使用 _cat/health API
205 1
|
人工智能 自然语言处理 搜索推荐
Elasticsearch 开放 inference API 增加了对 Azure OpenAI 嵌入的支持
【6月更文挑战第8天】Elasticsearch 推出开放 inference API,支持 Azure OpenAI 嵌入,强化搜索和数据分析能力。此更新使用户能灵活集成 AI 技术,实现智能精准搜索。Azure OpenAI 的语言理解能力优化了用户查询处理,提升搜索相关性。示例代码显示了如何结合两者处理查询。该创新提升数据检索效率,适用于智能客服和推荐系统,但也带来数据安全和模型准确性等挑战。这标志着搜索和数据分析领域的智能化新阶段,期待更多创新应用。未来,我们需要持续探索和完善,以发挥技术的最大潜力。
131 3
|
存储 缓存 Java
掌握Elasticsearch集群参数查询API
掌握Elasticsearch集群参数查询API
|
5月前
|
JSON 安全 数据可视化
Elasticsearch(es)在Windows系统上的安装与部署(含Kibana)
Kibana 是 Elastic Stack(原 ELK Stack)中的核心数据可视化工具,主要与 Elasticsearch 配合使用,提供强大的数据探索、分析和展示功能。elasticsearch安装在windows上一般是zip文件,解压到对应目录。文件,elasticsearch8.x以上版本是自动开启安全认证的。kibana安装在windows上一般是zip文件,解压到对应目录。elasticsearch的默认端口是9200,访问。默认用户是elastic,密码需要重置。
2493 0
|
6月前
|
安全 Java Linux
Linux安装Elasticsearch详细教程
Linux安装Elasticsearch详细教程
1007 1
|
11月前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
424 5