在 Elastic Search 中计算 *Facet 计数* 的有效方法

2023-12-06

我想计算构面查询 UI 的构面计数,但我认为我遗漏了一些东西,因为我无法使用构面过滤器获取所需的数字。

这是一个例子。给定两个方面,每个方面具有三个可能的项:

Colors: {red, yellow, blue}
Notes: {do, re, mi}

当我进行搜索时,一个方面中每个术语的计数不会考虑另一个方面中设置的过滤器。

为了显示:

[ ] All colors (18)
 [x] Red (10)
 [ ] Green (5)
 [ ] Blue (3)

[ ] All notes (18)
 [ ] Do (5)
 [x] Re (7)
 [ ] Mi (6)

请注意,每个方面内的总数总计为查询的命中总数,就好像未设置过滤器一样。

我想要的行为是“注释”方面的数字考虑“颜色”方面的过滤器,反之亦然。也就是说,音符项的数字之和应为 10(以匹配红色过滤器),而不是 18。

有趣的是,文档中的示例屏幕截图使用了 Linked In 中的示例,它实际上演示了我想要的行为。

http://www.elasticsearch.org/guide/reference/api/search/facets/

我可以通过为每个方面的每个术语手动重新提交一次查询来获得我想要的结果(呃),但我想知道是否有一种方法可以通过更改我的查询来获得与 LinkedIn 相同的行为。


我发现这个工作的唯一方法是通过任何多选方面的以下逻辑:

每当用户从某个方面选择一个值(“向下钻取”)时,您就会向所有方面添加相应的过滤器(通过facet_filter)except进行选择的方面以及顶层filter来过滤查询结果。

换句话说,给定 3 个多选方面 A、B 和 C:

  • 从 A 中选择值 => 将过滤器添加到顶层filter以及面过滤器B 面和 C 面。
  • 从 B 选择值 => 将过滤器添加到顶级filter以及面过滤器A & C 的。
  • ... 等等

顶级过滤器始终组合所有选择的过滤器,而每个单独的facet根据中的选择包含facet_filtersother facets.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Elastic Search 中计算 *Facet 计数* 的有效方法 的相关文章

随机推荐

  • 使用活动记录进行计数/分组?

    我有一张包含以下信息的表 id user id points 1 12 48 2 15 36 3 18 22 4 12 28 5 15 59 6 12 31 etc 我想要的是每个 user id 包含最多条目的前 10 个 数组 顺序从高
  • 列表视图选择如何改变事件的工作方式。它叫了两次

    我有列表视图控件 在更改选择时 我会检查 如果所选记录计数大于零 则仅启用组框控件 否则将其禁用 因为 这些控件仅与选定的记录相关 如果没有选择记录 则不应启用它 以下是我的列表视图的选定更改事件 Private Sub lv Select
  • Play 2.5 对某些请求禁用csrf保护

    我正在使用 play Framework v 2 5 3 编写我的应用程序 并使用官方文档中所述的 CSRF 保护 public class Filters implements HttpFilters Inject CSRFFilter
  • 是否可以在循环中创建并行的 Jenkins 声明式管道阶段?

    我的项目中的不同子项目有一个长期运行的 Gradle 任务列表 我想使用 Jenkins 声明式管道并行运行它们 我希望这样的事情可能会起作用 projects a b c pipeline stage Deploy parallel fo
  • GMailApp Gmail 搜索

    我有一个问题GmailApp搜索 查询 功能 根据它使用的手册Gmail 查询 因此所有参数都应该可访问并返回正确的结果 这是我的查询 var sent threads GmailApp search in sent after 2016
  • SVG animateTransform 同时旋转和缩放同一对象?

    我想同时对缩放和旋转对象进行动画处理 到目前为止 我的尝试失败了 我只能链接动画 旋转 然后缩放 但不能一起旋转和缩放 我错过了什么 我尝试删除 additive sum 但这只是覆盖并忽略了缩放动画
  • 闭包在幕后是如何工作的? (C#)

    我觉得我对闭包 如何使用它们以及它们何时有用有相当不错的理解 但我不明白的是它们实际上是如何在内存中幕后工作的 一些示例代码 public Action Counter int count 0 Action counter gt count
  • 在 mysql where in 子句中对数组使用 implode

    我试图在 mysql where in 子句中使用数组 result myDB gt query SELECT sum total as total FROM myDB gt prefix mydata WHERE categoryname
  • GWT (Google Web Toolkit) 中的 Fire ResizeEvent

    在我的网站上 我有许多 Google 地图 v3 您可以通过 TabPanel 选择它们 每个选项卡一个 但切换选项卡时会出现问题 当您选择该选项卡时 它不会 唤醒 地图 要解决这个问题 我只需要使用 ResizeEvent fire so
  • 从命令行java读取标准输入和参数[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 运行 java 文件时 我在从命令行读取参数和标准输入时遇到问题 我可以单独读取参数 也可以单独读取标准输入 但不能一起读取 例如 java myFile 6 2 lt numbers
  • CSS 网格布局中的等高行

    我认为使用 Flexbox 不可能实现这一点 因为每一行只能是适合其元素所需的最小高度 但是使用较新的 CSS 网格可以实现这一点吗 需要明确的是 我希望网格中所有行中的所有元素的高度相等 而不仅仅是每行 基本上 最高的 单元格 应该决定所
  • 如何解决ActivityThread.performLaunchActivity中的java.lang.ClassNotFoundException?

    对于我的 Android 应用程序 我在 Google Play 开发者控制台中收到以下错误 java lang RuntimeException Unable to instantiate activity ComponentInfo P
  • Ms Access 发送带有报告附件的电子邮件

    使用 MS Access 中的 VBA 代码生成器 我能够编写打开 Outlook 的代码 并通过单击按钮向我发送电子邮件 我在添加附件时遇到问题 我发现的大多数代码都会将 MS 数据库外部的文件添加为附件 我想添加在我的数据库中创建的报告
  • 按左右箭头改变图像?

    所以我有这个简单的幻灯片 div class container div img alt slideshow src 1 jpg div div 当我像这样单击时 我已经设法使图像发生变化
  • java 的 MP3/声音库有什么好的推荐吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我正在寻找图书馆来 读取和
  • 找不到适合指定区域性的任何资源(资源文件中的 C# WinForm 图像)

    我将三个图像添加到名为 Resource1 resx 的文件中 我还添加了一根字符串只是为了测试目的 我在 GetString 或 GetObject image name 上收到此错误 找不到任何资源 适合特定文化 或中立文化 确保 Re
  • 使用 传递参数

    我使用 forEach 将参数传递给函数 代码如下
  • _ArrayType 或 _ArrayProtocol 在 Swift 3.1 中不可用吗?

    我正在使用 ArrayType在我的项目中 当我在 swift 2 1 上运行时 我上周升级到 swift 3 0 2 Xcode 8 2 1 我发现here that ArrayType更改为 ArrayProtocol而且效果很好 今天
  • 无法识别元素“folderLevelBuildProviders”?

    我使用Visual studio打开atomesite 我将MVC 1修改为MVC 2 构建成功 但网页给我这个错误 我尝试了 aspnet regiis iru 但不起作用 Server Error in Application Conf
  • 在 Elastic Search 中计算 *Facet 计数* 的有效方法

    我想计算构面查询 UI 的构面计数 但我认为我遗漏了一些东西 因为我无法使用构面过滤器获取所需的数字 这是一个例子 给定两个方面 每个方面具有三个可能的项 Colors red yellow blue Notes do re mi 当我进行