如何检查 Lucene IndexWriter 实例是否有效/打开?

2024-03-01

抱歉这个简单的问题,但似乎没有任何明显的方法。根据文档,建议保留单个实例IndexWriter存储在内存中,可以一次又一次地用于更新,而不是为每次更改打开和关闭一个内存(这要昂贵得多)。

然而,文档还指出IndexWriter如果发生异常(例如OutOfMemoryException).

因此,我需要某种方法来检查我的实例是否IndexWriter是否有效,假设它可以被其他操作关闭。

我意识到如果我尝试在关闭时使用它,我会得到一个异常,但我不想失败,而是想检查一下是否需要创建一个新的IndexWriter在我需要它之前,这样就不会发生故障。

在我看来这是一个简单的IsOpen属性/方法将是一个明显的补充。

想法:

我想如果我能确保我的班级是唯一能够关闭学校的IndexWriter,我可以简单地将其设置为null当它关闭时,检查一下以确保它没有关闭null每当我去使用它时,但这不会处理以下情况IndexWriter自行关闭(如果现在或将来可能出现这种情况)。

另一个想法是,我可以将使用它的尝试包装在 try/catch 块中,并使用异常来指示它需要重新打开,但这似乎不是很有效/优雅。我该用什么方法来检验该方法的有效性IndexWriter?


如果您遇到内存不足异常(或任何类型的异常,实际上),这可能是一个大问题。您尝试写入的更改可能不会被写入,您的索引甚至可能已损坏,具体取决于异常发生的时间/方式。

So an IndexWriter处于错误状态是一种特殊情况,我想说它肯定需要使用异常,即 try/catch。

(我不认为你的问题是“重新打开编写器”。根据异常情况,您可能需要重新索引内容,可能从头开始。当然,您不应该期望在编写器中经常出现异常。)

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

如何检查 Lucene IndexWriter 实例是否有效/打开? 的相关文章

  • 嵌套布尔查询?

    我正在使用 BooleanQuery 来组合多个查询 我发现如果我向 BooleanQuery 添加 BooleanQuery 则不会返回任何结果 添加的 BooleanQuery 是一个 MUST NOT 查询 例如 city id 10
  • Solr 4 - 缺少必填字段:uuid

    我在使用 Solr4 中的 dataImportHandler 生成 UUID 时遇到问题 我正在尝试从现有的 MySQL 数据库导入 我的 schema xml 包含
  • 如何使用特定日期的 Sitecore 项目进行 Lucene 搜索?

    我的内容项目是 Sitecore 其日期字段名为 EventDate 我想使用 Lucene Net 搜索具有特定日期的项目 下面是我尝试过的代码 但没有得到结果 var index SearchManager GetIndex event
  • Elasticsearch 6.2 / Kibana查询:一字段必须存在,一字段不能存在

    我的愿望是搜索 field 存在且 fields b 不存在的文档 有没有办法使用 Kibana 中的 Lucene 查询语法 Kibana 的 发现 部分中的 搜索 字段 来执行此操作 我尝试过使用 缺失 字段 b没有成功 exists
  • 将 Nutch 爬虫与 Solr 结合使用

    我可以将 Apache Nutch 爬虫程序与 Solr 索引服务器集成吗 Edit 我们的一位开发人员从这些帖子中提出了一个解决方案 运行 Nutch 和 Solr http wiki apache org nutch RunningNu
  • 包 org.apache.commons.io 不存在错误

    我正在使用 ant 编译器编译 java 文件 我收到以下错误 包 org apache commons io 不存在错误 我下载了 apache Commons IO 二进制文件并将 jar 文件粘贴到 C Program Files J
  • lucene:如何添加不重复的文档

    就我而言 插入 lucene 索引的每个文档都有其唯一的 ID 当向lucene索引添加新文档时 如果该文档已经存在于索引中 则不应将该文档插入到索引中 如何实施这一战略 我想我应该先用docId搜索文档 如果lucene找不到该文档 那么
  • 如何在 Lucene 5 中获取 Span Term 查询的匹配范围?

    在 Lucene 中 要获取术语周围的单词 建议使用跨度查询 有很好的演练http lucidworks com blog accessing words around a positional match in lucene http l
  • Solr 过滤查询 - 字符串与整数

    假设我正在尝试查询一堆具有类别的文档 并且我想将查询限制为指定的类别 据我所知 这只是使用 fq 参数 过滤器查询 我想知道将参数设置为整 数而不是字符串或数据通常的情况是否会提高性能 我只是会在右侧犯错 但我想我应该仔细检查一下 以防万一
  • 如何添加到 OrientDB 中的空间索引?

    我正在使用工作室的 OrientDB 2 0 我使用文档中的代码成功创建了 Lucene 空间索引 CREATE class Place extends V CREATE property Place name string CREATE
  • Solr:在带有空格的字符串上使用通配符

    我的问题与这里讨论的问题基本相同 带空格的 Solr 通配符查询 https stackoverflow com questions 10023133 solr wildcard query with whitespace 但这个问题没有得
  • MultiFieldQueryParser 正在从首字母缩略词中删除点

    我再次发布这个问题 因为我的查询没有得到答复 我正在使用 Lucene 开发图书搜索 api 用户可以搜索标题或描述字段包含 C F A 的书籍 我正在使用 StandardAnalyzer 以及停用词列表 我使用 MultiFieldQu
  • 在elasticsearch中转义特殊字符

    我正在使用Elasticsearch python 客户端 https elasticsearch py readthedocs io en master 对我们托管的 elasticsearch 实例进行一些查询 我注意到一些字符需要转义
  • NoSQL(MongoDB)与 Lucene(或 Solr)作为数据库[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 随着基于文档数据库的 NoSQL 运动的发展 我最近关注了 MongoDB 我注意到如何将项目视为 文档 就像 Lucene 以及 Solr 用
  • Elasticsearch:带有停用词消除功能的带状疱疹

    我正在尝试实现一个 Elasticsearch 映射来优化大量文本中的短语搜索 根据中的建议本文 http www elasticsearch org blog searching with shingles 我使用 shingle 过滤器
  • 如何将 NHibernate 与 Lucene.Net 集成

    这变得很烦人 尝试将 Lucene Net 搜索与 NHibernate 集成 我只找到了 07 年的一些信息 有没有好看的最新这个的教程 从哪里开始 下载什么等 有没有办法在其他地方设置 NHibernate Search 元数据 而不是
  • query_string 和 multi_match 有什么区别?

    运行此查询时 query string query text fields field1 field2 multi match query text fields field1 field2 有什么不同 何时使用其中之一 何时使用另一个 q
  • Lucene.Net 下划线导致令牌分裂

    我已将 MsSqlServer 数据库表 视图和存储过程编写到目录结构中 然后使用 Lucene net 对其进行索引 我的大多数表 视图和过程名称都包含下划线 我使用标准分析器 如果我查询名为 tIr 的表例如 发票 tnWtn01 我收
  • 在云模式下设置 Apache Solr

    我必须执行以下操作 我必须在 2 个服务器 节点上部署 Solr 在另一台服务器上部署 Zookeeper 将自定义配置上传到 Zookeeper 创建具有 2 个分片和 2 个副本的自定义集合 Solr 7 4 0 和 Zookeeper
  • lucene 3.5中分组和facet有什么区别

    我在lucene 3 5 contrib文件夹中发现了两个插件 一个是分组 另一个是facet 在我的选择中 它们都用于将我的文档分为不同的类别 为什么 lucene 现在有两个插件呢 它们是两个不同的 lucene 特性 Grouping

随机推荐

  • 通过 ajax 加载的表单上的 :remote => true/data-remote

    在我的 Rails 应用程序中 我有一个使用 jQuery 加载方法通过 Ajax 加载的表单 function load sales form product id sales form load product id 加载的表单有一个
  • Junit测试时如何将日志级别设置为DEBUG?

    我将 SLF4J 与 LOG4J 一起使用 配置通常位于log4j properties 并将日志级别设置为 INFO 但是在测试期间我想将日志设置为 调试 我看不出有什么方法可以实现自动化 也没有类似的东西log4j tests prop
  • PyOpenCL 矩阵乘法

    我有使用 pyopenCL 进行矩阵乘法的代码 我的问题是某些矩阵的结果是错误的 我不明白为什么 经过一番研究后 我认为它与类似的全球规模有关 但我不明白如何设置该值 例如 使用 numpy dtype float32 的矩阵 矩阵1 0
  • 如何使用 Angular 的装饰器模式来增强指令的链接功能?

    我正在开发一个 Angular 库 并寻找一种使用装饰器模式扩展指令的方法 angular module myApp decorator originaldirectiveDirective delegate function delega
  • Jekyll 右对齐文本

    如何在 Jekyll 中右对齐文本 我有一段文本想要右对齐 如果是 HTML 我会这样做 style text align right 我怎样才能用 Jekyll 在 Markdown 中做到这一点 Jekyll 2 0 使用 kramdo
  • DefaultConnection 和membership - localsqlserver 和defaultconnection 之间的连接是什么

    嗯 我真的无法理解这个问题 在 web config 我有
  • 编译器错误消息:CS0029:无法将类型“int”隐式转换为“string”

    我需要转换String表数据库的输入整数值在 C NET 4 中并尝试了受此启发的代码Link https stackoverflow com questions 2344411 how to convert string to integ
  • 获取 ASP.NET MVC 站点在文件系统中的路径

    我有一个 ASP NET MVC 项目 它有一个名为电子邮件的子文件夹 其中包含我的电子邮件模板的 HTM 文件 在网站的某些位置 我有一个控制器需要加载这些模板之一并将其作为电子邮件发送 我想要做的是使用反射来获取当前执行程序集的路径 但
  • Visual Studio Code 无法在 WSL2 上运行

    当我尝试在 WSL2 终端中打开 VS Code 时 如下所示 code 我收到以下错误 mkdir cannot create directory DIRECTORY Permission denied 当使用 sudo 启动时 sudo
  • 使用 Linq to SQL 进行多线程处理

    我正在构建一个应用程序 它需要我使用 DataContext 的内部线程 我的应用程序不断抛出异常InvalidOperationException类似于 There is already an open DataReader associ
  • 未知长度资产的 AVAssetResourceLoaderDelegate 实现

    我的 iOS 应用程序使用 AVPlayer 播放来自我的服务器的流音频并将其存储在设备上 我实现了 AVAssetResourceLoaderDelegate 因此我可以拦截该流 我改变了我的计划 从http到一个假方案 以便调用 AVA
  • 戳堆栈

    我试图了解堆栈到底是如何工作的 所以我将在这里重新创建一个带有一些问题的小示例 假设我在 ASM 中有一段小代码 它执行以下操作 这一切都是x86 intel语法 Linux push ebp mov ebp esp sub esp 16
  • 通用视图模型?

    我想知道尝试创建一个采用通用视图模型的视图是否是一种好的做法 我想知道这一点 因为有人提到他预计必须执行大量重复代码 除非他开始制作通用视图和通用视图模型 所以基本上视图就像一组控件 一个视图可能有 2 个控件 例如文本框和单选按钮 另一个
  • pandas 中的 .sum() 方法给出不一致的结果

    我有一个大的 DataFrame 大约 4e 07 行 总结时 我得到2 显着不同的结果我是否做总和之前或之后列选择 另外 类型变化从 float32 到 float64 即使总数均低于 2 31 df col1 col2 col3 sum
  • 如何在同一个 HTML5 播放器中放大视频并切换视频流?

    我的视频将分为 4 个视频 首先 播放器将传输较低分辨率的原始视频 然后用户可以放大视频以查看更多细节 我需要播放器根据用户放大的位置传输 4 个视频之一 分辨率较高 我如何使用 VideoJS 或任何其他视频播放器来实现这一点 经过一番查
  • 为什么我的托管 Django 站点(alwaysdata)无法显示我的页面

    我已经将 Django 部署在总是数据网 http www alwaysdata com 这是我的主页http zjm1126 alwaysdata net http zjm1126 alwaysdata net 我改变index html
  • 在ctrlp + vim中使用ag

    我想将 ag 银色搜索器 与 ctrlp 和 vim 一起使用 我的 vimrc 中有这个 if executable ag set grepprg ag nogroup nocolor let g ctrlp user command a
  • 为什么 *[checked] 在使用 jQuery 的过滤方法时表现得像 :checked ?

    继从上一个问题 https stackoverflow com questions 8673201 why does checked not match a single checked input box 假设我在加载 jQuery 1
  • 使用动态文件名进行复制

    我正在尝试编写一个函数来将 csv 数据加载到表中 我希望输入参数是文件的路径 CREATE OR REPLACE FUNCTION public loaddata filepathname varchar RETURNS void AS
  • 如何检查 Lucene IndexWriter 实例是否有效/打开?

    抱歉这个简单的问题 但似乎没有任何明显的方法 根据文档 建议保留单个实例IndexWriter存储在内存中 可以一次又一次地用于更新 而不是为每次更改打开和关闭一个内存 这要昂贵得多 然而 文档还指出IndexWriter如果发生异常 例如