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”: “张译”
}
}
}

原文地址:https://www.cnblogs.com/huoqm/p/14345548.html