前言
kibana作为ElasticSearch的视图,可以在界面上操作ElasticSearch的索引或者索引数据,本文是基于kibana8界面的,因为不同的版本界面有点差异
查看索引数据
进入kibana,然后点击左边菜单栏
然后点击
查看索引数据,具体界面为
创建索引
点击create index按钮,可以创建索引
输入索引名称,点击save就可以创建索引
查看索引数据
点击索引进入到界面
点击try in Console点击语法查询界面,其语法如下
_bulk
_bulk 操作 可以在单个请求中一次执行多个新增、修改、删除操作,使用这种方式可以极大的提升索引性能。
json
POST _bulk?pretty
{ "index" : { "_index" : "aaa" } }
{"name": "foo", "title": "bar"}
往索引aaa添加数据
_search查询数据
查询该索引下所有数据
bash
GET /aaa/_search
这个查询aaa索引所有数据
根据条件查询
match
json
{
"query": {
"match": {
"name": "张三"
}
}
}
该语法是查询索引数据中带有"张三"的数据,但是es采用的是倒排索引,也就是拆词,索引name中带有"张三"的数据,会被查出来 备注 如果要精准查询,可以在字段加个keyword
bash
GET /aaa/_search
{
"query": {
"match": {
"name.keyword": "张三"
}
}
}
查询结果为
must
must子句:文档必须匹配must查询条件
bash
GET /aaa/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "张三"
}
}
]
}
}
}
must_not
文档不能匹配must_not查询条件; 语法为
bash
GET /aaa/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "张三"
}
}
],
"must_not": [
{
"match": {
"title": "bar"
}
}
]
}
}
}
should
should子句:文档应该匹配should子句查询的一个或多个; 语法为
bash
GET /aaa/_search
{
"query": {
"bool": {
"should": [
{
"match": {
"name": "张三"
}
},
{
"match": {
"name": "asds"
}
}
]
}
}
}
可以理解为查询name包含张三或者asds,查询结果为
filter
根据类型过滤,如根据年龄过滤
bash
GET /aaa/_search
{
"query": {
"bool": {
"filter": [
{
"range": {
"age": {
"gte": 10,
"lte": 20
}
}
}
]
}
}
}
根据id查询
(1)根据id查询单个
bash
GET /aaa/_doc/1
(2)根据多个id取回多个文档
bash
GET /_mget
{
"docs" : [
{
"_index" : "aaa",
"_id" : 20
},
{
"_index" : "aaa",
"_id" : 1
}
]
}
保存数据
(1)指定主键
bash
PUT /aaa/_doc/20
{
"id": 20,
"name": "John",
"age": 20
}
指定文档的id为20
(2)随机生成主键id
bash
POST /aaa/_doc
{
"id": 20,
"name": "Joh1n",
"age": 20
}
更新数据
bash
PUT /aaa/_doc/20
{
"id": 20,
"name": "John20",
"age": 20
}
如果id=20存在就更新
总结
es是一个非常优秀的框架,在开发过程中,如果存在数据量过大的话,可以考虑一下用es存储