Elasticsearch基础操作与查询:索引、文档增删改查及模糊搜索
需积分: 8 196 浏览量
更新于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数据管理与检索的基础。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-10-26 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
m0_37825155
- 粉丝: 3
- 资源: 6
最新资源
- music-metadata-react:React应用程序以测试与音乐元数据浏览器的集成
- 应用于可穿戴设备的皮肤温度测量传感器资料(原理图、PCB源文件、源代码)-电路方案
- konamicode.js:使用 konami 代码为您的网站制作复活节彩蛋
- pre-commit:自动在您的git仓库中安装一个git pre-commit脚本,该脚本在pre-commit时运行您的`npm test`。
- GeekBrains_lvl-2_FX_Chat
- yakker:用于浏览器的现代IRC客户端
- User-login:制作注册画面
- pixelcounter:计算文件夹中所有图像的像素
- 联想驱动自动安装程序.zip
- Capacitacion3:Pruebas de Liany
- cnblogs博客的Android客户端源代码
- NKalore Compiler-开源
- core.async:Clojure中用于异步编程和通信的工具
- demo-flickr:演示应用程序搜索并显示来自 Flickr 的照片
- Python库 | imbDRL-2021.1.22.1.tar.gz
- DIY制作红外遥控密码开门(原理图、程序源码、论文)-电路方案