好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

elasticsearch kibana简单查询讲解

一、简单的crud操作

1、添加

?

1

2

3

4

put /index/type/id

{

  "json数据"

}

2、查询

?

1

get /index/type/id

3、修改

?

1

2

3

4

5

6

post /index/type/id/_update

{

  "doc" : {

   "field" : "值"

  }

}

4、删除

?

1

delete /index/type/id

二、搜索

搜索可以分成六大类

1、query string search 2、query dsl 3、query filter 4、full-text search 5、phrase search 6、highlight search

1、query string search

搜索全部:get supplier/user/_search

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

{

  "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" : "bei jing tong zhou" ,

      "price" : 10000 ,

      "dept" : [

       "kaifabu"

      ]

     }

    },

    {

     "_index" : "supplier" ,

     "_type" : "user" ,

     "_id" : "1" ,

     "_score" : 1 ,

     "_source" : {

      "name" : "zhangsan" ,

      "age" : 30 ,

      "address" : "bei jing chang chun jie" ,

      "price" : 15000 ,

      "dept" : [

       "kaifabu" ,

       "yanfabu"

      ]

     }

    },

    {

     "_index" : "supplier" ,

     "_type" : "user" ,

     "_id" : "3" ,

     "_score" : 1 ,

     "_source" : {

      "name" : "wangwu" ,

      "age" : 26 ,

      "address" : "bei jing tong zhou yun he ming zhu" ,

      "price" : 13000 ,

      "dept" : [

       "kaifabu"

      ]

     }

    }

   ]

  }

}

took:耗费了几毫秒

timed_out:是否超时,这里是没有

_shards:数据拆成了5个分片,所以对于搜索请求,会打到所有的primary shard(或者是它的某个replica shard也可以)

hits.total:查询结果的数量,3个document

hits.max_score:score的含义,就是document对于一个search的相关度的匹配分数,越相关,就越匹配,分数也高

hits.hits:包含了匹配搜索的document的详细数据

2、query dsl

查询所有

?

1

2

3

4

get supplier/user/_search

{

  "query" : { "match_all" : {} }

}

查询全部并且排序

?

1

2

3

4

5

6

7

8

9

10

11

12

13

get suppluer/user/_search

{

  "query" : {

   "match_all" : {}

  }

  , "sort" : [

   {

    "price" : {

     "order" : "desc"

    }

   }

  ]

}

分页查询

?

1

2

3

4

5

6

get supplier/user/_search

{

  "query" : { "match_all" : {} },

  "from" : 1 ,

  "size" : 1

}

指定要查询显示的field

?

1

2

3

4

5

get supplier/user/_search

{

  "query" : { "match_all" : {} },

  "_source" : [ "name" , "price" ]

}

3、query filter

搜索name为‘lisi'并且price大于1500的

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

get supplier/user/_search

{

   "query" : {

     "bool" : {

       "must" : {

         "match" : {

           "name" : "lisi"

         }

       },

       "filter" : {

         "range" : {

           "price" : { "gt" : 1500 }

         }

       }

     }

   }

}

4、full-text search(全文检索)

address这个字段,会先被拆解,建立倒排索引

?

1

2

3

4

5

6

7

8

get /ecommerce/product/_search

{

   "query" : {

     "match" : {

       "address" : "bei jing"

     }

   }

}

5、phrase search(短语搜索)

跟全文检索相对应,相反,全文检索会将输入的搜索串拆解开来,去倒排索引里面去一一匹配,只要能匹配上任意一个拆解后的单词,就可以作为结果返回

phrase search,要求输入的搜索串,必须在指定的字段文本中,完全包含一模一样的,才可以算匹配,才能作为结果返回

?

1

2

3

4

5

6

7

8

get /ecommerce/product/_search

{

   "query" : {

     "match_phrase" : {

       "address" : "bei jing"

     }

   }

}

6、highlight search(高亮搜索结果)

?

1

2

3

4

5

6

7

8

9

10

11

12

13

get /ecommerce/product/_search

{

   "query" : {

     "match" : {

       "address" : "bei jing"

     }

   },

   "highlight" : {

     "fields" : {

       "address" : {}

     }

   }

}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接

原文链接:https://blog.csdn.net/qq_37465151/article/details/72673479

查看更多关于elasticsearch kibana简单查询讲解的详细内容...

  阅读:22次