模式更改是否需要重新索引所有 Solr 文档或仅包含已更改模式字段的文档?

2023-12-28

我的 Solr 索引中有数百万个文档。其中只有一千个文档具有字段 A,我想更改其架构。架构更改包括更改多值从真到假,stored从假到真,并且type从文本到字符串,需要重新索引的东西。重新索引数千个文档将花费我几分钟的时间,而重新索引所有内容则需要几天的时间。

Solr wiki 上的重新索引页面 (http://wiki.apache.org/solr/HowToReindex http://wiki.apache.org/solr/HowToReindex)说“您可能需要在开始索引过程之前删除所有文档”,但没有说明何时不需要。

我可以只删除包含字段 A 的一千个文档并重新索引这千个文档,还是需要先删除整个索引(所有文档),然后再对它们全部重新建立索引?

我已经在一个小型样本索引中测试了“删除少数”场景;更新和查询在更改的字段上按预期工作。然而,我不知道我是否只是运气好,由于没有删除所有内容而潜伏着一些问题。


  • 如果您使用相同的 id(在 schema.xml 中定义的唯一键)对文档建立索引,则不必在建立索引之前删除它们。对具有相同 ID 的文档建立索引将覆盖现有文档。

请记住,当您为具有相同 ID 的文档建立索引时,旧文档会自动标记为“已删除”,但不会从索引中物理删除。并且词向量分析适用于所有文档(包括已删除的文档)

如果您需要物理清理已删除的文档,则需要执行索引“优化”,您可以从 solr 管理界面执行此操作。

  • 如果您对架构进行更改,则不必对所有内容建立索引。仅重新索引受影响的文档就足够了。

所以如果我处在你的位置,我什至不会删除任何内容。我只会重新索引数千个受影响的文档。然后稍后进行优化以清理索引。

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

模式更改是否需要重新索引所有 Solr 文档或仅包含已更改模式字段的文档? 的相关文章

  • Node.getTextContent() 在 Node 中未定义

    在我的项目中我面临一个问题 getTextContent 方法是 节点类型未定义 我目前使用的是jdk 1 5 谁能告诉我这是什么意思 如果您遇到这个问题Eclipse 我测试的解决方案是 Java Build Path Order and
  • Solr Custom RequestHandler - 注入查询参数

    简短的问题 我正在寻找一种方法 java 来拦截对 Solr 的查询并注入我的业务逻辑提供的一些额外的过滤参数 我应该使用什么结构 语境 首先 我要坦白一点 对于 Solr 我是个菜鸟 对我来说 设置一个服务器 定义一个模式 编写一个功能性
  • 您将如何设计数据库以允许用户定义模式[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 如果您必须创建一个应用程序 例如博客应用程序 那么创建数据库模式相对简单 你必须创建一些表 tblPosts tblAttachments tb
  • solr 查询中的加号未正确处理

    All 我是 Solr 的新手 当我使用 solr 示例导入一些随机文档时 我在 q 中使用搜索查询 如下所示 fund report fund和 之间没有空格 我以为会在文档中搜索 fund report 这个词 这种情况在文档中很少发生
  • 使用多个字段对 solr 搜索结果进行排序 (solrj)

    我需要根据两个因素对从 apache solr 返回的结果进行排序 我们的系统中有三个实体由 solr 索引 组 项目和数据集 在结果中我希望首先显示数据集 然后是项目 然后是组 但我仍然希望它尊重每种类型的评分值 因此 例如 结果将是 得
  • 在java中以编程方式生成XSD

    是否有任何API可以在java中以编程方式生成XSD 我需要从 Json Schema 生成 XSD 我将阅读 Json Schema 并根据我在解析过程中遇到的元素需要创建适当的 XSD 元素 因此 如果有任何可以支持 XSD 元素的 A
  • 为什么 Jing 不允许在 id 属性中使用冒号(“:”)?

    我一直在努力反对 xsd ID 不允许在 id 属性中使用冒号 我第一次注意到这一点是在 Emacs 中使用 James Clark 的 nxml mode 时 因为它验证了我正在使用的 XHTML 文件 然后 我使用 Jing 针对 RN
  • Solr 中的多值字段排序

    我有一个 Solr 索引 将每个产品的价格存储在多值字段中 我需要按价格对结果集进行排序 其中价格从低到高 从高到低 我尝试对价格进行排序 它显示错误您无法对 multivalued True 字段进行排序 下面是我的 solr XML
  • 本地/离线网站“站点”的全文搜索[重复]

    这个问题在这里已经有答案了 可能的重复 通过 javascript 对 CD Rom 上的静态 HTML 文件进行全文搜索 https stackoverflow com questions 1357173 full text search
  • SOLR - 过滤器查询中的正则表达式

    我想在 fq 中实现 Regex 但以前从未实现过 我的属性中有以下值 字段类型为 小写 Prop company1 city1 state1 country1 高级分析化学家 芝加哥 我想根据正则表达式过滤结果 正则表达式应该与上面的内容
  • 使用java进行JSON模式验证[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在为返回 JSON 对象的 java webapp 编写一些验收测试 我想验证返回的 JSON 是否针对架构进行验证 任何人都可以建议
  • 在solr中获取pdf搜索结果的页码

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

    在 Sql Server 2008 中 当我创建没有架构前缀的表时 create table mytable id int identify 它通常最终出现在模式 dbo 中 名称为 dbo mytable 然而 在我们的一台服务器上 该表
  • 使用 sunspot/solr 搜索多个模型

    我已经能够成功地实现基本的全文搜索 但是当我尝试使用范围 with statements 时 任何涉及多对多关系模型的查询似乎都不适合我 我知道相关行位于数据库中 因为我的 sql 语句确实返回了数据 然而 太阳黑子查询不会返回任何结果 我
  • Solr 中缺少强制 uniquekey 字段错误

    我的项目中有这个问题 我使用 Apache Poi 读取 xlsx excel 文件 并且想在 Solr 核心中对它们进行索引 我使用 SolrInputDocument 来索引读取文件 这是我的java代码 package org sol
  • schema.ini 文件不适用于 MS Access

    我有一堆 csv 文件 我通过 VBA 将它们导入到 Access 中的表中 我在与导入的 csv 文件相同的目录中还有一个 schema ini 文件 尽管在 ini 文件中字段被指定为双精度类型 但它们在 Access 中会转换为文本类
  • cursorMark是无状态的以及它如何解决深度分页

    作为指定here https cwiki apache org confluence display solr Pagination of Results光标标记是无状态的 但我不明白它是如何解决无状态的深度分页问题的 solr 是否按唯一
  • 如何在 SQL 中存储目标(例如 RPG Quest)

    今天有人问我他们应该如何将任务目标存储在 SQL 数据库中 在这种情况下 请考虑角色扮演游戏 目标可能包括以下一些内容 发现 地点 杀死 n MOB 类型 获取 对象 的 n 个 实现 技能组 中的 技能 你在角色扮演游戏中获得的所有其他东
  • Laravel Schema Builder 改变存储引擎

    我正在尝试更改表并将其存储引擎更改为InnoDb 当我跑步时php artisan migrate它完成且没有错误 然而 当我检查 Sequel Pro 中的存储引擎时 没有任何变化 public function up Schema ta
  • Solr 索引时间提升 VS 查询时间提升?

    问题 1 我们可以只进行查询时间提升 使用 dismax 而不在索引时间提及提升值吗 问题 2 与查询时间提升相比 索引时间提升有何优点 缺点 反之亦然 查询时间和索引时间提升 在索引时 您可以选择提升特定文档 整个文档或仅一个字段 它作为

随机推荐