GET _cat/nodes
GET /_cat/health?v
GET /_cat/nodes?v
GET /_cat/indices
GET /_cat/indices?v
GET _search
{"query": {"match_all":{}}
}
ps:索引名字后面必须换行
PUT test_index
{
"settings":{
"number_of_shards":2,
"number_of_replicas" : 1}
}
ps:分片不能修改,副本可以修改
PUT test_index/_settings
{
"number_of_replicas" : 2
}
PUT /index_test2
{"mappings": {"properties": {"id":{"type": "long"},"name":{"type": "text"}}}
}
PUT /index_test2/_mapping
{"properties": {"age":{"type": "long"}}
}
DELETE test_index
GET /index_test/_search
GET index_test/_search
{
"query" : { "match_all":{}}
}
GET /index_test/_doc/1
get index_test/_mget
{
"docs":[{"_id":1},{"_id":2}
]}
GET /index_test/_search
{"query": {"match": {"address": "宫"}}
}
put index_test1/_create/1
{
"address":{"t1":"女孩","age":18
},
"count":1
}
GET /index_test1/_search
{"query": {"match": {"address.t1": "女孩"}}
}
GET /index_test/_search
{"query": {"match_phrase": {"address": "天宫院"}}
}
GET index_test/_search
{"query": {"bool": {"filter": {"range": {"count": {"gt":0,"lt": 2}}}}}
}
PUT /index_test3
{"mappings": {"properties": {"id":{"type": "long"},"time":{"type": "date","format":"yyyy/MM/dd HH:mm:ss||yyyy/MM/dd||epoch_millis"}}}
}
插入数据,自己修改id和时间多插入几条
put index_test3/_doc/5
{
"id":5,
"time":"2022/07/12 23:59:59"
}
查询
GET index_test3/_search
{"size": 10, "query": {"range": {"time": {"gte": "2022/08/14 09:37:00","lte": "2022/12/14 09:40:00"}}}
}
GET index_test/_search
{"query": {"bool": {"must": [{"match": {"address": "天宫院"}},{"match": { "count": "2"}}]}}
}
GET index_test/_search
{"query": {"bool": {"should": [{ "bool": {"must": [{"match": {"address": "天宫院"}},{"match": { "count": "2"}}]}},{ "bool": {"must": [{"match": {"address": "天宫院"}},{"match": { "count": "1"}}]}}]}}
}
ps:校正匹配分词,当一个单词都无法准确匹配,es 通过一种算法对非常接近的单词也给与一定的评分,能够查询出来,但是消耗更多的性能。
GET /index_test/_search
{"query": {"fuzzy": {"name": "天"}}
}
GET /index_test/_search
{"query": {"match": {"address": "天宫院"}},"post_filter": {"term": {"count": "2"}}
}
ps:分词器过滤在match里面不生效,在filter生效。比如这里filter的name属性输入"李四",查不出"李四"的数据。但是输入"李",就可以查出"李四"的数据。因为"李四"分词后,不存在"李四"这个词。
GET index_test/_search
{"query": {"bool": {"filter": [{"term": {"name": "李"}},{"term":{"count": 2}}],"must": {"match": {"address": "天宫院"}}}}
}
GET index_test/_search
{"query":{"match": {"address":"天宫院"}}, "sort": [{"count": {"order": "desc"}}]
}
GET index_test/_search
{"query": { "match_all": {} },"from": 0,"size": 2
}
GET index_test/_search
{"query": { "match_all": {} },"_source": ["address", "count"]
}
GET index_test/_search
{"aggs": {"groupby_actor": {"terms": {"field": "count"}}}
}
GET index_test/_search
{ "aggs": {"groupby_actor_id": {"terms": {"field": "count" ,"order": {"avg_score": "asc"}},"aggs": {"avg_score":{"avg": {"field": "count" }}}} }
}
ps:如果已存在id则报错(新增Document的时候,如果index不存在,则自动新增,副本和分片都为1)
put index_test/_create/4
{
"address":"天宫院",
"count":2
}
ps:修改时候为全量替换
put index_test/_doc/1
{
"name":"李四",
"address":"北京亦庄"
}
ps:修改时候只修改部分
POST /index_test/_doc/1/_update
{"doc": {"name":"李四111"}
}
DELETE /index_test/_doc/1
GET index_test/_analyze
{ "text": "我是中国人"
}
GET index_test/_analyze
{ "analyzer": "ik_smart", "text": "我是中国人"
}
GET index_test/_analyze
{ "analyzer": "ik_max_word", "text": "我是中国人"
}
vi /home/es/elasticsearch-7.6.2/plugins/analysis-ik/config/extra_main.dic
ps:同一个属性,第一次用了什么类型,后面默认就什么类型,其他类型会报错
GET index_test/_mapping
GET index_test/_search
{"query": {"bool": {"must": [{"match": {"address": "天宫院"}},{"match": { "count": "2"}}]}},"highlight":{"fields": {"address":{"fragment_size": 1,"number_of_fragments" : 1}},"pre_tags":"","post_tags": ""}
}