当前位置:   article > 正文

Elasticsearch-索引、文档、查询DSL_dsl 查看某个前缀索引

dsl 查看某个前缀索引

Elasticsearch入门

Elasticsearch 的官方地址:https://www.elastic.co/cn/

Elasticsearch最新的版本是8.1.3,我们选择7.8.0版本

下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch

Elasticsearch分为Linux和Windows版本,基于我们主要学习的是Elasticsearch的Java客户端的使

用,所以使用的是安装较为简便的Windows版本。

Windows版的Elasticsearch的安装很简单,解压即安装完毕,解压后的Elasticsearch的目录结构如

解压后,进入 bin文件目录,点击elasticsearch.bat文件启动ES服务

 

注意:9300端口为Elasticsearch集群间组件的通信端口,9200端口为浏览器访问的http协议

RESTful  端口。

打开浏览器(推荐使用谷歌浏览器),输入地址:http://localhost:9200,测试结果


附加说明:


Elasticsearch基本操作

数据格式

Elasticsearch是面向文档型数据库,一条数据在这里就是一个文档。为了方便大家理解,

我们将Elasticsearch里存储文档数据和关系型数据库MySQL存储数据的概念进行一个类比

ES里的Index可以看做一个库,而Types相当于表,Documents 则相当于表的行。

这里Types的概念已经被逐渐弱化,Elasticsearch 6.X 中,一个 index 下已经只能包含一个

type,Elasticsearch 7.X 中, Type 的概念已经被删除了。

注意:ES 7.x之后,type已经被淘汰了,其他的没变。只要玩ES,那么这个图就要牢牢地记在自

己脑海里,后续的名词解释不再过多说明,就是操作这幅图中的东西。


索引操作

1)  创建索引

对比关系型数据库,创建索引就等同于创建数据库

在Postman中,向ES服务器发PUT请求:http://127.0.0.1:9200/shopping

  1. {
  2. "acknowledged"【响应结果】: true, # true 操作成功
  3. "shards_acknowledged"【分片结果】: true, # 分片操作成功
  4. "index"【索引名称】: "shopping"
  5. }
  6. # 注意:创建索引库的分片数默认1片,在7.0.0之前的Elasticsearch版本中,默认5

如果重复添加索引,会返回错误信息

2)  查看所有索引

在Postman中,向ES服务器发GET请求:http://127.0.0.1:9200/_cat/indices?v

这里请求路径中的_cat 表示查看的意思,indices表示索引,所以整体含义就是查看当前ES

服务器中的所有索引,就好像 MySQL 中的show tables的感觉

3)  查看单个索引

在Postman中,向ES服务器发GET请求:http://127.0.0.1:9200/shopping

查看索引向 ES 服务器发送的请求路径和创建索引是一致的。但是 HTTP 方法不一致。这里

可以体会一下 RESTful 的意义。

 

  1. {
  2. "shopping"【索引名】: {
  3. "aliases"【别名】: {
  4. },
  5. "mappings"【映射】: {
  6. },
  7. "settings"【设置】: {
  8. "index"【设置-索引】: {
  9. "creation_date"【设置-索引-创建时间】: "1614265373911",
  10. "number_of_shards"【设置-索引-主分片数量】: "1",
  11. "number_of_replicas"【设置-索引-副分片数量】: "1",
  12. "uuid"【设置-索引-唯一标识】: "eI5wemRERTumxGCc1bAk2A",
  13. "version"【设置-索引-版本】: {
  14. "created": "7080099"
  15. },
  16. "provided_name"【设置-索引-名称】: "shopping"
  17. }
  18. }
  19. }
  20. }

4)  删除索引

在Postman中,向ES服务器发DELETE请求:http://127.0.0.1:9200/shopping

重新访问索引时,服务器返回响应:


文档操作

1)  创建文档

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

据库中的表数据,添加的数据格式为JSON格式

在Postman中,向ES服务器发POST请求:http://127.0.0.1:9200/shopping/phone

此处发送请求的方式必须为POST,不能是PUT,否则会发生错误

  1. {
  2. "_index"【索引】: "shopping",
  3. "_type"【类型-文档】: "phone",
  4. "_id"【唯一标识】: "Xhsa2ncBlvF_7lxyCE9G",#可以类比为MySQL中的主键,随机生成"_version"【版本】: 1,
  5. "result"【结果】: "created",#这里的create表示创建成功
  6. "_shards"【分片】: {
  7. "total"【分片-总数】: 2,
  8. "successful"【分片-成功】: 1,
  9. "failed"【分片-失败】: 0
  10. },
  11. "_seq_no": 0,
  12. "_primary_term": 1
  13. }

上面的数据创建后,由于没有指定数据唯一性标识(ID),默认情况下,ES 服务器会随机

生成一个。

如果想要自定义唯一性标识,需要在创建时指定:http://127.0.0.1:9200/shopping/phone/1 

此处需要注意:如果增加数据时明确数据主键,那么请求方式也可以为 PUT

2)  查看文档

查看文档时,需要指明文档的唯一性标识,类似于MySQL中数据的主键查询

在Postman中,向ES服务器发GET请求:http://127.0.0.1:9200/shopping/phone/1

  1. {
  2. "_index"【索引】: "shopping",
  3. "_type"【文档类型】: "phone",
  4. "_id": "1",
  5. "_version": 2,
  6. "_seq_no": 2,
  7. "_primary_term": 2,
  8. "found"【查询结果】: true,#true表示查找到,false表示未查找到
  9. "_source"【文档源信息】: {
  10. "title": "小米手机",
  11. "category": "小米",
  12. "images": "http://www.xiaomi.com/xm.jpg",
  13. "price": 3999.00
  14. }
  15. }

3)  修改文档

和新增文档一样,输入相同的URL地址请求,如果请求体变化,会将原有的数据内容覆盖

在 Postman 中,向ES服务器发POST请求 :http://127.0.0.1:9200/shopping/phone/1

  1. {
  2. "_index": "shopping",
  3. "_type": "phone",
  4. "_id": "1",
  5. "_version"【版本】: 2,
  6. "result":【结果】 "updated",# updated 表示数据被更新
  7. "_shards": {
  8. "total": 2,
  9. "successful": 1,
  10. "failed": 0
  11. },
  12. "_seq_no": 2,
  13. "_primary_term": 1
  14. }

查询修改结果

 4)  修改字段

修改数据时,也可以只修改某一给条数据的局部信息

在Postman中,向ES服务器发POST请求 :http://127.0.0.1:9200/shopping/phone/1/_update

查询结果

5)  删除文档

删除一个文档不会立即从磁盘上移除,它只是被标记成已删除(逻辑删除)。

在Postman中,向ES服务器发DELETE请求 :http://127.0.0.1:9200/shopping/phone/1

  1. {
  2. "_index": "shopping",
  3. "_type": "phone",
  4. "_id": "1",
  5. "_version"【版本】: 4,#对数据的操作,都会更新版本
  6. "result"【结果】: "deleted",# deleted 表示数据被标记为删除
  7. "_shards": {
  8. "total": 2,
  9. "successful": 1,
  10. "failed": 0
  11. },
  12. "_seq_no": 4,
  13. "_primary_term": 1
  14. }

删除后再查询当前文档信息

如果删除一个并不存在的文档

  1. {
  2. "_index": "shopping",
  3. "_type": "phone",
  4. "_id": "222",
  5. "_version": 1,
  6. "result"【结果】: "not_found",# not_found 表示未查找到
  7. "_shards": {
  8. "total": 2,
  9. "successful": 1,
  10. "failed": 0
  11. },
  12. "_seq_no": 5,
  13. "_primary_term": 1
  14. }

6)  条件删除文档

一般删除数据都是根据文档的唯一性标识进行删除,实际操作时,也可以根据条件对多条数

据进行删除

首先分别增加多条数据

 

向ES服务器发POST请求:http://127.0.0.1:9200/shopping/_delete_by_query 

  1. {
  2. "took"【耗时】: 927,
  3. "timed_out"【是否超时】: false,
  4. "total"【总数】: 2,
  5. "deleted"【删除数量】: 2,
  6. "batches": 1,
  7. "version_conflicts": 0,
  8. "noops": 0,
  9. "retries": {
  10. "bulk": 0,
  11. "search": 0
  12. },
  13. "throttled_millis": 0,
  14. "requests_per_second": -1.0,
  15. "throttled_until_millis": 0,
  16. "failures": []
  17. }

映射操作

有了索引库,等于有了数据库中的 database

接下来就需要建索引库(index)中的映射了,类似于数据库(database)中的表结构(table)。

创建数据库表需要设置字段名称,类型,长度,约束等;索引库也一样,需要知道这个类型

下有哪些字段,每个字段有哪些约束信息,这就叫做映射(mapping)。

就相当于:在做mysql数据库中的表结构( 字段构建嘛:字段名、类型... )

1)  创建映射

在Postman中,向ES服务器发PUT请求:http://127.0.0.1:9200/student/_mapping

在创建映射前先创建student索引:http://127.0.0.1:9200/student

然后创建映射:http://127.0.0.1:9200/student/_mapping

  1. {
  2. "properties": {
  3. "name": {
  4. "type": "text",
  5. "index": true
  6. },
  7. "sex": {
  8. "type": "text",
  9. "index": false
  10. },
  11. "age": {
  12. "type": "long",
  13. "index": false
  14. }
  15. }
  16. }

2)  查看映射

在Postman 中,向ES服务器发GET 请求:http://127.0.0.1:9200/student/_mapping

3)  索引映射关联

在Postman中,向ES服务器发PUT请求:http://127.0.0.1:9200/student1

查询下http://127.0.0.1:9200/student1/_mapping,发现自动创建了索引student1和映射 

  


高级查询

Elasticsearch提供了基于JSON提供完整的查询DSL来定义查询

定义数据 :

  1. #POST/student/_doc/1001
  2. {
  3. "name": "zhangsan",
  4. "nickname": "zhangsan",
  5. "sex": "男",
  6. "age": 30
  7. }
  8. #POST/student/_doc/1002
  9. {
  10. "name": "lisi",
  11. "nickname": "lisi",
  12. "sex": "男",
  13. "age": 20
  14. }
  15. #POST/student/_doc/1003
  16. {
  17. "name": "wangwu",
  18. "nickname": "wangwu",
  19. "sex": "女",
  20. "age": 40
  21. }
  22. #POST/student/_doc/1004
  23. {
  24. "name": "zhangsan1",
  25. "nickname": "zhangsan1",
  26. "sex": "女",
  27. "age": 50
  28. }
  29. #POST/student/_doc/1005
  30. {
  31. "name": "zhangsan2",
  32. "nickname": "zhangsan2",
  33. "sex": "女",
  34. "age": 30
  35. }

 

 

 

 

1)  查询所有文档

在Postman中,向ES服务器发GET请求:http://127.0.0.1:9200/student/_search

  1. {
  2. "took": 3,
  3. "timed_out": false,
  4. "_shards": {
  5. "total": 1,
  6. "successful": 1,
  7. "skipped": 0,
  8. "failed": 0
  9. },
  10. "hits": {
  11. "total": {
  12. "value": 5,
  13. "relation": "eq"
  14. },
  15. "max_score": 1.0,
  16. "hits": [
  17. {
  18. "_index": "student",
  19. "_type": "_doc",
  20. "_id": "1001",
  21. "_score": 1.0,
  22. "_source": {
  23. "name": "zhangsan",
  24. "nickname": "zhangsan",
  25. "sex": "男",
  26. "age": 30
  27. }
  28. },
  29. {
  30. "_index": "student",
  31. "_type": "_doc",
  32. "_id": "1002",
  33. "_score": 1.0,
  34. "_source": {
  35. "name": "lisi",
  36. "nickname": "lisi",
  37. "sex": "男",
  38. "age": 20
  39. }
  40. },
  41. {
  42. "_index": "student",
  43. "_type": "_doc",
  44. "_id": "1003",
  45. "_score": 1.0,
  46. "_source": {
  47. "name": "wangwu",
  48. "nickname": "wangwu",
  49. "sex": "女",
  50. "age": 40
  51. }
  52. },
  53. {
  54. "_index": "student",
  55. "_type": "_doc",
  56. "_id": "1004",
  57. "_score": 1.0,
  58. "_source": {
  59. "name": "zhangsan1",
  60. "nickname": "zhangsan1",
  61. "sex": "女",
  62. "age": 50
  63. }
  64. },
  65. {
  66. "_index": "student",
  67. "_type": "_doc",
  68. "_id": "1005",
  69. "_score": 1.0,
  70. "_source": {
  71. "name": "zhangsan2",
  72. "nickname": "zhangsan2",
  73. "sex": "女",
  74. "age": 30
  75. }
  76. }
  77. ]
  78. }
  79. }
  1. {
  2. "query": {
  3. "match_all": {
  4. }
  5. }
  6. }
  7. #"query":这里的query代表一个查询对象,里面可以有不同的查询属性
  8. #"match_all":查询类型,例如:match_all(代表查询所有),match,term,range等等
  9. #{查询条件}:查询条件会根据类型的不同,写法也有差异

  1. {
  2. "took": 4,
  3. "timed_out": false,
  4. "_shards": {
  5. "total": 1,
  6. "successful": 1,
  7. "skipped": 0,
  8. "failed": 0
  9. },
  10. "hits": {
  11. "total": {
  12. "value": 5,
  13. "relation": "eq"
  14. },
  15. "max_score": 1.0,
  16. "hits": [
  17. {
  18. "_index": "student",
  19. "_type": "_doc",
  20. "_id": "1001",
  21. "_score": 1.0,
  22. "_source": {
  23. "name": "zhangsan",
  24. "nickname": "zhangsan",
  25. "sex": "男",
  26. "age": 30
  27. }
  28. },
  29. {
  30. "_index": "student",
  31. "_type": "_doc",
  32. "_id": "1002",
  33. "_score": 1.0,
  34. "_source": {
  35. "name": "lisi",
  36. "nickname": "lisi",
  37. "sex": "男",
  38. "age": 20
  39. }
  40. },
  41. {
  42. "_index": "student",
  43. "_type": "_doc",
  44. "_id": "1003",
  45. "_score": 1.0,
  46. "_source": {
  47. "name": "wangwu",
  48. "nickname": "wangwu",
  49. "sex": "女",
  50. "age": 40
  51. }
  52. },
  53. {
  54. "_index": "student",
  55. "_type": "_doc",
  56. "_id": "1004",
  57. "_score": 1.0,
  58. "_source": {
  59. "name": "zhangsan1",
  60. "nickname": "zhangsan1",
  61. "sex": "女",
  62. "age": 50
  63. }
  64. },
  65. {
  66. "_index": "student",
  67. "_type": "_doc",
  68. "_id": "1005",
  69. "_score": 1.0,
  70. "_source": {
  71. "name": "zhangsan2",
  72. "nickname": "zhangsan2",
  73. "sex": "女",
  74. "age": 30
  75. }
  76. }
  77. ]
  78. }
  79. }

注释:

  1. {
  2. "took"【查询花费时间,单位毫秒】: 4,
  3. "timed_out"【是否超时】: false,
  4. "_shards"【分片信息】: {
  5. "total"【总数】: 1,
  6. "successful"【成功】: 1,
  7. "skipped"【忽略】: 0,
  8. "failed"【失败】: 0
  9. },
  10. "hits"【搜索命中结果】: {
  11. "total"【搜索条件匹配的文档总数】: {
  12. "value"【总命中计数的值】: 5,
  13. "relation"【计数规则】: "eq" # eq 表示计数准确, gte 表示计数不准确
  14. },
  15. "max_score"【匹配度分值】: 1.0,
  16. "hits"【命中结果集合】: [
  17. {
  18. "_index": "student",
  19. "_type": "_doc",
  20. "_id": "1001",
  21. "_score": 1.0,
  22. "_source": {
  23. "name": "zhangsan",
  24. "nickname": "zhangsan",
  25. "sex": "男",
  26. "age": 30
  27. }
  28. },
  29. {
  30. "_index": "student",
  31. "_type": "_doc",
  32. "_id": "1002",
  33. "_score": 1.0,
  34. "_source": {
  35. "name": "lisi",
  36. "nickname": "lisi",
  37. "sex": "男",
  38. "age": 20
  39. }
  40. },
  41. {
  42. "_index": "student",
  43. "_type": "_doc",
  44. "_id": "1003",
  45. "_score": 1.0,
  46. "_source": {
  47. "name": "wangwu",
  48. "nickname": "wangwu",
  49. "sex": "女",
  50. "age": 40
  51. }
  52. },
  53. {
  54. "_index": "student",
  55. "_type": "_doc",
  56. "_id": "1004",
  57. "_score": 1.0,
  58. "_source": {
  59. "name": "zhangsan1",
  60. "nickname": "zhangsan1",
  61. "sex": "女",
  62. "age": 50
  63. }
  64. },
  65. {
  66. "_index": "student",
  67. "_type": "_doc",
  68. "_id": "1005",
  69. "_score": 1.0,
  70. "_source": {
  71. "name": "zhangsan2",
  72. "nickname": "zhangsan2",
  73. "sex": "女",
  74. "age": 30
  75. }
  76. }
  77. ]
  78. }
  79. }

2)  匹配查询

match匹配类型查询,会把查询条件进行分词,然后进行查询,多个词条之间是or的关系

在Postman中,向ES服务器发GET请求:http://127.0.0.1:9200/student/_search

注意是match不是match_all

  1. {
  2. "took": 38,
  3. "timed_out": false,
  4. "_shards": {
  5. "total": 1,
  6. "successful": 1,
  7. "skipped": 0,
  8. "failed": 0
  9. },
  10. "hits": {
  11. "total": {
  12. "value": 1,
  13. "relation": "eq"
  14. },
  15. "max_score": 1.3862942,
  16. "hits": [
  17. {
  18. "_index": "student",
  19. "_type": "_doc",
  20. "_id": "1001",
  21. "_score": 1.3862942,
  22. "_source": {
  23. "name": "zhangsan",
  24. "nickname": "zhangsan",
  25. "sex": "男",
  26. "age": 30
  27. }
  28. }
  29. ]
  30. }
  31. }

3)  字段匹配查询

multi_match与match类似,不同的是它可以在多个字段中查询。

在Postman中,向ES服务器发GET 请求:http://127.0.0.1:9200/student/_search

4)  关键字精确查询

term查询,精确的关键词匹配查询,不对查询条件进行分词。

在Postman中,向ES服务器发GET请求:http://127.0.0.1:9200/student/_search

5)  多关键字精确查询

terms查询和term查询一样,但它允许你指定多值进行匹配。

如果这个字段包含了指定值中的任何一个值,那么这个文档满足条件,类似于mysql的in

在Postman中,向ES服务器发GET请求:http://127.0.0.1:9200/student/_search

  1. {
  2. "took": 24,
  3. "timed_out": false,
  4. "_shards": {
  5. "total": 1,
  6. "successful": 1,
  7. "skipped": 0,
  8. "failed": 0
  9. },
  10. "hits": {
  11. "total": {
  12. "value": 2,
  13. "relation": "eq"
  14. },
  15. "max_score": 1.0,
  16. "hits": [
  17. {
  18. "_index": "student",
  19. "_type": "_doc",
  20. "_id": "1001",
  21. "_score": 1.0,
  22. "_source": {
  23. "name": "zhangsan",
  24. "nickname": "zhangsan",
  25. "sex": "男",
  26. "age": 30
  27. }
  28. },
  29. {
  30. "_index": "student",
  31. "_type": "_doc",
  32. "_id": "1002",
  33. "_score": 1.0,
  34. "_source": {
  35. "name": "lisi",
  36. "nickname": "lisi",
  37. "sex": "男",
  38. "age": 20
  39. }
  40. }
  41. ]
  42. }
  43. }

6)  指定查询字段

默认情况下,Elasticsearch在搜索的结果中,会把文档中保存在_source的所有字段都返回。

如果我们只想获取其中的部分字段,我们可以添加_source 的过滤

在Postman中,向ES服务器发GET请求 :http://127.0.0.1:9200/student/_search

  1. {
  2. "took": 18,
  3. "timed_out": false,
  4. "_shards": {
  5. "total": 1,
  6. "successful": 1,
  7. "skipped": 0,
  8. "failed": 0
  9. },
  10. "hits": {
  11. "total": {
  12. "value": 2,
  13. "relation": "eq"
  14. },
  15. "max_score": 1.0,
  16. "hits": [
  17. {
  18. "_index": "student",
  19. "_type": "_doc",
  20. "_id": "1001",
  21. "_score": 1.0,
  22. "_source": {
  23. "name": "zhangsan",
  24. "nickname": "zhangsan"
  25. }
  26. },
  27. {
  28. "_index": "student",
  29. "_type": "_doc",
  30. "_id": "1002",
  31. "_score": 1.0,
  32. "_source": {
  33. "name": "lisi",
  34. "nickname": "lisi"
  35. }
  36. }
  37. ]
  38. }
  39. }

7)  过滤字段

我们也可以通过:

includes:来指定想要显示的字段

excludes:来指定不想要显示的字段

在Postman中,向ES服务器发GET请求:http://127.0.0.1:9200/student/_search

  1. {
  2. "took": 6,
  3. "timed_out": false,
  4. "_shards": {
  5. "total": 1,
  6. "successful": 1,
  7. "skipped": 0,
  8. "failed": 0
  9. },
  10. "hits": {
  11. "total": {
  12. "value": 2,
  13. "relation": "eq"
  14. },
  15. "max_score": 1.0,
  16. "hits": [
  17. {
  18. "_index": "student",
  19. "_type": "_doc",
  20. "_id": "1001",
  21. "_score": 1.0,
  22. "_source": {
  23. "name": "zhangsan",
  24. "nickname": "zhangsan"
  25. }
  26. },
  27. {
  28. "_index": "student",
  29. "_type": "_doc",
  30. "_id": "1002",
  31. "_score": 1.0,
  32. "_source": {
  33. "name": "lisi",
  34. "nickname": "lisi"
  35. }
  36. }
  37. ]
  38. }
  39. }

  1. {
  2. "took": 10,
  3. "timed_out": false,
  4. "_shards": {
  5. "total": 1,
  6. "successful": 1,
  7. "skipped": 0,
  8. "failed": 0
  9. },
  10. "hits": {
  11. "total": {
  12. "value": 2,
  13. "relation": "eq"
  14. },
  15. "max_score": 1.0,
  16. "hits": [
  17. {
  18. "_index": "student",
  19. "_type": "_doc",
  20. "_id": "1001",
  21. "_score": 1.0,
  22. "_source": {
  23. "sex": "男",
  24. "age": 30
  25. }
  26. },
  27. {
  28. "_index": "student",
  29. "_type": "_doc",
  30. "_id": "1002",
  31. "_score": 1.0,
  32. "_source": {
  33. "sex": "男",
  34. "age": 20
  35. }
  36. }
  37. ]
  38. }
  39. }

8)  组合查询

`bool`把各种其它查询通过`must`(必须 )、`must_not`(必须不)、`should`(应该)的方

式进行组合

在Postman中,向ES服务器发GET请求:http://127.0.0.1:9200/student/_search

  1. {
  2. "query": {
  3. "bool": {
  4. "must": [{
  5. "match": {
  6. "name": "zhangsan"
  7. }
  8. }],
  9. "must_not": [{
  10. "match": {
  11. "age": "40"
  12. }
  13. }],
  14. "should": [{
  15. "match": {
  16. "sex": "男"
  17. }
  18. }]
  19. }
  20. }
  21. }

结果报错:"failed to create query: Cannot search on field [age] since it is not indexed.", 

老师文档上没报错,我一步步操作竟然报错,坑,我得排查排查

为什么报这个错?其实已经告知得很清楚了:

field [age] since it is not indexed 属性age不支持被检索

查询下映射:

为了验证正确性,我重新建了索引zhou和映射,设置的都是true

  1. #POST/zhou/_doc/1001
  2. {
  3. "name": "zhangsan",
  4. "nickname": "zhangsan",
  5. "sex": "男",
  6. "age": 30
  7. }
  8. #POST/zhou/_doc/1002
  9. {
  10. "name": "lisi",
  11. "nickname": "lisi",
  12. "sex": "男",
  13. "age": 20
  14. }
  15. #POST/zhou/_doc/1003
  16. {
  17. "name": "wangwu",
  18. "nickname": "wangwu",
  19. "sex": "女",
  20. "age": 40
  21. }
  22. #POST/zhou/_doc/1004
  23. {
  24. "name": "zhangsan1",
  25. "nickname": "zhangsan1",
  26. "sex": "女",
  27. "age": 50
  28. }
  29. #POST/zhou/_doc/1005
  30. {
  31. "name": "zhangsan2",
  32. "nickname": "zhangsan2",
  33. "sex": "女",
  34. "age": 30
  35. }

 测试ok:

  1. {
  2. "took": 457,
  3. "timed_out": false,
  4. "_shards": {
  5. "total": 1,
  6. "successful": 1,
  7. "skipped": 0,
  8. "failed": 0
  9. },
  10. "hits": {
  11. "total": {
  12. "value": 1,
  13. "relation": "eq"
  14. },
  15. "max_score": 2.261763,
  16. "hits": [
  17. {
  18. "_index": "zhou",
  19. "_type": "_doc",
  20. "_id": "1001",
  21. "_score": 2.261763,
  22. "_source": {
  23. "name": "zhangsan",
  24. "nickname": "zhangsan",
  25. "sex": "男",
  26. "age": 30
  27. }
  28. }
  29. ]
  30. }
  31. }

 实践出真理,尽信书不如无书呀!

基于ELK的ElasticSearch 7.8.x 技术整理1 - 基础语法篇 - 更新完毕 - 紫邪情 - 博客园

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号