es语法基础

health green(集群完整) yellow(单点正常、集群不完整) red(单点不正常)
status 是否能使用
index 索引名
uuid 索引统一编号
pri 主节点几个
rep 从节点几个
docs.count 文档数
docs.deleted 文档被删了多少
store.size 整体占空间大小
pri.store.size 主节点占
cluster 整个elasticsearch 默认就是集群状态,整个集群是一份完整、互备的数据。
node 集群中的一个节点,一般只一个进程就是一个node
shard 分片,即使是一个节点中的数据也会通过hash算法,分成多个片存放,默认是5片。
index 相当于rdbms的database, 对于用户来说是一个逻辑数据库,虽然物理上会被分多个shard存放,也可能存放在多个node中。
type 类似于rdbms的table,但是与其说像table,其实更像面向对象中的class , 同一Json的格式的数据集合。
Document(json) 类似于rdbms的 row、面向对象里的object
field 相当于字段、属性

#查看所有索引
GET /_cat/indices?v

#删除索引
DELETE /movie_chn

#增加索引
PUT /movie_index

#新增文档
PUT /movie_index/movie/1
{ “id”:1,
“name”:“operation red sea”,
“doubanScore”:8.5,
“actorList”:[
{“id”:1,“name”:“zhang yi”},
{“id”:2,“name”:“hai qing”},
{“id”:3,“name”:“zhang han yu”}
]
}

#用id查找
GET movie_index/movie/3

#修改某一字段
POST movie_index/movie/3/_update
{
“doc”: {
“doubanScore”:“7.0”
}
}

#删除一个document
DELETE movie_index/movie/3

#搜索type全部数据
GET movie_index/movie/_search

#按条件查询(全部)
GET movie_index/movie/_search
{
“query”:{
“match_all”: {}
}
}

#按分词查询
GET movie_index/movie/_search
{
“query”:{
“match”: {“name”:“red”}
}
}

#按分词子属性查询
GET movie_index/movie/_search
{
“query”:{
“match”: {“actorList.name”:“zhang”}
}
}

#按短语查询,不再利用分词技术,直接用短语在原始数据中匹配
GET movie_index/movie/_search
{
“query”:{
“match_phrase”: {“name”:“operation red”}
}
}

#fuzzy查询(不再利用分词技术,直接用短语在原始数据中匹配)
GET movie_index/movie/_search
{
“query”:{
“fuzzy”: {“name”:“rad”}
}
}

#查询后过滤
GET movie_index/movie/_search
{
“query”:{
“match”: {“name”:“red”}
},
“post_filter”:{
“term”: {
“actorList.id”: 3
}
}
}

#查询前过滤
GET movie_index/movie/_search
{
“query”:{
“bool”:{
“filter”:[ {“term”: { “actorList.id”: “1” }},
{“term”: { “actorList.id”: “3” }}
],
“must”:{“match”:{“name”:“red”}}
}
}
}

#按范围过滤
GET movie_index/movie/_search
{
“query”: {
“bool”: {
“filter”: {
“range”: {
“doubanScore”: {“lt”: 8}
}
}
}
}
}

关于范围操作符:
gt 大于
lt 小于
gte 大于等于
lte 小于等于

#排序
GET movie_index/movie/_search
{
“query”:{
“match”: {“name”:“red sea”}
}
, “sort”: [
{
“doubanScore”: {
“order”: “desc”
}
}
]
}

#分页查询
GET movie_index/movie/_search
{
“query”: { “match_all”: {} },
“from”: 1,
“size”: 1
}

#指定查询的字段
GET movie_index/movie/_search
{
“query”: { “match_all”: {} },
“_source”: [“name”, “doubanScore”]
}

#高亮
GET movie_index/movie/_search
{
“query”:{
“match”: {“name”:“red sea”}
},
“highlight”: {
“fields”: {“name”:{} }
}
}

#分词
GET movie_index/_analyze
{
“text”: “我是中国人”
}

GET movie_index/_analyze
{ “analyzer”: “ik_smart”,
“text”: “我是中国人”
}

GET movie_index/_analyze
{ “analyzer”: “ik_max_word”,
“text”: “我是中国人”
}

#查看mapping
GET movie_chn/_mapping/movie

#建立mapping
PUT movie_chn
{
“mappings”: {
“movie”:{
“properties”: {
“id”:{
“type”: “long”
},
“name”:{
“type”: “text”
, “analyzer”: “ik_smart”
},
“doubanScore”:{
“type”: “double”
},
“actorList”:{
“properties”: {
“id”:{
“type”:“long”
},
“name”:{
“type”:“keyword”
}
}
}
}
}
}
}

#插入数据
PUT /movie_chn/movie/1
{ “id”:1,
“name”:“红海行动”,
“doubanScore”:8.5,
“actorList”:[
{“id”:1,“name”:“张译”},
{“id”:2,“name”:“海清”},
{“id”:3,“name”:“张涵予”}
]
}

#插入数据
PUT /movie_chn/movie/2
{
“id”:2,
“name”:“湄公河行动”,
“doubanScore”:8.0,
“actorList”:[
{“id”:3,“name”:“张涵予”}
]
}

#插入数据
PUT /movie_chn/movie/3
{
“id”:3,
“name”:“红海事件”,
“doubanScore”:5.0,
“actorList”:[
{“id”:4,“name”:“张晨”}
]
}

#搜索type全部数据
GET movie_chn/movie/_search

#查询测试
GET /movie_chn/movie/_search
{
“query”: {
“match”: {
“name”: “红海战役”
}
}
}

#查询测试
GET /movie_chn/movie/_search
{
“query”: {
“term”: {
“actorList.name”: “张译”
}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值