使用 SolrJ 和 Solr4 进行分面

2024-01-02

我已经浏览过该网站上的相关问题,但尚未找到相关的解决方案。

使用以下形式的 HTTP 请求查询我的 Solr4 索引时

&facet=true&facet.field=country

响应包含所有不同的国家以及每个国家的计数。

如何使用 SolrJ 获取此信息? 我已尝试以下操作,但它仅返回所有国家/地区的总计数,而不是每个国家/地区的总计数:

solrQuery.setFacet(true);
solrQuery.addFacetField("country");

以下似乎确实有效,但我不想事先显式设置所有分组:

solrQuery.addFacetQuery("country:usa");
solrQuery.addFacetQuery("country:canada");

其次,我不确定如何从 QueryResponse 对象中提取方面数据。

那么两个问题:

1)使用 SolrJ 如何在字段上进行分面并返回分组而不显式指定组?

2)使用SolrJ如何从QueryResponse对象中提取方面数据?

Thanks.

Update:

我也尝试了类似于谢尔盖的回应(如下)。

List<FacetField> ffList = resp.getFacetFields();
log.info("size of ffList:" + ffList.size());
for(FacetField ff : ffList){
    String ffname = ff.getName();
    int ffcount = ff.getValueCount();
    log.info("ffname:" + ffname + "|ffcount:" + ffcount);           
}

上面的代码显示了 size=1 的 ffList 并且循环进行了 1 次迭代。在输出中,ffname="country" 和 ffcount 是与原始查询匹配的行总数。

这里没有按国家/地区进行细分。

我应该提到的是,在同一个 solrQuery 对象上,我还调用了 addField 和 addFilterQuery。不确定这是否会影响分面:

solrQuery.addField("user-name");
solrQuery.addField("user-bio");
solrQuery.addField("country");
solrQuery.addFilterQuery("user-bio:" + "(Apple OR Google OR Facebook)");

更新2:

我想我明白了,再次基于谢尔盖下面所说的。我使用 FacetField.getValues() 提取了 List 对象。

List<FacetField> fflist = resp.getFacetFields();
for(FacetField ff : fflist){
    String ffname = ff.getName();
    int ffcount = ff.getValueCount();
    List<Count> counts = ff.getValues();
    for(Count c : counts){
        String facetLabel = c.getName();
        long facetCount = c.getCount();
    }
}

在上面的代码中,标签变量匹配每个方面组,并且计数是该分组的相应计数。


实际上你只需要设置facet字段,facet就会被激活(查看SolrJ源代码):

solrQuery.addFacetField("country");

您在哪里寻找方面信息?它必须在QueryResponse.getFacetFields (getValues.getCount)

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

使用 SolrJ 和 Solr4 进行分面 的相关文章

  • Java Sqlite Gradle

    我对 gradle 和 java 还很陌生 我有一个使用 sqlite 的项目 它通过 intellij idea 运行良好 但我无法从终端运行它 它会抛出异常 java lang ClassNotFoundException org sq
  • 重构——套接字中的良好实践——简单的服务器-客户端 Swing 应用程序

    我使用单例和观察者模式编写了一个带有 Swing 接口的简单服务器 客户端程序 每个客户端都连接到服务器并可以发送消息 服务器将其收到的消息转发给其余的客户端 客户端使用 GUI 允许它们随时连接和断开与服务器的连接 该程序运行得很好 因为
  • 如何降低圈复杂度?

    我正在开发一个将 RequestDTO 发送到 Web 服务的类 我需要在发送请求之前验证该请求 请求可以从 3 个不同的地方发送 并且每个 请求类型 有不同的验证规则 例如请求1必须有姓名和电话号码 请求2必须有地址等 我有一个 DTO
  • 在哈希图中存储字符和二进制数

    我正在尝试存储字母到二进制数的映射 这是我的映射 h 001 i 010 k 011 l 100 r 101 s 110 t 111 为此 我创建了一个哈希映射并存储了键值对 我现在想显示给定句子的相应二进制值 这是我的代码 package
  • WebLogic 10 中的临时目录

    每当 WL 停止时 它都不会删除其临时目录 即 domains mydomain servers myserver tmp WL TEMP APP DOWNLOADS domains mydomain servers myserver tm
  • 从剪贴板获取图像 Awt 与 FX

    最近 我们的 Java FX 应用程序无法再从剪贴板读取图像 例如 用户在 Microsofts Paint 中选择图像的一部分并按复制 我不是在谈论复制的图像文件 它们工作得很好 我很确定它过去已经有效 但我仍然需要验证这一点 尽管如此
  • org.postgresql.util.PSQLException:协议错误。会话设置失败

    我知道这些类型的问题已经存在 但提供的解决方案对我不起作用 在我的应用程序中 没有版本不匹配的黑白驱动程序和 PostgreSQL 服务器 我还没有找到任何其他解决方案 我正在使用 PostgreSQL 服务器 9 4 和 postgres
  • 动画图像视图

    目前我正在开发一款游戏 这是我的游戏的详细信息 用户应选择正确的图像对象 我希望图像从左到右加速 当他们到达终点时 他们应该再次出现在活动中 这是我正在处理的屏幕截图 我有 5 个图像视图 它们应该会加速 您有此类动画的示例代码吗 非常感谢
  • BigDecimal 的 JPA @Size 注释

    我该如何使用 SizeMySQL 的注释DECIMAL x y 列 我在用着BigDecimal 但是当我尝试包括 Size max它不起作用 这是我的代码 Size max 7 2 Column name weight private B
  • Hystrix是否可以订阅CircuitBreaker开启事件?

    对于单元测试 我希望能够订阅 Hystrix 事件 特别是在断路器打开或关闭时发生事件 我四处寻找示例 似乎解决方法是利用指标流并监视断路器标志 由于 Hystrix 是基于 RxJava 构建的 我认为应该在某个地方有一个事件订阅接口 在
  • 如何在命令提示符中检查 JAVA_OPTS 值?

    我们的应用程序部署 JBoss 服务器然后抛出错误 PermGen space 然后在 jboss bat 和配置文件中设置 permgen 变量中的 java OPTS JAVA OPTs 中是否有值 assige 如何检查 如何在命令提
  • 删除 ArrayList 对象问题

    我在处理作业时遇到从 ArrayList 中删除对象的问题 如果我使用 正常 for 循环 它的工作原理如下 public void returnBook String isbn for int i 0 i lt booksBorrowed
  • 膨胀类片段 InflateException 二进制 XML 文件时出错

    我正在使用 Material Design 和 NavigationDrawer 布局等设计我的第一个应用程序 但我遇到了一个问题 该应用程序非常简单 它只显示文本 并且基于 Android Studio 中提供的模板 尝试启动我的应用程序
  • C++ 中的 Java ArrayList [重复]

    这个问题在这里已经有答案了 在Java中我可以做 List
  • 在 netBeans 中运行程序时,字体看起来非常奇怪

    我在我的新 MacBook M1 上设置了 netBeans 和 SceneBuilder 除了运行程序时的字体外 一切正常 它看起来像这样 我不知道为什么 按钮应显示 Click me 标签应显示 Hello 我收到的错误消息是 M rz
  • 为什么 RMI 注册表忽略 java.rmi.server.codebase 属性

    我正在运行 java RMI 的 Hello World 示例 1 我在空文件夹中运行注册表 motta motta laptop tmp rmiregistry 2 我启动 HTTP 服务器以在运行时检索类 下载文件夹包含客户端 服务器的
  • 如何将任务添加到 gradle 中的主要“构建”任务

    当我尝试使用以下代码将任务添加到主构建任务时 rootProject tasks getByName build dependsOn mytask 当我跑步时它抱怨gradle w build输出 Where Build file line
  • Java中的媒体播放器库[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在评估用于在 Java 中播放音频 视频的库 它不需要 100 Java Java 与本机库的绑定
  • java数据结构模拟数据树

    我需要帮助定义使用什么方法 我有一个 SOAP 响应 给我一个 xml 文件 我需要在屏幕上显示 3 个相关列表 当您在第一个列表中选择一个项目时 相应的选择将出现在第二个列表中 依此类推 我只对从 xml 流中提取数据后如何有效地组织数据
  • RecyclerView 不调用 onCreateViewHolder 或 onBindView

    没有收到任何错误 所有数据似乎都有效 由于某种原因 没有调用与视图相关的方法 我已确定以下事项 getItemCount 是唯一被调用的适配器方法 并且返回一个正整数值 我知道这将是你们将要查看的区域 构造函数正在被调用 成员变量有效 Pa

随机推荐

  • 应用程序关闭时如何处理推送负载?

    我正在向我的用户发送包含以下内容的推送负载 aps alert Go To Google sound Default url http www google com 当应用程序在后台运行时 一切顺利 如果我收到推送并且应用程序已关闭 我打开
  • 使用 imread 函数读取 opencv 中的 jpg 文件时是否有任何可能的原因?

    最近在python中使用opencv 正如我注意到的 当我想导入时cv2python中的模块 我需要添加cv2 so使用以下命令手动将文件路径设置为系统路径 sys path append path to cv so 但是 当我想在 ipy
  • 如何正确设置 django-debug-toolbar 的内部 IP

    我第一次编辑setting py文件输入google cloud computing请原谅我这个愚蠢的问题 我想跑django debug toolbar并遵循该教程中的每一步 我想要的是工具栏在 our office only 所以我只是
  • 如何在 Perl 中轻松解析

    我想将网站解析为 Perl 数据结构 首先我加载页面 use LWP Simple my html get http f oo 现在我知道了两种处理方法 首先是正则表达式 其次是模块 我开始阅读有关HTML 解析器 http p3rl or
  • 从 JSON 中选择随机对象[重复]

    这个问题在这里已经有答案了 我有以下代码 getJSON js questions1 json done function data window questionnaire data console log window question
  • Haskell 中遵守模态公理的有趣运算符

    我只是在看类型map a gt b gt a gt b 这个函数的形状让我想知道我们是否可以将列表形成运算符 视为遵守正常模态逻辑 例如 T S4 S5 B 常见的各种公理 因为我们似乎至少有 K 正规模态逻辑公理 其中 a gt b gt
  • git 从 github 远程存储库导出

    我想从 github 远程存储库导出 而不是克隆它 与 svn export 类似 我不想用它获取 git 文件夹 我可以通过克隆和删除 git 文件夹来解决这个问题 我想知道是否有更清洁的方法 我在某个地方读过它 你可以使用 git ar
  • 流星 $and 与 $or

    我正在尝试在 Meteor 中为我的 mongo 查询执行 and 然后 or 我有以下内容 但它似乎不起作用 希望查询匹配 OrganizationId 键在变量 user organizationId 中具有值且类型键为 convert
  • 将 R 数据表列从 JSON 转换为数据表

    我有一个包含 JSON 数据的列 如下例所示 library data table test lt data table a list 1 2 3 info list duration 10 country US duration 20 c
  • 是否可以在 pdf 中向使用 R knit::kable 生成的表格添加垂直线?

    我想制作一张桌子knitr kable边界上和某些列之间有垂直线 有办法做到吗 我的输出文档是pdf Thanks 不太清楚 但也许这可以帮助 library knitr library kableExtra library dplyr d
  • 如何关闭笔记本中的初始化单元?

    在我的笔记本中 我有一个相当大的初始化单元 如何使其可关闭 我的意思是我怎样才能将这个单元格卷成一行并能够将其展开呢 经典的解决方案是将初始化单元放入其自己的部分 Alt 4 标题为 初始化 此部分位于笔记本的开头或结尾 要隐藏内容 请关闭
  • JDialog 让主应用程序失去焦点

    我想知道为什么我的 JDialog 将我的主应用程序推入后台 这意味着 如果显示 JDialog 并且用户单击 确定 或 取消 则主应用程序将失去焦点并将被推入后台 经过调查 我发现 只有当我在显示 JDialog 时禁用主框架时 才会发生
  • 我的 Apache CXF 客户端出现问题

    我正在尝试编写一个 Apache CXF JAX WS 客户端 我的依赖项pom xml are
  • 如何禁用 html5 canvas 元素的选择

    我监听 html5 画布内的点击事件 它工作得很好 但是 当我单击图像上的任意位置时 浏览器会突出显示该图像 就好像它已被选中一样 类似于在页面上单击时图像可能会突出显示的方式 我很好奇是否有人知道如何禁用选择 html 元素 例如画布 我
  • 在多个转换中保持键控状态

    我有一个流 我想使用某个键对其进行分区 然后运行多个转换 每个转换使用一个状态 当我打电话时keyBy 我得到一个KeyedStream下一个转换可以正确访问分区状态 但之后链接的另一个转换在尝试访问分区状态时会出现异常 例外的是 状态密钥
  • 如何针对集合调用 Expression>

    我有一个从存储库模式定义存储库的接口 interface IRepository List
  • dplyr 根据向量中的名称改变多列

    我想使用以下方法将两列相乘dplyr s mutate功能 但是我不想为每个变异条件编写一个新行 而是想使用存储在向量中的列的名称var1 and var2 例如 最后我想在现有的bankdata与名字result1其中包含现金列和贷款列相
  • Flash Builder 4.6 - 代码隐藏方法

    我正在尝试找出使用 Flash 构建器用于移动应用程序的 代码隐藏 的正确方法 我正在创建一个 Flex 移动 AIR 项目 基于 选项卡式视图 模板 将我的 UI 设置为设计模式 现在我希望所有逻辑都位于一个单独的类中 该类将相应地改变
  • 我可以假设 C stdlib 函数不使用 errno 吗?

    我正在看一段 C 代码 它的意思是 void printerror char message printf There was an error s n message switch errno do stuff depending on
  • 使用 SolrJ 和 Solr4 进行分面

    我已经浏览过该网站上的相关问题 但尚未找到相关的解决方案 使用以下形式的 HTTP 请求查询我的 Solr4 索引时 facet true facet field country 响应包含所有不同的国家以及每个国家的计数 如何使用 Solr