从每个唯一的存储桶中查找前5个文档 [英] Find top 5 documents from each unique bucket

查看:51
本文介绍了从每个唯一的存储桶中查找前5个文档的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

让我们说,我有许多ElasticSearch文档,例如以下示例:

Let us say that I've a number of ElasticSearch documents like the sample given below:

 {
    "Tagname": [
        "Veniam"
    ],
    "Title": [
        "Occaecat do. Eu ut."
    ]
  },
  ...
  ...
  ...
  {
    "Tagname": [
        "Anim"
    ],
    "Title": [
        "Consectetur dolor consectetur eu."
    ]
  },
  ...
  ...
  ...
  {
    "Tagname": [
        "Aliqua"
    ],
    "Title": [
        "Culpa in ut ut. Enim in excepteur eiusmod."
    ]
  }
  ...
  ...
  ...   

在此,假设 Tagname 是每个 Title 所属的标签的名称.并且 Tagname 被映射为 keyword ,这样,当我在 Tagname.keyword 上进行汇总时,我得到了3个唯一的 TagName桶(Veniam,Anim,Aliqua等).就我而言,假设我们没有固定数量的唯一 TagName ,并且它可能会动态变化.因此,我们不能在搜索查询中假设一个唯一的 TagName 的静态列表.

Here, lets assume that Tagname is the name of the tag under which every Title falls. And Tagname is mapped as a keyword, such that when I aggregate on the Tagname.keyword, I get for example 3 unique TagName buckets (Veniam, Anim, Aliqua, etc...). In my case lets assume we do not have a fixed number of unique TagName and it might change dynamically. So, we can not assume a static list of unique TagName in our search query.

我现在想要实现的是在每个存储桶下获得前5个 Title </code>值.(到目前为止,对获得前5名的任何排序或排序都不是必不可少的,随机5也可以.但是对这种排序的解释将很有启发性.)<em class="showen"></em></p> <p class="en">What I want to achieve now is to get top 5 <code>Title</code> values under each of these buckets. (So far a sorting or ordering of any sort to get the top 5 is not essential, and random 5 would also work. However an explanation for the sorting would be enlighting.)</p> <h3 class="best_ans mt-1">推荐答案</h3> <p class="cn">我建议使用以下聚合.我使用了100的任意大小,但是您可以用<code> Tagname </code>字段的基数替换该大小,以确保每个<code> Tagname </code值得到一个存储区>.然后,您有一个嵌套的<code> top_hits </code>聚合,它将为每个存储桶返回5个文档.<em class="showen"></em></p> <p class="en">I suggest using the following aggregation. I've used an arbitrary size of 100, but you can replace that by the cardinality of your <code>Tagname</code> field, so as to make sure that you get one bucket per value of <code>Tagname</code>. Then, you have a nested <code>top_hits</code> aggregation that will return you 5 documents for each bucket.</p> <pre><code><code>{ "size": 0, "aggs": { "tags": { "terms": { "field": "Tagname.keyword", "size": 100 }, "aggs": { "latest": { "top_hits": { "size": 5 } } } } } } </code></code></pre> <p>这篇关于从每个唯一的存储桶中查找前5个文档的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!</p> </div> <div class="arc-body-main-more"> <span onclick="unlockarc('2242205');">查看全文</span> </div> </div> <div> </div> <div class="wwads-cn wwads-horizontal" data-id="166" style="max-width:100%;border: 4px solid #666;"></div> </div> </article> <div id="arc-ad-2" class="mb-1"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5038752844014834" crossorigin="anonymous"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5038752844014834" data-ad-slot="3921941283"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="widget bgwhite radius-1 mb-1 shadow widget-rel"> <h5>相关文章</h5> <ul> <li> <a target="_blank" title="我怎样才能获得聚合的前 n 个存储桶,并将所有其他存储桶组合成一个“其他"存储桶?桶?" href="/2780839.html"> 我怎样才能获得聚合的前 n 个存储桶,并将所有其他存储桶组合成一个“其他"存储桶?桶?; </a> </li> <li> <a target="_blank" title="在mongodb中从集合中查找前20个文档" href="/1636737.html"> 在mongodb中从集合中查找前20个文档; </a> </li> <li> <a target="_blank" title="如何获得聚合的前 n 个存储桶,以及将所有其他存储桶组合成“其他"存储桶?桶?" href="/2845825.html"> 如何获得聚合的前 n 个存储桶,以及将所有其他存储桶组合成“其他"存储桶?桶?; </a> </li> <li> <a target="_blank" title="SQL - 存储一个整数列并计算每个存储桶" href="/2310337.html"> SQL - 存储一个整数列并计算每个存储桶; </a> </li> <li> <a target="_blank" title="我如何才能获得前n个存储桶进行汇总,以及如何将所有其他存储桶合并成一个“其他"存储桶?桶?" href="/1638825.html"> 我如何才能获得前n个存储桶进行汇总,以及如何将所有其他存储桶合并成一个“其他"存储桶?桶?; </a> </li> <li> <a target="_blank" title="确保每个Hashmap存储桶/插槽具有一个值" href="/846503.html"> 确保每个Hashmap存储桶/插槽具有一个值; </a> </li> <li> <a target="_blank" title="高效查询每个唯一ID的前N行" href="/1557047.html"> 高效查询每个唯一ID的前N行; </a> </li> <li> <a target="_blank" title="mySQL 返回每个类别的前 5 个" href="/2589177.html"> mySQL 返回每个类别的前 5 个; </a> </li> <li> <a target="_blank" title="mySQL返回每个类别的前5个" href="/1658811.html"> mySQL返回每个类别的前5个; </a> </li> <li> <a target="_blank" title="ElasticSearch术语汇总后如何返回每个存储桶的所有文档?" href="/2241733.html"> ElasticSearch术语汇总后如何返回每个存储桶的所有文档?; </a> </li> <li> <a target="_blank" title="从查找中返回最后一个文档" href="/2679812.html"> 从查找中返回最后一个文档; </a> </li> <li> <a target="_blank" title="S3 存储桶全局唯一性" href="/2512561.html"> S3 存储桶全局唯一性; </a> </li> <li> <a target="_blank" title="从列表中查找唯一值" href="/1565476.html"> 从列表中查找唯一值; </a> </li> <li> <a target="_blank" title="如何在MongoDB中查找具有唯一值的文档?" href="/1639711.html"> 如何在MongoDB中查找具有唯一值的文档?; </a> </li> <li> <a target="_blank" title="从数组中查找前 N 个条目" href="/2845899.html"> 从数组中查找前 N 个条目; </a> </li> <li> <a target="_blank" title="从数组中查找前N个条目" href="/1635682.html"> 从数组中查找前N个条目; </a> </li> <li> <a target="_blank" title="从查找返回最后一个文档" href="/1635124.html"> 从查找返回最后一个文档; </a> </li> <li> <a target="_blank" title="MongoDB.为集合中的每个文档设置唯一编号" href="/2303728.html"> MongoDB.为集合中的每个文档设置唯一编号; </a> </li> <li> <a target="_blank" title="Couchbase 5 存储桶密码设置" href="/2837965.html"> Couchbase 5 存储桶密码设置; </a> </li> <li> <a target="_blank" title="Couchbase 5存储桶密码设置" href="/1841893.html"> Couchbase 5存储桶密码设置; </a> </li> <li> <a target="_blank" title="如何为每个git存储库管理一个唯一的密钥?" href="/800657.html"> 如何为每个git存储库管理一个唯一的密钥?; </a> </li> <li> <a target="_blank" title="Couchbase:如何将数据从存储桶复制到另一个存储桶?" href="/2220848.html"> Couchbase:如何将数据从存储桶复制到另一个存储桶?; </a> </li> <li> <a target="_blank" title="数据库SQL - 查询以查找前5个值和每个值生成的总数" href="/1173637.html"> 数据库SQL - 查询以查找前5个值和每个值生成的总数; </a> </li> <li> <a target="_blank" title="从另一个项目访问GCS存储桶" href="/822576.html"> 从另一个项目访问GCS存储桶; </a> </li> <li> <a target="_blank" title="提取前五个最大唯一值" href="/828591.html"> 提取前五个最大唯一值; </a> </li> </ul> </div> <div class="mb-1"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5038752844014834" crossorigin="anonymous"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5038752844014834" data-ad-slot="3921941283"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> <div class="side"> <div class="widget widget-side bgwhite mb-1 shadow"> <h5>其他开发最新文章</h5> <ul> <li> <a target="_blank" title="拒绝显示一个框架,因为它将'X-Frame-Options'设置为'sameorigin'" href="/893060.html"> 拒绝显示一个框架,因为它将'X-Frame-Options'设置为'sameorigin'; </a> </li> <li> <a target="_blank" title="什么是&QUOT; AW&QUOT;在部分标志属性是什么意思?" href="/303988.html"> 什么是&QUOT; AW&QUOT;在部分标志属性是什么意思?; </a> </li> <li> <a target="_blank" title="在运行npm install命令时获取'npm WARN弃用'警告" href="/840917.html"> 在运行npm install命令时获取'npm WARN弃用'警告; </a> </li> <li> <a target="_blank" title="cmake无法找到openssl" href="/516280.html"> cmake无法找到openssl; </a> </li> <li> <a target="_blank" title="从Spark的scala中的* .tar.gz压缩文件中读取HDF5文件" href="/850628.html"> 从Spark的scala中的* .tar.gz压缩文件中读取HDF5文件; </a> </li> <li> <a target="_blank" title="Twitter :: Error :: Forbidden - 无法验证您的凭据" href="/630061.html"> Twitter :: Error :: Forbidden - 无法验证您的凭据; </a> </li> <li> <a target="_blank" title="我什么时候需要一个fb:app_id或者fb:admins?" href="/747981.html"> 我什么时候需要一个fb:app_id或者fb:admins?; </a> </li> <li> <a target="_blank" title="将.db文件导入R" href="/902960.html"> 将.db文件导入R; </a> </li> <li> <a target="_blank" title="npm通知创建一个lockfile作为package-lock.json。你应该提交这个文件" href="/744854.html"> npm通知创建一个lockfile作为package-lock.json。你应该提交这个文件; </a> </li> <li> <a target="_blank" title="拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script-src'self'”" href="/819167.html"> 拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script-src'self'”; </a> </li> </ul> </div> <div class="widget widget-side bgwhite mb-1 shadow"> <h5> 热门教程 </h5> <ul> <li> <a target="_blank" title="Java教程" href="/OnLineTutorial/java/index.html"> Java教程 </a> </li> <li> <a target="_blank" title="Apache ANT 教程" href="/OnLineTutorial/ant/index.html"> Apache ANT 教程 </a> </li> <li> <a target="_blank" title="Kali Linux教程" href="/OnLineTutorial/kali_linux/index.html"> Kali Linux教程 </a> </li> <li> <a target="_blank" title="JavaScript教程" href="/OnLineTutorial/javascript/index.html"> JavaScript教程 </a> </li> <li> <a target="_blank" title="JavaFx教程" href="/OnLineTutorial/javafx/index.html"> JavaFx教程 </a> </li> <li> <a target="_blank" title="MFC 教程" href="/OnLineTutorial/mfc/index.html"> MFC 教程 </a> </li> <li> <a target="_blank" title="Apache HTTP客户端教程" href="/OnLineTutorial/apache_httpclient/index.html"> Apache HTTP客户端教程 </a> </li> <li> <a target="_blank" title="Microsoft Visio 教程" href="/OnLineTutorial/microsoft_visio/index.html"> Microsoft Visio 教程 </a> </li> </ul> </div> <div class="widget widget-side bgwhite mb-1 shadow"> <h5> 热门工具 </h5> <ul> <li> <a target="_blank" title="Java 在线工具" href="/Onlinetools/details/4"> Java 在线工具 </a> </li> <li> <a target="_blank" title="C(GCC) 在线工具" href="/Onlinetools/details/6"> C(GCC) 在线工具 </a> </li> <li> <a target="_blank" title="PHP 在线工具" href="/Onlinetools/details/8"> PHP 在线工具 </a> </li> <li> <a target="_blank" title="C# 在线工具" href="/Onlinetools/details/1"> C# 在线工具 </a> </li> <li> <a target="_blank" title="Python 在线工具" href="/Onlinetools/details/5"> Python 在线工具 </a> </li> <li> <a target="_blank" title="MySQL 在线工具" href="/Onlinetools/Dbdetails/33"> MySQL 在线工具 </a> </li> <li> <a target="_blank" title="VB.NET 在线工具" href="/Onlinetools/details/2"> VB.NET 在线工具 </a> </li> <li> <a target="_blank" title="Lua 在线工具" href="/Onlinetools/details/14"> Lua 在线工具 </a> </li> <li> <a target="_blank" title="Oracle 在线工具" href="/Onlinetools/Dbdetails/35"> Oracle 在线工具 </a> </li> <li> <a target="_blank" title="C++(GCC) 在线工具" href="/Onlinetools/details/7"> C++(GCC) 在线工具 </a> </li> <li> <a target="_blank" title="Go 在线工具" href="/Onlinetools/details/20"> Go 在线工具 </a> </li> <li> <a target="_blank" title="Fortran 在线工具" href="/Onlinetools/details/45"> Fortran 在线工具 </a> </li> </ul> </div> </div> </div> <script type="text/javascript">var eskeys = '从,每个,唯一,的,存储,桶,中,查找,前,5个,文档'; var cat = 'cc';';//other-dev</script> </div> <div id="pop" onclick="pophide();"> <div id="pop_body" onclick="event.stopPropagation();"> <h6 class="flex flex101"> 登录 <span onclick="pophide();">关闭</span> </h6> <div class="pd-1"> <div class="wxtip center"> <span>扫码关注<em>1秒</em>登录</span> </div> <div class="center"> <img id="qr" src="https://huajiakeji.com/Content/Images/qrydx.jpg" alt="" style="width:150px;height:150px;" /> </div> <div style="margin-top:10px;display:flex;justify-content: center;"> <input type="text" placeholder="输入验证码" id="txtcode" autocomplete="off" /> <input id="btngo" type="button" onclick="chk()" value="GO" /> </div> <div class="center" style="margin: 4px; font-size: .8rem; color: #f60;"> 发送“验证码”获取 <em style="padding: 0 .5rem;">|</em> <span style="color: #01a05c;">15天全站免登陆</span> </div> <div id="chkinfo" class="tip"></div> </div> </div> </div> <script type="text/javascript" src="https://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script> <script type="text/javascript" src="https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.min.js"></script> <script type="text/javascript" src="https://img01.yuandaxia.cn/Scripts/highlight.min.js"></script> <script type="text/javascript" src="https://img01.yuandaxia.cn/Scripts/base.js?v=0.22"></script> <script type="text/javascript" src="https://img01.yuandaxia.cn/Scripts/tui.js?v=0.11"></script> <footer class="footer"> <div class="container"> <div class="flink mb-1"> 友情链接: <a href="https://www.it1352.com/" target="_blank">IT屋</a> <a href="https://huajiakeji.com/" target="_blank">Chrome插件</a> <a href="https://www.cnplugins.com/" target="_blank">谷歌浏览器插件</a> </div> <section class="copyright-section"> <a href="https://www.it1352.com" title="IT屋-程序员软件开发技术分享社区">IT屋</a> ©2016-2022 <a href="http://www.beian.miit.gov.cn/" target="_blank">琼ICP备2021000895号-1</a> <a href="/sitemap.html" target="_blank" title="站点地图">站点地图</a> <a href="/Home/Tags" target="_blank" title="站点标签">站点标签</a> <a target="_blank" alt="sitemap" href="/sitemap.xml">SiteMap</a> <a href="/1155981.html" title="IT屋-免责申明"><免责申明></a> 本站内容来源互联网,如果侵犯您的权益请联系我们删除. </section> <!--统计代码--> <script type="text/javascript"> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?0c3a090f7b3c4ad458ac1296cb5cc779"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <script type="text/javascript"> (function () { var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </div> </footer> </body> </html>