Apache Solr 中的多对一映射

2023-12-24

我正在使用 Solr 来索引我的报告数据库。报告可以包含文本、提交者信息等。当前的工作原理如下:

"docs": [
      {
        "Text": "Some Report Text"
        "ReportId": "1",
        "Date": "2013-08-09T14:59:28.147Z",
        "SubmitterId": "11111",
        "FirstName": "John",
        "LastName": "Doe",
        "_version_": 1444554112206110700
      }
 ]

报告可以拥有的另一件事是查看者(这是单个报告和查看者之间的一对多关系。)我希望能够在 JSON 输出中捕获这些查看者,如下所示:

"docs": [
      {
        "Text": "Some Report Text"
        "ReportId": "1",
        "Date": "2013-08-09T14:59:28.147Z",
        "SubmitterId": "11111",
        "FirstName": "John",
        "LastName": "Doe",
        "Viewers": [
            { ViewerId: "22222" },
            { ViewerId: "33333" }
         ]
        "_version_": 1444554112206110700
      }
 ]

然而,我似乎无法让这种情况发生。这是我的data-config.xml(删除了问题不需要的部分):

<entity name="Report" query="select * from Reports">
   <field column="Text" />
   <field column="ReportId" />
   <!-- Get Submitter Information as another entity. -->
   <entity name="Viewers" query="select * from ReportViewers where Id='${Report.ReportId}'">
     <field column="Id" name="ViewerId" />
   </entity>
</entity>

And the schema.xml:

<field name="Text" type="text_en" indexed="true" stored="true" />
<field name="ReportId" type="string" indexed="true" stored="true" />
<field name="Viewers" type="string" indexed="true" stored="true" multiValued="true" />
<field name="ViewerId" type="string" indexed="true" stored="true" />

当我进行数据导入时,我什么也没看到。没有错误,没有明显的错误,但我很确定我的数据配置和/或我的架构不正确。我究竟做错了什么?


不幸的是 Solr 不允许嵌套(参见http://lucene.472066.n3.nabble.com/Possible-to-have-Solr-documents-with-deeply-nested-data-structs-i-e-hashes-within-hashes-td4004285.html http://lucene.472066.n3.nabble.com/Possible-to-have-Solr-documents-with-deeply-nested-data-structures-i-e-hashes-within-hashes-td4004285.html)。您需要扁平化您的数据!

So

"Viewers": [
            { ViewerId: "22222" },
            { ViewerId: "33333" }
         ]

不可能。相反,将其压平并有一个ViewerIds array:

"ViewerIds": ["22222", "33333" ]

在您的架构中,您将拥有:

<field name="ViewerIds" type="string" indexed="true" stored="true" multiValued="true" />

并相应地修改您的数据配置。

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

Apache Solr 中的多对一映射 的相关文章

  • 更改 SOLR 默认连接

    我正在使用嵌入 SOLR 的应用程序 SOLR 在 Tomcat 的 webapp 区域中像一场战争一样运行 是否有 SOLR 配置允许我切换搜索的默认 SOLR 行为以假定 AND 而不是 OR 作为连接运算符 在您的模式文件中添加 或修
  • 如何使用 pysolr 对 solr 进行原子更新?

    我找不到关于如何使用 pysolr 更新 solr 的合适文档 截至 2014 年 11 月原子更新 https github com toastdriven pysolr commit c49be48d459448532b5ad0f505
  • MIME 类型/内容类型,用于在 IE 和 Firefox 中使用 Excel 打开 CSV 文件

    我在 Excel 中识别并打开 CSV 输出时遇到问题 在我的 Web 应用程序中 我有一个 java servlet 它将搜索结果返回给用户 搜索结果由 Apache Solr 服务器提供 GUI 前端有一个选项 允许用户请求 CSV 格
  • SOLR - 过滤器查询中的正则表达式

    我想在 fq 中实现 Regex 但以前从未实现过 我的属性中有以下值 字段类型为 小写 Prop company1 city1 state1 country1 高级分析化学家 芝加哥 我想根据正则表达式过滤结果 正则表达式应该与上面的内容
  • apache solr:group by 产生的数据总和

    我们有一个要求 需要按特定字段对记录进行分组 并获取相应数字字段的总和 前任 select userid sum click count from user action group by userid 我们尝试使用 apache solr
  • 将solr 1.4索引升级到solr 3.3?

    我有一个使用 apache solr 1 4 构建的现有索引 我想在 3 3 版本中使用这个现有索引 正如您所知 索引格式在 3 x 之后发生了变化 那么如何才能做到这一点呢 我已经使用 Luke 将现有索引 即 1 4 版本 导出为 XM
  • 在solr中获取pdf搜索结果的页码

    我正在构建一个 Web 应用程序 用户可以在其中搜索 pdf 文档并使用 pdf js 查看它们 我想显示搜索结果 其中包含找到搜索词的段落的简短片段以及用于在右侧页面打开文档的链接 所以我需要的是每个搜索结果的页码和简短的文本片段 我正在
  • Solr MoreLikeThis 不适用于多个分片?

    我在 SolrCloud 中有 5 个节点集群 每个节点有 2 个分片 Solr版本 6 3 0 现在 当我运行 mlt 查询时 它仅返回每个节点的结果 并且不会将它们分布在所有分片 节点上 即 没有给出任何结果 给出结果 我什至尝试将其指
  • openNLP 与 Solr 集成时出现异常

    我正在尝试将 openNLP 与 Solr 6 1 0 集成 我配置了架构和 solrconfig 文件 详细信息请参见 wiki 链接 https wiki apache org solr OpenNLP https wiki apach
  • SOLR - Boost 函数 (bf) 以增加日期最接近 NOW 的文档的分数

    我有一个 solr 实例 其中包含具有 startTime 字段的文档 范围从上个月到一年后 我想添加一个提升查询 函数来提升 startTime 字段接近当前时间的文档的分数 到目前为止 我已经看到很多使用 rord 为较新的文档添加增强
  • 加速 SOLR 搜索

    使用 SOLR Apache Lucene 3 6 时 SOLR 搜索响应非常慢 我正在尝试的一些性能增强技术是 SOLR 分页 mergeFactor 当前在 solrConfig xml 中设置为 10 SOLR 方面查询 solrco
  • lucene 如何与 Neo4j 配合使用

    我是新来的Neo4j and Solr Lucene 我读到我们可以在 Neo4j 中使用 lucene 查询 这是如何工作的 Neo4j中使用lucene查询有什么用 我还需要一个建议 我需要编写一个应用程序来搜索和分析数据 which
  • Solr 分面搜索性能建议

    我们有一个包含 86 315 770 个文档的 solr 实例 它使用高达 4GB 的内存 我们需要它来对称为内容的标记化字段进行分面 磁盘上的索引大小为 23GB 为什么我们要在标记化字段上进行分面 因为我们想要查询该字段中最常用的 n
  • 如何知道 Solr Optimize 何时完成?

    我正在使用 Solr php client 通过 php 与 Solr 进行通信 这段代码触发solr优化命令 solr gt optimize 请问有没有什么方法可以确定优化完成了 这都是因为我的网站上有一个管理页面 我每天必须手动优化
  • Solr 阿拉伯语

    我正在使用 Solr 来索引 3 种语言 阿拉伯语 法语和英语 的文档 我使用了这个 fieldType
  • Solr 自定义相似度

    我想在我的 solr schema xml 中设置我自己的自定义相似度 但我在理解此功能时遇到一些问题 我想完全停用 solr 评分 tf idf coord 和 fieldNorm 我不知道从哪里开始 我知道的事情 我必须编写自己的 De
  • 测量文档集之间的相似性

    出于说明目的 我们假设这是一个论坛服务 我需要计算每个用户帖子之间的 相似度 结果如下 among posts by user A similarity 60 among posts by user B similarity 20 我正在处
  • 如何增强solr中的字段

    我已经事先确定了提升 我在 solr 索引中有一个名为boost1 该提升字段的值介于 1 到 10 之间 类似于 google PR 排名 这是应该应用于 solr 中运行的每个查询的提升 这是我的索引中的字段 Id Title Text
  • 是否可以为单个节点添加多个位置并且 solr 可以显示搜索的所有位置?

    场景 假设您在多个位置有一个产品 当您搜索该产品 而不是位置 时 您应该看到所有位置 在 Drupal 中 您可以使用多值字段来表示位置 但在 solr 中我不知道 当使用 solr 对产品进行索引时 您不应该仅发送一次 例如 3 次 并将
  • 是否可以“合理”地设置 Solr 分数阈值,而与返回的结果无关? (即 Solr 评分是否以任何方式标准化)

    我有一个包含许多条目的 Solr 索引 并且在查询时返回一些子集 每个条目都有一些分数 显而易见 一旦结果与分数一起返回 我希望能够仅 保留 高于某个分数的结果 即仅具有特定质量的结果 当返回的子集可以是任何东西时是否可以这样做 我问这个问

随机推荐

  • 如何告诉 lcov 在哪里可以找到我的 .cpp 和 .h 文件?

    我的源代码和构建树如下所示 请参阅Makefile 将不同目录中的源文件中的目标文件放入单个单独的目录中 https stackoverflow com questions 4102469 makefile to put object fi
  • 在AngularJS中添加/删除多个li的类

    我的清单如下 ul li one li li two li li three li ul 现在 当一个特定的li被点击 我想要active要添加到相同的类并删除active与其他班级相比li元素 另外 当同样li再次点击我想删除active
  • 服务器崩溃后 MongoDB 将无法启动

    我的 Ubuntu 计算机崩溃了 当我重新启动它时 MongoDB 无法工作 我尝试了以下命令 并得到以下输出 mongo Error couldn t connect to server 127 0 0 1 27017 src mongo
  • 识别联合多边形的原始边

    我有很多多边形 在将所有这些多边形合并后 我得到一个新的大多边形 联合算法是一个黑匣子 使用第三方库过程 我无法控制 我也不希望从进度中提取任何信息 有没有有效的方法让我知道 对于那个巨大的联合多边形的每条边 其中哪一条属于较小多边形的哪条
  • 为什么我得到的是 AggregationCursor 结果而不是平均值?

    我正在查询 MongoDB 数据库 但不明白为什么当我期望返回单个数字时却得到聚合器游标 也许我需要从光标对象中获取一些东西 只是想不明白是什么 module exports CalculateAvg async collection gt
  • Ruby require 'tk' 产生 LoadError: no such file to load -- tk

    我无法让红宝石需要 tk 成功地 我正在使用 rvm ruby 2 0 0 ActiveTcl 8 6 和 Ubuntu 12 04 LTS 我跑了wish与 ActiveTcl 一起提供 它似乎可以工作 我查看了 RVM 网站http r
  • Xcache var_size 错误

    我正在尝试将 xcache 与 zend 框架结合使用来缓存 Zend Db Table Abstract 中的元数据 以便每个表仅调用一次描述查询 在我的引导程序中实现 xcache 并运行该应用程序时 出现以下错误 Warning xc
  • 没有发送过期标头,缓存内容,浏览器发出条件 GET 请求需要多长时间?

    假设浏览器默认设置 并且发送的内容没有过期标头 用户访问网站 浏览器缓存图像等 用户没有关闭浏览器或刷新页面 用户继续正常浏览网站 假设浏览器不会出于任何原因转储缓存 当用户浏览时 浏览器会缓存图像等 但尚不清楚何时会发出条件 GET 请求
  • Git:取消交互式变基

    我喜欢git rebase i HEAD 5压缩我的承诺 有时我认为我需要返回 5 次提交 但后来意识到我需要 7 次 然而 git 已经调出了 rebase 编辑器 git rebase merge git rebase todo在维姆中
  • Play框架中的异常处理

    我正在使用 play 框架 2 3 x 来构建一个宁静的 API 今天 我在 API 控制器中的所有 api 函数周围有一个 try catch 块 以便能够捕获异常并返回通用的 错误 json 对象 Example def someApi
  • 通过perl脚本在linux中按密码提示登录

    我想通过 Perl 脚本传递密码 我基本上是在编写一个脚本来在 Linux 终端上执行命令 在执行特定命令时 我收到提示 Password I need to enter password here through my script 但是
  • 确定最后单击的项目

    我需要检索导致焦点移出 模糊 事件的 DOM 元素在模糊事件中 以下代码将为我提供失去焦点的元素的 ID 而不是导致该元素失去焦点的元素 这是我需要的第二个元素 live blur function e var id this attr i
  • 在Python中使用循环来命名变量[重复]

    这个问题在这里已经有答案了 如何使用循环来命名变量 例如 如果我想要一个变量double 1 2 double 2 4一直到double 12 24 我该怎么写呢 我感觉它会是这样的 for x in range 1 13 double x
  • jQuery 搜索过滤器 - 在输入框中搜索

    我正在使用 jQuery 搜索过滤器 它运行良好 不过 我还需要在输入框中进行搜索和过滤 输入框都是文本类型 我需要像其他表列中的文本一样使用该值 我创造了一个小提琴 http jsfiddle net ktcle Jf6q5 http j
  • JPA @ManyToOne 在删除最后一个子项时自动删除父项

    我有一个由 ManyToOne 从子级到父级的单向映射 如下所示 ManyToOne JoinColumn name PARENT ID private ParentEntity parent 当最后一个子实体被删除而没有从 ParentE
  • 存储过程未在另一个存储过程中执行

    我发现执行 SP1 时 SP2 不会从 SP1 内执行 SP1的结构如下 ALTER PROCEDURE SP1 AS BEGIN Declare c1 cursor open c1 fetch next from c1 while fet
  • 将多个参数传递给线程函数

    我有一个名为 workForThread 的函数 它接受两个参数 并返回 void 我想使用类似的方法来线程化这个函数 thread workForThread a b Where a and b属于适当的类型 上面的代码无法编译 给出 调
  • Visual Studio 2010 数据比较自动化

    我注意到在高级版数据菜单中带有数据比较选项 它可以满足我需要的一切 只是想知道是否有一种方法可以自动执行我的应用程序中 GUI 中的操作 理想情况下 我想获得不同 左 右行的集合 在这篇博客中 我将引导您了解 Data NewDataCom
  • 使用独特的 bean 进行 spring 自动装配:Spring 期望单个匹配的 bean,但发现了 2 个

    我正在尝试使用 Spring 自动装配一些 bean 用于依赖注入 作为 web 应用程序 一个控制器 bean 包含另一个 bean 而另一个 bean 又保存另一组 bean 的哈希图 目前该地图只有一个条目 当我在 tomcat 中运
  • Apache Solr 中的多对一映射

    我正在使用 Solr 来索引我的报告数据库 报告可以包含文本 提交者信息等 当前的工作原理如下 docs Text Some Report Text ReportId 1 Date 2013 08 09T14 59 28 147Z Subm