大学网站建设论文,如何查询网站备案进度查询,廊坊网站建设服务,株洲论坛目录
RESTful
数据格式
HTTP操作
索引操作
倒排索引
创建索引
查看所有索引
查看单个索引
删除索引
文档操作
创建文档
查看文档
编辑
全量修改
编辑局部修改
删除文档
条件删除文档
高级查询
条件查询
URL带参查询
请求体带参查询
带请求体方式的查…目录
RESTful
数据格式
HTTP操作
索引操作
倒排索引
创建索引
查看所有索引
查看单个索引
删除索引
文档操作
创建文档
查看文档
编辑
全量修改
编辑局部修改
删除文档
条件删除文档
高级查询
条件查询
URL带参查询
请求体带参查询
带请求体方式的查找所有内容
查询指定字段
分页查询
查询排序
多条件查询
范围查询
全文检索
完全匹配
高亮查询
聚合查询
映射操作
创建映射
查询映射 RESTful
REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。Web 应用程序最重要的 REST 原则是客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在请求之间的任何时间点重启客户端不会得到通知。此外无状态请求可以由任何可用服务器回答这十分适合云计算之类的环境。客户端可以缓存数据以改进性能。
在服务器端应用程序状态和功能可以分为各种资源。资源是一个有趣的概念实体它向客户端公开。资源的例子有应用程序对象、数据库记录、算法等等。每个资源都使用 URI(Universal Resource Identifier) 得到一个唯一的地址。所有资源都共享统一的接口以便在客户端和服务器之间传输状态。使用的是标准的 HTTP 方法比如 GET、 PUT、 POST 和DELETE。
在 REST 样式的 Web 服务中每个资源都有一个地址。资源本身都是方法调用的目标方法列表对所有资源都是一样的。这些方法都是标准方法包括 HTTP GET、 POST、PUT、 DELETE还可能包括 HEAD 和 OPTIONS。简单的理解就是如果想要访问互联网上的资源就必须向资源所在的服务器发出请求请求体中必须包含资源的网络路径 以及对资源进行的操作(增删改查)。
REST 样式的 Web 服务若有返回结果大多数以JSON字符串形式返回。
数据格式
ElasticSearch是面向文档型数据库一条数据就是一个文档将ElasticSearch里存储文档数据和MySQL存储数据的概念进行一个类比 ES里的Index可以看做一个库而Types相当于表Documents则相当于表的行
ES6.X中一个index下只能包含一个typeES7.X中Type的概念已被删除
6用JSON作为文档序列化的格式比如一条用户信息 HTTP操作
索引操作
倒排索引
正排索引传统 倒排索引 创建索引
对比关系型数据库创建索引就等同于创建数据库。
在 Postman 中向 ES 服务器发 PUT 请求 http://127.0.0.1:9200/shopping 请求后服务器返回响应 如果重复发 PUT 请求 http://127.0.0.1:9200/shopping 添加索引会返回错误信息 : 查看所有索引
在 Postman 中向 ES 服务器发 GET 请求 http://127.0.0.1:9200/_cat/indices?v 这里请求路径中的_cat 表示查看的意思 indices 表示索引所以整体含义就是查看当前 ES服务器中的所有索引就好像 MySQL 中的 show tables 的感觉服务器响应结果如下 : 查看单个索引 在 Postman 中向 ES 服务器发 GET 请求 http://127.0.0.1:9200/shopping 查看索引向ES服务器发送的请求路径和创建索引是一致的但是HTTP方法不一致这里可以体会一下RESTful的意义请求后服务器响应结果如下 删除索引
在 Postman 中向 ES 服务器发 DELETE 请求 http://127.0.0.1:9200/shopping 返回结果如下 重新访问索引时服务器返回响应索引不存在 文档操作
创建文档
假设索引已经创建好了接下来我们来创建文档并添加数据。这里的文档可以类比为关系型数据库中的表数据添加的数据格式为 JSON 格式
在 Postman 中向 ES 服务器发 POST 请求 http://127.0.0.1:9200/shopping/_doc
请求体JSON内容为 注意此处发送请求的方式必须为 POST不能是 PUT否则会发生错误。 服务器响应结果如下 上面的数据创建后由于没有指定数据唯一性标识ID默认情况下 ES 服务器会随机生成一个。
如果想要自定义唯一性标识需要在创建时指定 http://127.0.0.1:9200/shopping/_doc/1请求体JSON内容为 此处需要注意如果增加数据时明确数据主键那么请求方式也可以为 PUT。
查看文档
查看文档时需要指明文档的唯一性标识类似于 MySQL 中数据的主键查询
在 Postman 中向 ES 服务器发 GET 请求 http://127.0.0.1:9200/shopping/_doc/1 。 返回结果如下 查找不存在的内容向 ES 服务器发 GET 请求 http://127.0.0.1:9200/shopping/_doc/1001。
返回结果如下
{_index: shopping,_type: _doc,_id: 1001,found: false
}查看索引下所有数据向 ES 服务器发 GET 请求 http://127.0.0.1:9200/shopping/_search。
返回结果如下
{took: 133,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 2,relation: eq},max_score: 1,hits: [{_index: shopping,_type: _doc,_id: ANQqsHgBaKNfVnMbhZYU,_score: 1,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 3999}},{_index: shopping,_type: _doc,_id: 1,_score: 1,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 3999}}]}
}全量修改
和新增文档一样输入相同的 URL 地址请求如果请求体变化会将原有的数据内容覆盖
在 Postman 中向 ES 服务器发 POST 请求 http://127.0.0.1:9200/shopping/_doc/1
请求体JSON内容为: 修改成功后服务器响应结果 局部修改
修改数据时也可以只修改某一给条数据的局部信息
在 Postman 中向 ES 服务器发 POST 请求 http://127.0.0.1:9200/shopping/_update/1。
请求体JSON内容为: 返回结果如下 根据唯一性标识查询文档数据文档数据已经更新 删除文档
删除一个文档不会立即从磁盘上移除它只是被标记成已删除逻辑删除。
在 Postman 中向 ES 服务器发 DELETE 请求 http://127.0.0.1:9200/shopping/_doc/1 返回结果 删除后再查询当前文档信息 如果删除一个并不存在的文档 条件删除文档
一般删除数据都是根据文档的唯一性标识进行删除实际操作时也可以根据条件对多条数据进行删除
首先分别添加多条数据 向ES服务器发POST请求http://127.0.0.1:9200/shopping/_delete_by_query
请求体内容为 删除成功后服务器响应结果 高级查询
条件查询
假设有以下文档内容在 Postman 中向 ES 服务器发 GET请求 http://127.0.0.1:9200/shopping/_search
{took: 5,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 6,relation: eq},max_score: 1,hits: [{_index: shopping,_type: _doc,_id: ANQqsHgBaKNfVnMbhZYU,_score: 1,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 3999}},{_index: shopping,_type: _doc,_id: A9R5sHgBaKNfVnMb25Ya,_score: 1,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: BNR5sHgBaKNfVnMb7pal,_score: 1,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: BtR6sHgBaKNfVnMbX5Y5,_score: 1,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: B9R6sHgBaKNfVnMbZpZ6,_score: 1,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: CdR7sHgBaKNfVnMbsJb9,_score: 1,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}}]}
}URL带参查询
查找category为小米的文档在 Postman 中向 ES 服务器发 GET请求 http://127.0.0.1:9200/shopping/_search?qcategory:小米返回结果如下
{took: 94,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 3,relation: eq},max_score: 1.3862942,hits: [{_index: shopping,_type: _doc,_id: ANQqsHgBaKNfVnMbhZYU,_score: 1.3862942,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 3999}},{_index: shopping,_type: _doc,_id: A9R5sHgBaKNfVnMb25Ya,_score: 1.3862942,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: BNR5sHgBaKNfVnMb7pal,_score: 1.3862942,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}}]}
}上述为URL带参数形式查询这很容易让不善者心怀恶意或者参数值出现中文会出现乱码情况。为了避免这些情况我们可用使用带JSON请求体请求进行查询。
请求体带参查询
接下带JSON请求体还是查找category为小米的文档在 Postman 中向 ES 服务器发 GET请求 http://127.0.0.1:9200/shopping/_search附带JSON体如下
{query:{match:{category:小米}}
}返回结果如下
{took: 3,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 3,relation: eq},max_score: 1.3862942,hits: [{_index: shopping,_type: _doc,_id: ANQqsHgBaKNfVnMbhZYU,_score: 1.3862942,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 3999}},{_index: shopping,_type: _doc,_id: A9R5sHgBaKNfVnMb25Ya,_score: 1.3862942,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: BNR5sHgBaKNfVnMb7pal,_score: 1.3862942,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}}]}
}带请求体方式的查找所有内容
查找所有文档内容也可以这样在 Postman 中向 ES 服务器发 GET请求 http://127.0.0.1:9200/shopping/_search附带JSON体如下
{query:{match_all:{}}
}则返回所有文档内容
{took: 2,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 6,relation: eq},max_score: 1,hits: [{_index: shopping,_type: _doc,_id: ANQqsHgBaKNfVnMbhZYU,_score: 1,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 3999}},{_index: shopping,_type: _doc,_id: A9R5sHgBaKNfVnMb25Ya,_score: 1,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: BNR5sHgBaKNfVnMb7pal,_score: 1,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: BtR6sHgBaKNfVnMbX5Y5,_score: 1,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: B9R6sHgBaKNfVnMbZpZ6,_score: 1,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: CdR7sHgBaKNfVnMbsJb9,_score: 1,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}}]}
}查询指定字段
如果想查询指定字段在 Postman 中向 ES 服务器发 GET请求 http://127.0.0.1:9200/shopping/_search附带JSON体如下
{query:{match_all:{}},_source:[title]
}返回结果如下
{took: 5,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 6,relation: eq},max_score: 1,hits: [{_index: shopping,_type: _doc,_id: ANQqsHgBaKNfVnMbhZYU,_score: 1,_source: {title: 小米手机}},{_index: shopping,_type: _doc,_id: A9R5sHgBaKNfVnMb25Ya,_score: 1,_source: {title: 小米手机}},{_index: shopping,_type: _doc,_id: BNR5sHgBaKNfVnMb7pal,_score: 1,_source: {title: 小米手机}},{_index: shopping,_type: _doc,_id: BtR6sHgBaKNfVnMbX5Y5,_score: 1,_source: {title: 华为手机}},{_index: shopping,_type: _doc,_id: B9R6sHgBaKNfVnMbZpZ6,_score: 1,_source: {title: 华为手机}},{_index: shopping,_type: _doc,_id: CdR7sHgBaKNfVnMbsJb9,_score: 1,_source: {title: 华为手机}}]}
}分页查询
在 Postman 中向 ES 服务器发 GET请求 http://127.0.0.1:9200/shopping/_search附带JSON体如下
{query:{match_all:{}},from:0,size:2
}返回结果如下
{took: 1,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 6,relation: eq},max_score: 1,hits: [{_index: shopping,_type: _doc,_id: ANQqsHgBaKNfVnMbhZYU,_score: 1,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 3999}},{_index: shopping,_type: _doc,_id: A9R5sHgBaKNfVnMb25Ya,_score: 1,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}}]}
}查询排序
如果想通过排序查出价格最高的手机在 Postman 中向 ES 服务器发 GET请求 http://127.0.0.1:9200/shopping/_search附带JSON体如下
{query:{match_all:{}},sort:{price:{order:desc}}
}返回结果如下
{took: 96,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 6,relation: eq},max_score: null,hits: [{_index: shopping,_type: _doc,_id: ANQqsHgBaKNfVnMbhZYU,_score: null,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 3999},sort: [3999]},{_index: shopping,_type: _doc,_id: A9R5sHgBaKNfVnMb25Ya,_score: null,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 1999},sort: [1999]},{_index: shopping,_type: _doc,_id: BNR5sHgBaKNfVnMb7pal,_score: null,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 1999},sort: [1999]},{_index: shopping,_type: _doc,_id: BtR6sHgBaKNfVnMbX5Y5,_score: null,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999},sort: [1999]},{_index: shopping,_type: _doc,_id: B9R6sHgBaKNfVnMbZpZ6,_score: null,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999},sort: [1999]},{_index: shopping,_type: _doc,_id: CdR7sHgBaKNfVnMbsJb9,_score: null,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999},sort: [1999]}]}
}多条件查询
假设想找出小米牌子价格为3999元的。must相当于数据库的
在 Postman 中向 ES 服务器发 GET请求 http://127.0.0.1:9200/shopping/_search附带JSON体如下
{query:{bool:{must:[{match:{category:小米}},{match:{price:3999.00}}]}}
}返回结果如下
{took: 134,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 1,relation: eq},max_score: 2.3862944,hits: [{_index: shopping,_type: _doc,_id: ANQqsHgBaKNfVnMbhZYU,_score: 2.3862944,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 3999}}]}
}假设想找出小米和华为的牌子。should相当于数据库的||
在 Postman 中向 ES 服务器发 GET请求 http://127.0.0.1:9200/shopping/_search附带JSON体如下
{query:{bool:{should:[{match:{category:小米}},{match:{category:华为}}]},filter:{range:{price:{gt:2000}}}}
}返回结果如下
{took: 8,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 6,relation: eq},max_score: 1.3862942,hits: [{_index: shopping,_type: _doc,_id: ANQqsHgBaKNfVnMbhZYU,_score: 1.3862942,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 3999}},{_index: shopping,_type: _doc,_id: A9R5sHgBaKNfVnMb25Ya,_score: 1.3862942,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: BNR5sHgBaKNfVnMb7pal,_score: 1.3862942,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: BtR6sHgBaKNfVnMbX5Y5,_score: 1.3862942,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: B9R6sHgBaKNfVnMbZpZ6,_score: 1.3862942,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: CdR7sHgBaKNfVnMbsJb9,_score: 1.3862942,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}}]}
}范围查询 假设想找出小米和华为的牌子价格大于2000元的手机。
在 Postman 中向 ES 服务器发 GET请求 http://127.0.0.1:9200/shopping/_search附带JSON体如下
{query:{bool:{should:[{match:{category:小米}},{match:{category:华为}}],filter:{range:{price:{gt:2000}}}}}
}返回结果如下
{took: 72,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 1,relation: eq},max_score: 1.3862942,hits: [{_index: shopping,_type: _doc,_id: ANQqsHgBaKNfVnMbhZYU,_score: 1.3862942,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 3999}}]}
}全文检索
这功能像搜索引擎那样如品牌输入“小华”返回结果带回品牌有“小米”和“华为”的。
在 Postman 中向 ES 服务器发 GET请求 http://127.0.0.1:9200/shopping/_search附带JSON体如下
{query:{match:{category : 小华}}
}返回结果如下
{took: 7,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 6,relation: eq},max_score: 0.6931471,hits: [{_index: shopping,_type: _doc,_id: ANQqsHgBaKNfVnMbhZYU,_score: 0.6931471,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 3999}},{_index: shopping,_type: _doc,_id: A9R5sHgBaKNfVnMb25Ya,_score: 0.6931471,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: BNR5sHgBaKNfVnMb7pal,_score: 0.6931471,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: BtR6sHgBaKNfVnMbX5Y5,_score: 0.6931471,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: B9R6sHgBaKNfVnMbZpZ6,_score: 0.6931471,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: CdR7sHgBaKNfVnMbsJb9,_score: 0.6931471,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}}]}
}完全匹配
在 Postman 中向 ES 服务器发 GET请求 http://127.0.0.1:9200/shopping/_search附带JSON体如下
{query:{match_phrase:{category : 为}}
}返回结果如下
{took: 2,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 3,relation: eq},max_score: 0.6931471,hits: [{_index: shopping,_type: _doc,_id: BtR6sHgBaKNfVnMbX5Y5,_score: 0.6931471,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: B9R6sHgBaKNfVnMbZpZ6,_score: 0.6931471,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: CdR7sHgBaKNfVnMbsJb9,_score: 0.6931471,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}}]}
}高亮查询
在 Postman 中向 ES 服务器发 GET请求 http://127.0.0.1:9200/shopping/_search附带JSON体如下
{query:{match_phrase:{category : 为}},highlight:{fields:{category:{}//----高亮这字段}}
}返回结果如下
{took: 100,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 3,relation: eq},max_score: 0.6931471,hits: [{_index: shopping,_type: _doc,_id: BtR6sHgBaKNfVnMbX5Y5,_score: 0.6931471,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999},highlight: {category: [华em为/em//------高亮一个为字。]}},{_index: shopping,_type: _doc,_id: B9R6sHgBaKNfVnMbZpZ6,_score: 0.6931471,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999},highlight: {category: [华em为/em]}},{_index: shopping,_type: _doc,_id: CdR7sHgBaKNfVnMbsJb9,_score: 0.6931471,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999},highlight: {category: [华em为/em]}}]}
}聚合查询
聚合允许使用者对 es 文档进行统计分析类似与关系型数据库中的 group by当然还有很多其他的聚合例如取最大值max、平均值avg等等。
接下来按price字段进行分组
在 Postman 中向 ES 服务器发 GET请求 http://127.0.0.1:9200/shopping/_search附带JSON体如下
{aggs:{//聚合操作price_group:{//名称随意起名terms:{//分组field:price//分组字段}}}
}返回结果如下
{took: 63,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 6,relation: eq},max_score: 1,hits: [{_index: shopping,_type: _doc,_id: ANQqsHgBaKNfVnMbhZYU,_score: 1,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 3999}},{_index: shopping,_type: _doc,_id: A9R5sHgBaKNfVnMb25Ya,_score: 1,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: BNR5sHgBaKNfVnMb7pal,_score: 1,_source: {title: 小米手机,category: 小米,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: BtR6sHgBaKNfVnMbX5Y5,_score: 1,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: B9R6sHgBaKNfVnMbZpZ6,_score: 1,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}},{_index: shopping,_type: _doc,_id: CdR7sHgBaKNfVnMbsJb9,_score: 1,_source: {title: 华为手机,category: 华为,images: http://www.gulixueyuan.com/xm.jpg,price: 1999}}]},aggregations: {price_group: {doc_count_error_upper_bound: 0,sum_other_doc_count: 0,buckets: [{key: 1999,doc_count: 5},{key: 3999,doc_count: 1}]}}
}上面返回结果会附带原始数据的。若不想要不附带原始数据的结果在 Postman 中向 ES 服务器发 GET请求 http://127.0.0.1:9200/shopping/_search附带JSON体如下
{aggs:{price_group:{terms:{field:price}}},size:0
}返回结果如下
{took: 60,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 6,relation: eq},max_score: null,hits: []},aggregations: {price_group: {doc_count_error_upper_bound: 0,sum_other_doc_count: 0,buckets: [{key: 1999,doc_count: 5},{key: 3999,doc_count: 1}]}}
}若想对所有手机价格求平均值。
在 Postman 中向 ES 服务器发 GET请求 http://127.0.0.1:9200/shopping/_search附带JSON体如下
{aggs:{price_avg:{//名称随意起名avg:{//求平均field:price}}},size:0
}返回结果如下
{took: 14,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 6,relation: eq},max_score: null,hits: []},aggregations: {price_avg: {value: 2332.3333333333335}}
}映射操作
有了索引库等于有了数据库中的 database。
接下来就需要建索引库(index)中的映射了类似于数据库(database)中的表结构(table)。
创建数据库表需要设置字段名称类型长度约束等索引库也一样需要知道这个类型下有哪些字段每个字段有哪些约束信息这就叫做映射(mapping)。
创建映射
先创建一个索引
# PUT http://127.0.0.1:9200/user
返回结果
{acknowledged: true,shards_acknowledged: true,index: user
}创建映射
# 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}}
}返回结果如下
{acknowledged: true
}查询映射
#GET http://127.0.0.1:9200/user/_mapping
返回结果如下
{user: {mappings: {properties: {name: {type: text},sex: {type: keyword},tel: {type: keyword,index: false}}}}
}增加数据
#PUT http://127.0.0.1:9200/user/_create/1001
{name:小米,sex:男的,tel:1111
}返回结果如下
{_index: user,_type: _doc,_id: 1001,_version: 1,result: created,_shards: {total: 2,successful: 1,failed: 0},_seq_no: 0,_primary_term: 1
}查找name含有”小“数据
#GET http://127.0.0.1:9200/user/_search
{query:{match:{name:小}}
}返回结果如下
{took: 495,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 1,relation: eq},max_score: 0.2876821,hits: [{_index: user,_type: _doc,_id: 1001,_score: 0.2876821,_source: {name: 小米,sex: 男的,tel: 1111}}]}
}查找sex含有”男“数据
#GET http://127.0.0.1:9200/user/_search
{query:{match:{sex:男}}
}返回结果如下
{took: 1,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 0,relation: eq},max_score: null,hits: []}
}找不想要的结果只因创建映射时sex的类型为keyword。
sex只能完全为”男的“才能得出原数据。
#GET http://127.0.0.1:9200/user/_search
{query:{match:{sex:男的}}
}返回结果如下
{took: 2,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 1,relation: eq},max_score: 0.2876821,hits: [{_index: user,_type: _doc,_id: 1001,_score: 0.2876821,_source: {name: 小米,sex: 男的,tel: 1111}}]}
}查询电话
# GET http://127.0.0.1:9200/user/_search
{query:{match:{tel:11}}
}返回结果如下
{error: {root_cause: [{type: query_shard_exception,reason: failed to create query: Cannot search on field [tel] since it is not indexed.,index_uuid: ivLnMfQKROS7Skb2MTFOew,index: user}],type: search_phase_execution_exception,reason: all shards failed,phase: query,grouped: true,failed_shards: [{shard: 0,index: user,node: 4P7dIRfXSbezE5JTiuylew,reason: {type: query_shard_exception,reason: failed to create query: Cannot search on field [tel] since it is not indexed.,index_uuid: ivLnMfQKROS7Skb2MTFOew,index: user,caused_by: {type: illegal_argument_exception,reason: Cannot search on field [tel] since it is not indexed.}}}]},status: 400
}报错只因创建映射时tel的index为false。
文章转载自: http://www.morning.jyznn.cn.gov.cn.jyznn.cn http://www.morning.rpzth.cn.gov.cn.rpzth.cn http://www.morning.rmqmc.cn.gov.cn.rmqmc.cn http://www.morning.pcqxr.cn.gov.cn.pcqxr.cn http://www.morning.bssjz.cn.gov.cn.bssjz.cn http://www.morning.tlrxp.cn.gov.cn.tlrxp.cn http://www.morning.mgzjz.cn.gov.cn.mgzjz.cn http://www.morning.duckgpt.cn.gov.cn.duckgpt.cn http://www.morning.fkyqm.cn.gov.cn.fkyqm.cn http://www.morning.ypwlb.cn.gov.cn.ypwlb.cn http://www.morning.qddtd.cn.gov.cn.qddtd.cn http://www.morning.cthkh.cn.gov.cn.cthkh.cn http://www.morning.mfjfh.cn.gov.cn.mfjfh.cn http://www.morning.ypqwm.cn.gov.cn.ypqwm.cn http://www.morning.zrqs.cn.gov.cn.zrqs.cn http://www.morning.qbkw.cn.gov.cn.qbkw.cn http://www.morning.yckrm.cn.gov.cn.yckrm.cn http://www.morning.trrpb.cn.gov.cn.trrpb.cn http://www.morning.nbhft.cn.gov.cn.nbhft.cn http://www.morning.hcsqznn.cn.gov.cn.hcsqznn.cn http://www.morning.kkwbw.cn.gov.cn.kkwbw.cn http://www.morning.xyjlh.cn.gov.cn.xyjlh.cn http://www.morning.webpapua.com.gov.cn.webpapua.com http://www.morning.wrbnh.cn.gov.cn.wrbnh.cn http://www.morning.dhnqt.cn.gov.cn.dhnqt.cn http://www.morning.tqbw.cn.gov.cn.tqbw.cn http://www.morning.jkrrg.cn.gov.cn.jkrrg.cn http://www.morning.bnlsd.cn.gov.cn.bnlsd.cn http://www.morning.gxhqt.cn.gov.cn.gxhqt.cn http://www.morning.xknmn.cn.gov.cn.xknmn.cn http://www.morning.nrjr.cn.gov.cn.nrjr.cn http://www.morning.mwlxk.cn.gov.cn.mwlxk.cn http://www.morning.qgjgsds.com.cn.gov.cn.qgjgsds.com.cn http://www.morning.ctxt.cn.gov.cn.ctxt.cn http://www.morning.vnuwdy.cn.gov.cn.vnuwdy.cn http://www.morning.drmbh.cn.gov.cn.drmbh.cn http://www.morning.wzwyz.cn.gov.cn.wzwyz.cn http://www.morning.ldzxf.cn.gov.cn.ldzxf.cn http://www.morning.krwzy.cn.gov.cn.krwzy.cn http://www.morning.mkhwx.cn.gov.cn.mkhwx.cn http://www.morning.jykzy.cn.gov.cn.jykzy.cn http://www.morning.nwljj.cn.gov.cn.nwljj.cn http://www.morning.qmkyp.cn.gov.cn.qmkyp.cn http://www.morning.tmpsc.cn.gov.cn.tmpsc.cn http://www.morning.srrrz.cn.gov.cn.srrrz.cn http://www.morning.qlrwf.cn.gov.cn.qlrwf.cn http://www.morning.hcrxn.cn.gov.cn.hcrxn.cn http://www.morning.shnqh.cn.gov.cn.shnqh.cn http://www.morning.nfmlt.cn.gov.cn.nfmlt.cn http://www.morning.nqpxs.cn.gov.cn.nqpxs.cn http://www.morning.qnksk.cn.gov.cn.qnksk.cn http://www.morning.dpqqg.cn.gov.cn.dpqqg.cn http://www.morning.tkflb.cn.gov.cn.tkflb.cn http://www.morning.sqnrz.cn.gov.cn.sqnrz.cn http://www.morning.nynpf.cn.gov.cn.nynpf.cn http://www.morning.mqwnp.cn.gov.cn.mqwnp.cn http://www.morning.pbmkh.cn.gov.cn.pbmkh.cn http://www.morning.lhgkr.cn.gov.cn.lhgkr.cn http://www.morning.nxkyr.cn.gov.cn.nxkyr.cn http://www.morning.kpyyf.cn.gov.cn.kpyyf.cn http://www.morning.lrflh.cn.gov.cn.lrflh.cn http://www.morning.tlrxt.cn.gov.cn.tlrxt.cn http://www.morning.mldrd.cn.gov.cn.mldrd.cn http://www.morning.mkrqh.cn.gov.cn.mkrqh.cn http://www.morning.ljzss.cn.gov.cn.ljzss.cn http://www.morning.fgsct.cn.gov.cn.fgsct.cn http://www.morning.kdbcx.cn.gov.cn.kdbcx.cn http://www.morning.yckrm.cn.gov.cn.yckrm.cn http://www.morning.mqwnp.cn.gov.cn.mqwnp.cn http://www.morning.jxwhr.cn.gov.cn.jxwhr.cn http://www.morning.sgfpn.cn.gov.cn.sgfpn.cn http://www.morning.rqkzh.cn.gov.cn.rqkzh.cn http://www.morning.jrhcp.cn.gov.cn.jrhcp.cn http://www.morning.rnygs.cn.gov.cn.rnygs.cn http://www.morning.xnrgb.cn.gov.cn.xnrgb.cn http://www.morning.bgygx.cn.gov.cn.bgygx.cn http://www.morning.sltfk.cn.gov.cn.sltfk.cn http://www.morning.tktyh.cn.gov.cn.tktyh.cn http://www.morning.rykn.cn.gov.cn.rykn.cn http://www.morning.tqqfj.cn.gov.cn.tqqfj.cn