全球今头条!总结ElasticSearch基本操作!非常详细!

时间:2022-12-07 16:44:52       来源:转载

索引

创建索引 对比关系型数据库,创建索引就等同创建数据库
PUT请求  http://127.0.0.1:9200/shopping
登录后复制
查询索引
GET请求  http://127.0.0.1:9200/shopping
登录后复制
查询所有索引
GET请求  http://127.0.0.1:9200/_cat/indices?v
登录后复制
删除索引
DELETE请求  http://127.0.0.1:9200/shopping
登录后复制

文档

索引已经创建好了,接下来我们创建文档,并添加数据。这里的文档可以类比为关系型数据库中的表数据,添加的数据格式为JSON格式


(资料图)

创建文档

POST请求  http://127.0.0.1:9200/shopping/_doc #写法一  http://127.0.0.1:9200/shopping/_create # 写法二  {"name":"商品"}
登录后复制
PUT请求,主键必须幂等性  http://127.0.0.1:9200/shopping/_doc/1001 #写法一  http://127.0.0.1:9200/shopping/_create/1002 # 写法二  {"name":"商品"}
登录后复制
POST请求 ,创建自定义id  http://127.0.0.1:9200/shopping/_doc/1001
登录后复制

主键查询

GET请求  http://127.0.0.1:9200/shopping/_doc/1001
登录后复制

全查询

GET请求  http://127.0.0.1:9200/shopping/_search
登录后复制

全量修改

PUT请求  http://127.0.0.1:9200/shopping/_doc/1001  {"name":"商品"}
登录后复制

局部修改

POST请求  http://127.0.0.1:9200/shopping/_update/1001  {"doc":{"name":"局部修改商品"}}
登录后复制

删除

DELETE请求  http://127.0.0.1:9200/shopping/_doc/1001
登录后复制

查询

条件查询

GET请求,方法一  http://127.0.0.1:9200/shopping/_search?q=category:小米  http://127.0.0.1:9200/shopping/_search?q=name:商品
登录后复制
GET请求,方法二(推荐)  http://127.0.0.1:9200/shopping/_search  {      "query":{          "match":{              "category":"小米"          }      }  }
登录后复制

全量查询

GET请求  http://127.0.0.1:9200/shopping/_search  {      "query":{          "match_all":{          }      }  }
登录后复制

分页查询(from,size)

GET请求  http://127.0.0.1:9200/shopping/_search  {      "query":{          "match_all":{          }      },      "from":0,#起始位置/偏移量 ,公式:(页码-1)* 每页数据条数      "size":10,#每页查询10条  }
登录后复制

指定field分页查询 (_source)

GET请求  http://127.0.0.1:9200/shopping/_search  {      "query":{          "match_all":{          }      },      "from":0,#起始位置/偏移量 ,公式:(页码-1)* 每页数据条数      "size":10,#每页查询10条      "_source":["title"]  }
登录后复制

查询排序(sort)

GET请求  http://127.0.0.1:9200/shopping/_search  {      "query":{          "match_all":{          }      },      "from":0,#起始位置/偏移量 ,公式:(页码-1)* 每页数据条数      "size":10,#每页查询10条      "_source":["title"],      "sort":{          "price":{              "order":"desc"          }      }  }
登录后复制

多条件查询

and查询(must)

GET请求  http://127.0.0.1:9200/shopping/_search  {      "query":{          "bool":{              "must":[                   {                      "match":{                          "category":"小米"                      }                  },                  {                      "match":{                          "price":1999.00                      }                  }              ]          }      }  }
登录后复制

or查询(should)

GET请求  http://127.0.0.1:9200/shopping/_search  {      "query":{          "bool":{              "should":[                   {                      "match":{                          "category":"小米"                      }                  },                  {                      "match":{                          "price":1999.00                      }                  }              ]          }      }  }
登录后复制

范围查询(filter,range)

GET请求  http://127.0.0.1:9200/shopping/_search  {      "query":{          "bool":{              "should":[                  {                      "match":{                          "category":"小米"                      }                  },                  {                      "match":{                          "price":1999.00                      }                  }              ],              "filter":{                  "range":{                      "price":{                          "gt":5000                      }                  }              }          }      }  }
登录后复制

全文检索匹配(分词)(match)

GET请求  http://127.0.0.1:9200/shopping/_search  {      "query":{          "match":{              "category": "小华"          }      }  }
登录后复制

完全匹配(match_phrase)

GET请求  http://127.0.0.1:9200/shopping/_search  {      "query":{          "match_phrase":{              "category": "小华"          }      }  }
登录后复制

高亮查询 (hightlight,对结果加html标签)

GET请求  http://127.0.0.1:9200/shopping/_search  {      "query":{          "match_phrase":{              "category": "小华"          }      },      "hightlight":{          "fields":{              "category":{}          }      }  }
登录后复制

聚合查询

返回统计数据和原始数据

GET请求  http://127.0.0.1:9200/shopping/_search  {       "aggs":{ #聚合操作          "price_group":{ #名称,随意起名              "terms":{ #分组                  "field":"price" #分组字段              }          }      },  }
登录后复制

关闭原始数据(size)

GET请求  http://127.0.0.1:9200/shopping/_search      {       "aggs":{ #聚合操作          "price_group":{ #名称,随意起名              "terms":{ #分组                  "field":"price" #分组字段              }          }      },      "size":0  }
登录后复制

平均值

GET请求  http://127.0.0.1:9200/shopping/_search      {       "aggs":{ #聚合操作          "price_avg":{ #名称,随意起名              "age":{ #平均值                  "field":"price" #分组字段              }          }      },      "size":0  }
登录后复制

映射关系

创建映射

PUT请求  http://127.0.0.1:9200/user/_mapping  {       "properties":{          "name":{              "type":"text", #全文检索分词查询              "index":true          },          "sex":{              "type":"keyword",#完全查询              "index":true          },          "tel":{              "type":"keyword",#不能查询              "index":false          }      }  }
登录后复制

查询映射

GET请求  http://127.0.0.1:9200/user/_mapping
登录后复制

增加数据

PUT请求  http://127.0.0.1:9200/user/_create/1001  {      name:"小米",      sex:"男的",      tel:"10010"  }
登录后复制

查询数据

GET请求  http://127.0.0.1:9200/user/_search  {      "query":{          "match": {              name:"小"          }      }  }
登录后复制
GET请求  http://127.0.0.1:9200/user/_search  {      "query":{          "match": {              sex:"男" #查询不到,必须输入男的          }      }  }
登录后复制
#不支持查询  GET请求  http://127.0.0.1:9200/user/_search  {      "query":{          "match": {              tel:"10010"           }      }  }
登录后复制

以上就是总结ElasticSearch基本操作!非常详细!的详细内容,更多请关注php中文网其它相关文章!

关键词: 起始位置 原始数据 全文检索