elasticsearch kibana简单查询讲解
一、简单的CRUD操作
1、添加
PUT/index/type/id
{
"json数据"
}
2、查询
GET/index/type/id
3、修改
POST/index/type/id/_update
{
"doc":{
"FIELD":"值"
}
}
4、删除
DELETE/index/type/id
二、搜索
搜索可以分成六大类
- 1、querystringsearch
- 2、queryDSL
- 3、queryfilter
- 4、full-textsearch
- 5、phrasesearch
- 6、highlightsearch
1、querystringsearch
搜索全部:GETsupplier/user/_search
{
"took":2,
"timed_out":false,
"_shards":{
"total":5,
"successful":5,
"failed":0
},
"hits":{
"total":3,
"max_score":1,
"hits":[
{
"_index":"supplier",
"_type":"user",
"_id":"2",
"_score":1,
"_source":{
"name":"lisi",
"age":26,
"address":"beijingtongzhou",
"price":10000,
"dept":[
"kaifabu"
]
}
},
{
"_index":"supplier",
"_type":"user",
"_id":"1",
"_score":1,
"_source":{
"name":"zhangsan",
"age":30,
"address":"beijingchangchunjie",
"price":15000,
"dept":[
"kaifabu",
"yanfabu"
]
}
},
{
"_index":"supplier",
"_type":"user",
"_id":"3",
"_score":1,
"_source":{
"name":"wangwu",
"age":26,
"address":"beijingtongzhouyunhemingzhu",
"price":13000,
"dept":[
"kaifabu"
]
}
}
]
}
}
took:耗费了几毫秒
timed_out:是否超时,这里是没有
_shards:数据拆成了5个分片,所以对于搜索请求,会打到所有的primaryshard(或者是它的某个replicashard也可以)
hits.total:查询结果的数量,3个document
hits.max_score:score的含义,就是document对于一个search的相关度的匹配分数,越相关,就越匹配,分数也高
hits.hits:包含了匹配搜索的document的详细数据
2、queryDSL
查询所有
GETsupplier/user/_search
{
"query":{"match_all":{}}
}
查询全部并且排序
GETsuppluer/user/_search
{
"query":{
"match_all":{}
}
,"sort":[
{
"price":{
"order":"desc"
}
}
]
}
分页查询
GETsupplier/user/_search
{
"query":{"match_all":{}},
"from":1,
"size":1
}
指定要查询显示的field
GETsupplier/user/_search
{
"query":{"match_all":{}},
"_source":["name","price"]
}
3、queryfilter
搜索name为‘lisi'并且price大于1500的
GETsupplier/user/_search
{
"query":{
"bool":{
"must":{
"match":{
"name":"lisi"
}
},
"filter":{
"range":{
"price":{"gt":1500}
}
}
}
}
}
4、full-textsearch(全文检索)
address这个字段,会先被拆解,建立倒排索引
GET/ecommerce/product/_search
{
"query":{
"match":{
"address":"beijing"
}
}
}
5、phrasesearch(短语搜索)
跟全文检索相对应,相反,全文检索会将输入的搜索串拆解开来,去倒排索引里面去一一匹配,只要能匹配上任意一个拆解后的单词,就可以作为结果返回
phrasesearch,要求输入的搜索串,必须在指定的字段文本中,完全包含一模一样的,才可以算匹配,才能作为结果返回
GET/ecommerce/product/_search
{
"query":{
"match_phrase":{
"address":"beijing"
}
}
}
6、highlightsearch(高亮搜索结果)
GET/ecommerce/product/_search
{
"query":{
"match":{
"address":"beijing"
}
},
"highlight":{
"fields":{
"address":{}
}
}
}
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接