说明

需求 一个产品多个区域销售 每个区域有自己的价格,

方式1冗余行,a 产品分别在  area1 area2 area3区域销售 a产品就会生成3条产品数据 搜索id去重就行了,但是问题就是 聚合去重不支持 获得count 所以不能分页 只有选择假分页

方式2:父子关系  用于描述一对多管理  这里我采用方式2  产品为父文档 区域产品信息为子文档

6.*以下版本

创建索引

//put http://192.168.20.4:9200/lq_product_test
{
"mappings": {
"product": {}, //父文档 type name
"areaProductInfo": { //子文档type name
"_parent": {
"type": "product" //指定子文档的父文档typename
}
}
}
}

添加测试数据

1.插入文档

注意最后一个js有个\n换行符哦

//post http://192.168.20.4:9200/lq_product_test/product/_bulk
{ "index": { "_id": "1" }}
{"productId":1, "name": "产品1","sumSellCount":10}
{ "index": { "_id": "2" }}
{"productId":2, "name": "产品2","sumSellCount":11}
{ "index": { "_id": "3" }}
{"productId":3, "name": "产品3","sumSellCount":12}

2.插入子文档

http://192.168.20.4:9200/lq_product_test/areaProductInfo/1?parent=1

{
"id": 1,
"areaCode": 2,
"price": 20
}

http://192.168.20.4:9200/lq_product_test/areaProductInfo/2?parent=2

{
"id": 2,
"areaCode": 2,
"price": 30
}

get:http://192.168.20.4:9200/lq_product_test/_search

子文档查询

get:http://192.168.20.4:9200/lq_product_test/_search

包含有product父文档的所有子文档

{
"query":{
"has_parent":{
"parent_type":"product",
"query":{
"match_all":{}
}
}
}
}

父文档增加条件

{
"query":{
"has_parent":{
"parent_type":"product",
"query":{
"term":{"productId":1}
}
}
}
}

父子文档都增加条件

{
"query": {
"bool": {
"must": [{
"query": {
"term": {
"areaCode": 2
}
}
}, {
"has_parent": {
"parent_type": "product",
"query": {
"term": {
"productId": 1
}
}
}
}] }
}
}

function_score排序

{
"query": {
"function_score": {
"query": {
"has_parent": {
"parent_type": "product",
"query": {
"match_all": {}
}
}
},
"script_score": {
"script": "_score *sumSellCount"
}
}
}
}

elasticsearch 父子文档(十一)的更多相关文章

  1. elasticsearch父子文档处理(join)

    elasticsearch父子文档处理 join 一.背景 二.需求 三.前置知识 四.实现步骤 1.创建 mapping 2.添加父文档数据 3.添加子文档 4.查询文档 1.根据父文档id查询它下 ...

  2. ES 父子文档查询

    父子文档的特点 1. 父/子文档是完全独立的. 2. 父文档更新不会影响子文档. 3. 子文档更新不会影响父文档或者其它子文档. 父子文档的映射与索引 1. 父子关系 type 的建立必须在索引新建或 ...

  3. elasticsearch 路由文档到分片

    路由文档到分片 当你索引一个文档,它被存储在单独一个主分片上.Elasticsearch是如何知道文档属于哪个分片的呢?当你创建一个新文档,它是如何知道是应该存储在分片1还是分片2上的呢? 进程不能是 ...

  4. ElasticSearch部署文档(Ubuntu 14.04)

    ElasticSearch部署文档(Ubuntu 14.04) 参考链接 https://www.elastic.co/guide/en/elasticsearch/guide/current/hea ...

  5. ElasticSearch——原始文档和倒排索引

    一.原始文档 如上图所示, 第二象限是一份原始文档,有title和content2个字段,字段取值分别为”我是中国人”和” 热爱共X产党”,这一点没什么可解释的.我们把原始文档写入Elasticsea ...

  6. 007-elasticsearch5.4.3【一】概述、Elasticsearch 访问方式、Elasticsearch 面向文档、常用概念

    一.概述 Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene™ 基础之上. Elasticsearch 也是使用 Java 编写的,它的内部使用 L ...

  7. Elasticsearch 删除文档

    章节 Elasticsearch 基本概念 Elasticsearch 安装 Elasticsearch 使用集群 Elasticsearch 健康检查 Elasticsearch 列出索引 Elas ...

  8. Elasticsearch 更新文档

    章节 Elasticsearch 基本概念 Elasticsearch 安装 Elasticsearch 使用集群 Elasticsearch 健康检查 Elasticsearch 列出索引 Elas ...

  9. .Net Api 之如何使用Elasticsearch存储文档

    .Net Api 之如何使用Elasticsearch存储文档 什么是Elasticsearch? Elasticsearch 是一个分布式.高扩展.高实时的搜索与数据分析引擎.它能很方便的使大量数据 ...

随机推荐

  1. [轉]Exploit Linux Kernel Slub Overflow

    Exploit Linux Kernel Slub Overflow By wzt 一.前言 最近几年关于kernel exploit的研究比较热门,常见的内核提权漏洞大致可以分为几类: 空指针引用, ...

  2. postgresql 数据库的备份和还原

    第一步:通过 cmd 进入到postgresql 安装目录的 bin 下: windows : cd C:\PostgreSQL\pg95\bin ubuntu : cd /etc/postgresq ...

  3. shell egrep 引号

    [jg73178@hdcgcgdbsla01dv ~]$ egrep \'SI\' tt.txt 'SI' [jg73178@hdcgcgdbsla01dv ~]$ egrep \"SI\& ...

  4. Codeforces 1148F Foo Fighters 贪心

    题意:给你若干个数对,每个数对有两个属性,一个属性是权值,一个属性是位标志,假设这些数对的的权值和是sum,你可以选择一个二进制数s,与所有的数对的位标志按位与,如果按位与之后的位标志有奇数个1,那么 ...

  5. vue之ref

    ref 被用来给元素或子组件注册引用信息.引用信息将会注册在父组件的 $refs 对象上.如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素:如果用在子组件上,引用就指向组件. 1.ref ...

  6. hdu 5792 树状数组+离散化+思维

    题目大意: Given a sequence A with length n,count how many quadruple (a,b,c,d) satisfies: a≠b≠c≠d,1≤a< ...

  7. mybatis调用存储过程(@Select方式)

    存储过程还不会写的同学可以参考我另一篇文章:https://www.cnblogs.com/liuboyuan/p/9375882.html 网上已经有很多用mybatis调用的教程了,但是大部分是x ...

  8. 首次公开!单日600PB的计算力--阿里巴巴EB级大数据平台的进击

    MaxCompute作为阿里巴巴的主力计算平台,在2018年的双11中,再次不负众望,经受住了双11期间海量数据和高并发量的考验.为集团的各条业务线提供了强劲的计算力,不愧是为阿里巴巴历年双11输送超 ...

  9. 【LeetCode 10】正则表达式匹配

    题目链接 [题解] 看到这个题解 写的代码. 就是加个备忘录法.优化一下暴力的做法. 匹配的时候如果遇到号的话,就两种可能.不再考虑它前面一个字符了. 跳过这个或者.或者继续用前面那个字符匹配. 即d ...

  10. [转] bae中thinkphp的REWRITE 正确配置方法

    URL_MODEL =2下. 官方的:app.conf不能用,害人呀.. 留意以下红色部分,正则要分开来写,坑爹的 正确的配置: handlers: handlers: - expire : .jpg ...