Elasticsearch学习入门
2024-10-08 16:57:31
一、关于Elasticsearch
1.特点
Elasticsearch基于全文搜索引擎 Apache Lucene ,由Java开发而来,面向API进行搜索, Restful 风格,分布式文件存储。
2.面向文档:
Elasticsearch 将数据以JSON的格式文档的形式;
3.索引:
一个文档就是一个索引,类似数据库中一个数据表;
二、增删查改
一个索引只对应一种类型
增
PUT 索引/类型/文档id
增(自动生成id)
POST 索引/类型
此种方法生成的id
删
DELETE 索引/类型/文档id
查
GET 索引/类型/文档id
GET 索引/类型/_search
_search 为查询关键字
GET 索引/类型/_search?q=userName:liaoge777
查询userName为liaoge777的数据,q为查询参数赋值
_source 对应文档数据;
查询表达式
1.匹配搜索
GET 索引/类型/_search
{
"query": {
"match": {
"userName": "liaoge777"
}
}
}
2.过滤搜索
GET 索引/类型/_search
{
"query": {
"bool": {
"must": {
"match": {
"userName": "lewis"
}
},
"filter": {
"range": {
"age": {"gt": }
}
}
}
}
}
同时匹配用户名为lewis 并且 age 区间是大于26的数据
3.全文搜索(传统数据库难以做到的)
GET 索引/类型/_search
{
"query": {
"match": {
"favorite": "playing games"
}
}
}
分别回去匹配 playing 和 games词汇,并返回符合条件的数据,并使用_score字段表示匹配度
4.短语搜索(严格匹配短语,而不去分割匹配的词汇)
GET 索引/类型/_search
{
"query": {
"match_phrase": {
"favorite": "playing games"
}
}
}
不会分别匹配 playing 和 games,严格匹配字段包含 playing games的数据
5.高亮搜索
GET 索引/类型/_search {
"query": {
"match_phrase": {
"favorite": "playing games"
}
},
"highlight":{
"fields": {
"favorite": {}
}
}
}
对符合条件的"favorite"字段加上高亮
6.聚合
关键字 aggs 类似SQL中的 Group by ,聚合并得到计数
{
"aggs": {
"all_ages": {
"terms": {
"field": "age"
}
}
}
}
通过"age"字段分组,并得出分组计数结果
_search 为查询所有的关键字;
最新文章
- shell 中调用其他的脚本
- Android面试总结 (转)
- HTTPS-HSTS协议(强制客户端使用HTTPS与服务器创建连接)
- Nginx + django windows下配置
- Socket和SignalR
- Js5中基本类型
- 基于visual Studio2013解决C语言竞赛题之0514单词统计
- 201521123092《java程序设计》第14周学习总结
- C控制语句:分支和跳转
- TF-IDF 提取关键词
- RT-thread内核对象--事件集
- LeetCode算法题-Construct Quad Tree(Java实现)
- Docker中如何删除image(镜像)
- 第三十五篇-AppBarLayout的使用
- 11月26日 用seed,预加载种子文件; Case 条件语句。网址的参数如何传递,; Query--自定义scopes
- Android 编程下 Eclipse 恢复被删除的文件
- 重磅来袭,开源Asp.Net MVC网上商城BrnShop正式发布,提供源码下载(转)
- 如何在Ubuntu上安装gcc-6.3
- SpringBoot多数据源配置事务
- DCU IP Prefether
热门文章
- 自定义 directive pagination
- python中的异常处理:厌而不舍
- windows系统下hosts文件的改写(为了测试nginx内网的证书代理,需要做域名解析)
- Netsparker破解版5.3 Netsparker Enterprise 5.3.0.24388[cracked]
- [蓝桥杯2015初赛]生命之树(树状dp)
- Spring MVC原理解析
- Kubernetes 1.17.2 高可用部署
- 定位(left 、right 、top 、 bottom)、padding、margin 值设为百分比值时
- Python 基础之推导式
- MYSQL--“Row size too large (>; 8126)”