Elasticsearch基础操作与查询:索引、文档增删改查及模糊搜索
需积分: 8 5 浏览量
更新于2024-08-04
收藏 7KB TXT 举报
本文主要介绍了Elasticsearch (ES) 的基本查询操作,包括创建、查看、删除索引,定义字段类型,以及各种查询方法,如match、term、bool、should、and、put、post等。
在Elasticsearch中,首先需要创建一个索引。例如,创建名为"heima"的索引,可以使用以下PUT请求:
```json
PUT /heima
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 2
}
}
```
这将创建一个包含3个主分片和2个副本分片的索引。
查看索引则通过GET请求实现,如:
```bash
GET /heima
```
删除索引的命令是:
```bash
DELETE /heima
```
接着,我们定义索引的映射(mapping),即数据库表结构。例如,创建一个名为"goods1"的文档类型:
```json
PUT /heima/_doc/goods1
{
"properties": {
"title": {
"type": "text",
"analyzer": "ik_max_word"
},
"images": {
"type": "keyword",
"index": "true"
},
"price": {
"type": "float"
}
}
}
```
这里,我们设置了"标题"字段为`text`类型,使用`ik_max_word`分词器;"图片"字段为`keyword`类型,可被索引;"价格"字段为`float`类型。
要向索引中添加数据,可以使用POST请求:
```json
POST /heima/goods/
{
"title": "小米手机",
"images": "http://image.leyou.com/12479122.jpg",
"price": 2699.00
}
```
查询数据时,可以使用GET请求配合`_search`,比如查询所有数据:
```bash
GET /heima/_search
{
"query": {
"match_all": {}
}
}
```
多字段查询允许在多个字段中搜索关键词:
```json
GET /heima/_search
{
"query": {
"multi_match": {
"query": "小米手机",
"fields": ["title", "images"]
}
}
}
```
对于多词条查询,可以使用`term`查询指定字段的精确值:
```json
GET /heima/_search
{
"_source": {
"includes": ["title", "price"]
},
"query": {
"term": {
"price": 2699
}
}
}
```
范围查找允许在某个范围内筛选数据:
```json
GET /heima/_search
{
"query": {
"range": {
"price": {
"gte": 1000.0,
"lt": 2800.00
}
}
}
}
```
模糊查找则利用`fuzzy`查询,允许一定程度的拼写错误:
```json
GET /heima/_search
{
"query": {
"fuzzy": {
"title": {
"value": "小米手机",
"fuzziness": "2" # 可以调整模糊度
}
}
}
}
```
以上就是Elasticsearch中的基本查询操作,包括创建、查看、删除索引,定义字段类型,以及各种查询方法的使用。这些操作构成了Elasticsearch数据管理与检索的基础。
2019-01-10 上传
2019-08-07 上传
2023-04-20 上传
2024-05-22 上传
2024-03-22 上传
2023-04-14 上传
2023-05-31 上传
2023-06-14 上传
2023-03-23 上传
m0_37825155
- 粉丝: 3
- 资源: 6
最新资源
- 开源通讯录备份系统项目,易于复刻与扩展
- 探索NX二次开发:UF_DRF_ask_id_symbol_geometry函数详解
- Vuex使用教程:详细资料包解析与实践
- 汉印A300蓝牙打印机安卓App开发教程与资源
- kkFileView 4.4.0-beta版:Windows下的解压缩文件预览器
- ChatGPT对战Bard:一场AI的深度测评与比较
- 稳定版MySQL连接Java的驱动包MySQL Connector/J 5.1.38发布
- Zabbix监控系统离线安装包下载指南
- JavaScript Promise代码解析与应用
- 基于JAVA和SQL的离散数学题库管理系统开发与应用
- 竞赛项目申报系统:SpringBoot与Vue.js结合毕业设计
- JAVA+SQL打造离散数学题库管理系统:源代码与文档全览
- C#代码实现装箱与转换的详细解析
- 利用ChatGPT深入了解行业的快速方法论
- C语言链表操作实战解析与代码示例
- 大学生选修选课系统设计与实现:源码及数据库架构