Apache solr 频繁添加/编辑/删除记录

2024-01-26

我正在考虑使用 Apache Solr。在我的数据库中,我将有大约 10.000.000 条记录。我将使用它的最坏情况有大约 20 个可搜索/可排序字段。我的问题是这些字段在一天中可能会频繁更改值。例如,在我的数据库中,我可能会同时更改 10000 条记录的某些字段,并且这种情况可能每天发生 0、1 或 1000 次等。重点是,每次我更新数据库中的值时,我都希望它被更新也在 solr 中,这样我每次都可以使用更新的数据进行搜索。

对于那些使用过 solr 的人来说,在这样的卷中重新索引可以有多快?例如,此更新(从我读取的内容中删除并读取一条记录)及其索引会花费 5 秒、5 分钟、一小时吗?考虑它将在一个好的服务器上运行。


如果不实际尝试,很难说清楚。但是您需要知道 Lucene 和 Solr 目前不支持单个文档更新(尽管有一些工作正在进行中)https://issues.apache.org/jira/browse/LUCENE-3837 https://issues.apache.org/jira/browse/LUCENE-3837),这意味着即使您只更新了单个字段,您也需要重新索引整个记录。

此外,Lucene 和 Solr 在执行批量更新方面比单文档更新要好得多。为了解决这个问题,Solr 有一个很好的内提交 http://wiki.apache.org/solr/UpdateXmlMessages#Passing_commit_and_commitWithin_parameters_as_part_of_the_URL参数,让 Solr 将各个更新分组在一起以提高吞吐量。

您应该谨慎对待这个数字,但我经常在非常传统的硬件上创建数百万个文档(约 30 个小字段)的索引,吞吐量约为 5000 个文档/秒。

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

Apache solr 频繁添加/编辑/删除记录 的相关文章

随机推荐

  • 使用 group_by 的简单 Rails 3.1 视图

    我正在工作的网站上有一个菜单 食物菜单 表中的每条记录还包含一个类别字段 此类别可以是汉堡 零食 饮料或他们想要对食品进行分类的任何其他内容 我正在尝试显示菜单 其中的项目按此类别字段分组 到目前为止我的尝试 food item menus
  • RESTEasy 无法识别自定义消息正文编写器

    我的MessageBodyWriter Provider Produces text csv public class CSVMessageBodyWriter implements MessageBodyWriter
  • .NET Core Web API 5.0 构建错误

    严重性代码 说明 项目文件行抑制状态 错误 NETSDK1005 资产文件 D Working On Gra Gra obj project assets json 没有 NETCoreApp Version v5 0 的目标 确保恢复已运
  • 列依赖于其他列值

    我有一列将具有三个可能的值 稍后可能会更多 我将其存储为枚举 yes immediately yes later no 如果选择yes later制作完成后 我们还需要存储date该事件应该发生 在我看来 这必须是另一篇专栏 我的问题是设计
  • 作为收件人,是否可以检测电子邮件是通过 Gmail“安排发送”还是“发送”发送的?

    只是好奇 Gmail 是否对电子邮件标头进行了标记 以指示电子邮件是已安排发送还是立即发送 当我自己测试时 我找不到任何附加标头或标头中的任何附加参数 不过 当您安排电子邮件时 Gmail 会设置Date标题到预定时间 由于您只能以分钟的精
  • 美化C++代码,为条件语句添加括号

    如何美化C 代码 为条件语句添加括号 我需要做的是改变 if myCondition setDateTime date time to if myCondition setDateTime date time 但我必须这样做数百次 我用过A
  • Angularjs 使用 django 的 url 进行路由

    我使用 AngularJS 作为前端 使用 Django 作为后端 我在后端做非常简单的事情 所以我没有考虑使用tastypie 我遇到的问题是客户端 服务器路由 我彻底困惑了 我所做的是 从django渲染entry html页面 其中有
  • 在cmd中重新排列数组元素

    我的批处理文件中有一个数组 如下所示 port 0 port 1 0 port 2 3 port 3 2 是否有任何漂亮而优雅的方法可以将值向后移动一个元素 所以它看起来像这样 port 0 0 port 1 3 port 2 2 port
  • Caffe 运行测试失败

    成功构建 caffe 后 我进行了 runtest 但在 ImageDataLayer DBTest DataTransformTest HDF5OutputLayerTest 和一些求解器中失败 构建 链接到特定路径时是否缺少步骤 这是测
  • Django REST Framework 验证错误:“输入有效的 URL。”

    在我的 Django REST Framework 项目中 我有一个模型类 用于保存 Django 应用程序将在后台任务中抓取的服务 class Service models Model name models CharField max
  • URL 特定编码

    我尝试重新创建 URL 但找不到编码函数 Edit 背景 该字符串用于 API 当然没有文档 我尝试使用原始网址编码但似乎只有原始的编码 解码功能有效 所以我必须找到它是什么 input 2 3 word 888 gt word2 AND
  • CGridView 中的格式化日期过滤器

    我在 CGridView 中将日期显示为 22 6 2012 22 53 array name gt date value gt date j n Y G i strtotime model gt date 但在我的过滤器中 我需要以这种格
  • 如何在 SQL 中从另一个表获取计数?

    我有以下关于 SQL 的表 Mensajes IdMensaje int PK NOT NULL IdCliente int CorreoCliente varchar 100 CorreosAdicionales varchar MAX
  • 将滑动触摸从 UIView 传递到底层 UIScrollView 以实现正确滚动

    我的情况与这两篇文章类似 1907297 http www stackoverflow com questions 1907297 AND 689684 http www stackoverflow com questions 689684
  • NineOldAndroids,旋转或移动后不可点击视图

    I use 九老机器人 http nineoldandroids com2 4 0 为对象设置动画 主要用于运动和变换的控制 在 Android 4 0 及更高版本上一切正常 但在以前的版本 2 1 2 3 上 动画元素没有获得焦点并且不可
  • 在 Rails 中调试? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 如何在 RubyonRails 中 相对 成功地调试 我知道并广泛使用以下内容 Terminal 导轨控制台 开发者工具 日志文件 生产 开发
  • 删除 pandas DataFrame 列中字符串条目的末尾

    我有一个 pandas Dataframe 其中一列是文件列表 import pandas as pd df pd read csv fname csv df head filename A B C fn1 txt 2 4 5 fn2 tx
  • NA 正在箱线图 ggplot2 中绘制

    我正在尝试在 ggplot2 中绘制一个简单的箱线图 我有物种丰富度与土地利用类别 但是 我的数据中有 2 个 NA 出于某种奇怪的原因 它们被策划了 即使它们被 R 理解为 NA 有什么建议删除它们吗 我正在使用的代码是 ggplot d
  • ActiveRecord可以远程连接PostgreSQL并保护DB密码吗?

    我在远程 VPS 服务器 CentOS 5 上有一个 PostgreSQL 数据库 我想连接一个 Rails 应用程序 从我的本地 Mac 笔记本电脑连接到它 在我的笔记本电脑上 我安装了 ActiveRecord PostgreSQL 适
  • Apache solr 频繁添加/编辑/删除记录

    我正在考虑使用 Apache Solr 在我的数据库中 我将有大约 10 000 000 条记录 我将使用它的最坏情况有大约 20 个可搜索 可排序字段 我的问题是这些字段在一天中可能会频繁更改值 例如 在我的数据库中 我可能会同时更改 1