如何处理 Hibernate-Search 索引恢复?

2023-12-21

当应用程序服务器意外退出时,Hibernate Search 无法正常关闭 Lucene。离开写锁每个索引目录后面的文件。这当然是很正常的事情。但是 - 重新启动应用程序后,锁定文件也会保留。这会导致某些时候出现锁超时异常。

我的问题是是否有一种通常的方法来处理恢复。

首先想到的是检查 write.lock 文件是否存在。如果找到,它们将被删除并重建所有索引。但也许 Hibernate-Search 在正确配置后会自动执行此操作?


如果 Hibernate Search 要在启动时删除锁定文件,并且您错误地将两个应用程序配置为在同一索引上运行,则可能会面临破坏索引的风险。因此,不删除锁定文件是锁定的目的。

尽管如此,我们意识到这很烦人:如果您可以使用 Native LockFactory (http://docs.jboss.org/hibernate/search/4.1/reference/en-US/html_single/#search-configuration-directory-lockfactories http://docs.jboss.org/hibernate/search/4.1/reference/en-US/html_single/#search-configuration-directory-lockfactories) 即使是崩溃/终止的 JVM 也会释放锁定文件。

如果升级到最新版本,如果检测到的平台被认为足够安全,则默认使用 Native。

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

如何处理 Hibernate-Search 索引恢复? 的相关文章

  • 使用 lucene/java 标记名称

    我有我公司所有员工的姓名 超过 5000 名 我想编写一个引擎 它可以在在线文章 博客 维基 帮助文档 中即时查找名称 并用用户电子邮件的 mailto 标签标记它们 截至目前 我计划从文章中删除所有停用词 然后在 lucene 索引中搜索
  • 用于索引和搜索的 Lucene 分析器

    我有一个正在使用 Lucene 建立索引的字段 如下所示 Field name hungerState index Index TOKENIZED store Store YES public HungerState getHungerSt
  • Hibernate 搜索中的重复过滤器

    我知道Lucene中有一个内置的DuplicateFilter 可以对Lucene的结果进行重复数据删除 对于用户在重复率非常高的文档数据库上进行搜索来说 这是一个非常重要的功能 由于我正在使用 Hibernate Search 进行全文索
  • symfony 中的 Doctrine 可搜索行为与 Zend Lucene

    我需要在2个表中搜索关键字 简单的事情 我尚未决定使用其中之一吗 有什么建议吗 Thanks 正如 cuhuak 提到的 Lucene 是全文搜索 由于它是用 Java 编写的 因此您还需要一个 Java 服务器 例如 Tomcat 如果您
  • 为什么 Lucene QueryParser 需要分析器

    我是 Lucene 的新手 正在尝试将原始字符串解析为Query使用QueryParser 我想知道为什么QueryParser Parse 方法根本需要分析器参数吗 如果分析与查询有关 那么Analyzer处理常规时应指定Query对象以
  • 使用 Apache Lucene 对 MySQL 数据库建立索引,并保持它们同步

    当MySQL中添加一个新项目时 它也必须被Lucene索引 当现有项目从 MySQL 中删除时 它也必须从 Lucene 的索引中删除 这个想法是编写一个脚本 通过调度程序 例如 CRON 任务 每 x 分钟调用一次 这是保持 MySQL
  • 如何使用Lucene实现拼音搜索?

    我想使用 Lucene 6 1 0 Soundex 或任何适合葡萄牙语的算法来实现语音搜索 我在互联网上发现了许多不完整的示例 教如何实现自定义分词器 分析器 但似乎这些示例上使用的抽象类在 6 1 0 版本中并不相同 谁能指出我在哪里可以
  • 嵌套布尔查询?

    我正在使用 BooleanQuery 来组合多个查询 我发现如果我向 BooleanQuery 添加 BooleanQuery 则不会返回任何结果 添加的 BooleanQuery 是一个 MUST NOT 查询 例如 city id 10
  • 找出 maxClauseCount 设置为 1024 错误的原因

    我有两组搜索索引 TestIndex 在我们的测试环境中使用 和ProdIndex 在生产环境中使用 Lucene 搜索查询 date 20090410184806 TO 20091007184806 对于测试索引工作正常 但对于 Prod
  • 如何在 Lucene 6 中对数字字段进行排序

    我想根据数字字段对搜索结果进行排序 在下面的示例代码中 我想根据 年龄 字段进行排序 我从使用以下答案开始 如何在 Lucene 6 中对 IntPont 或 LongPoint 字段进行排序 https stackoverflow com
  • Lucene索引:查询时得到空结果

    我正在尝试使用 Lucene 索引进行查询 但在日志中得到空结果和以下错误 Traversal query query without index select jcr path from nt base where isdescendan
  • Java、Lucene:在Java中设置IndexWriter的锁定超时。

    我正在致力于将 Lucene 与我们基于 Spring MVC 的应用程序集成 目前我们已经可以使用它了 但是我们很少得到cannot obtain lock错误 之后我必须手动删除锁定文件才能正常工作 如何在 Java 中设置锁定索引的超
  • 如何从 Solr 查询中获取 tf 和 idf 分数?

    以下 Solr 文档 https cwiki apache org confluence display solr Function Queries https cwiki apache org confluence display sol
  • 仅根据lucene中term出现次数较多的文档来计算分数

    我开始研究基于 lucene net 引擎的简历检索 文档 组件 它工作得很好 它会获取文档并根据 VSM 背后的理念是 查询词出现在 a 中的次数 文档相对于数量 该术语出现在所有 集合中的文档越多 该文件的相关内容是 询问 Lucene
  • Lucene 上打开的文件太多错误

    我正在进行的项目是对一定数量的数据 长文本 建立索引 并将它们与每个时间间隔 大约 15 到 30 分钟 的单词列表进行比较 一段时间后 比如说第 35 轮 在开始索引第 36 轮的新数据集时 发生了此错误 ERROR 2011 06 01
  • LUCENE:搜索与正则表达式匹配的术语

    我需要搜索 lucene 索引中的任何术语 匹配特定的正则表达式 我知道我可以使用TermsComponent在solr中 如果配置如下
  • Lucene 3 上的“令牌”列表

    我是 Lucene 的新手 我开始学习版本 3 分支 但有一件事我不明白 显然是因为我在该主题上没有经验 在 Lucene 2 9 中 如果我想要一个令牌列表 我会创建一个 Token 类的 ArrayList 例如 ArrayList 这
  • 随着索引和文档数量恒定,elasticsearch 批量索引会随着时间的推移而变慢

    我遇到了使用 NET NEST 客户端和 ElasticSearch 进行批量索引的性能随着时间的推移 索引数量和文档数量恒定而降低的情况 我们正在奔跑ElasticSearch Version 0 19 11 JVM 23 5 b02在具
  • Lucene外来字符问题

    我在使用 Zend Lucene 和 等外来字符时遇到了一些严重的问题 这些问题在创建索引和查询索引时都会出现 我已经尝试过 iso 8859 1 和 utf 8 ISO 8859 1 不起作用的查询看起来像 area sk ne 使用 Z
  • Lucene,索引已经/外部标记化的标记并定义自己的分析过程

    在使用Lucene的过程中 我有点失望 我不明白或不明白我应该如何继续为任何 Lucene 分析器提供已经可直接索引的东西 或者我应该如何继续创建我自己的分析器 例如 如果我有一个List

随机推荐