Lucene 上打开的文件太多错误

2024-04-18

我正在进行的项目是对一定数量的数据(长文本)建立索引,并将它们与每个时间间隔(大约 15 到 30 分钟)的单词列表进行比较。

一段时间后,比如说第 35 轮,在开始索引第 36 轮的新数据集时,发生了此错误:

    [ERROR] (2011-06-01 10:08:59,169) org.demo.service.LuceneService.countDocsInIndex(?:?) : Exception on countDocsInIndex: 
    java.io.FileNotFoundException: /usr/share/demo/index/tag/data/_z.tvd (Too many open files)
        at java.io.RandomAccessFile.open(Native Method)
        at java.io.RandomAccessFile.<init>(RandomAccessFile.java:233)
        at org.apache.lucene.store.SimpleFSDirectory$SimpleFSIndexInput$Descriptor.<init>(SimpleFSDirectory.java:69)
        at org.apache.lucene.store.SimpleFSDirectory$SimpleFSIndexInput.<init>(SimpleFSDirectory.java:90)
        at org.apache.lucene.store.NIOFSDirectory$NIOFSIndexInput.<init>(NIOFSDirectory.java:91)
        at org.apache.lucene.store.NIOFSDirectory.openInput(NIOFSDirectory.java:78)
        at org.apache.lucene.index.TermVectorsReader.<init>(TermVectorsReader.java:81)
        at org.apache.lucene.index.SegmentReader$CoreReaders.openDocStores(SegmentReader.java:299)
        at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:580)
        at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:556)
        at org.apache.lucene.index.DirectoryReader.<init>(DirectoryReader.java:113)
        at org.apache.lucene.index.ReadOnlyDirectoryReader.<init>(ReadOnlyDirectoryReader.java:29)
        at org.apache.lucene.index.DirectoryReader$1.doBody(DirectoryReader.java:81)
        at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:736)
        at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:75)
        at org.apache.lucene.index.IndexReader.open(IndexReader.java:428)
        at org.apache.lucene.index.IndexReader.open(IndexReader.java:274)
        at org.demo.service.LuceneService.countDocsInIndex(Unknown Source)
        at org.demo.processing.worker.DataFilterWorker.indexTweets(Unknown Source)
        at org.demo.processing.worker.DataFilterWorker.processTweets(Unknown Source)
        at org.demo.processing.worker.DataFilterWorker.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:636)

我已经尝试通过以下方式设置最大打开文件数:

        ulimit -n <number>

但一段时间后,当区间有大约1050行长文本时,就会出现同样的错误。但这种事只发生过一次。

我应该遵循修改 Lucene IndexWriter 的 mergeFactor 的建议吗(打开的文件太多)-SOLR https://issues.apache.org/jira/browse/SOLR-4或者这是索引数据量的问题?

我还读到它是批量索引或交互式索引之间的选择。 如何仅通过频繁更新来确定索引是否是交互式的? 那么我应该将这个项目归类为交互式索引吗?

更新:我正在添加 IndexWriter 的片段:

        writer = new IndexWriter(dir, new StandardAnalyzer(Version.LUCENE_30), IndexWriter.MaxFieldLength.UNLIMITED);

似乎 maxMerge (?或字段长度...)已经设置为无限。


我已经使用了 ulimit 但错误仍然显示。 然后我检查了 lucene 功能的定制核心适配器。 事实证明,有太多 IndexWriter.open 目录处于打开状态。

需要注意的是,处理后,总是会调用关闭打开的目录。

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

Lucene 上打开的文件太多错误 的相关文章

随机推荐

  • 使用 terraform 将公共 GKE 更改为私有 GKE 集群

    如何将现有的GKE集群更改为GKE私有集群 我是否能够根据防火墙规则从互联网连接到 Kubectl API 还是应该拥有堡垒主机 我不想实施Cloud Nat or nat gateway 我有一个鱿鱼代理虚拟机 可以处理 Pod 的互联网
  • 如何使用 javascript/jquery 设置 asp 面板元素可见/隐藏

    我有一个asp Panel我的页面上的元素 我可以在后面的代码中设置其可见性 但我还需要通过 javascipt 隐藏它 My panel定义如下
  • 使用 docker-client api 将镜像推送到 docker 注册表

    在探索 docker client api java 时 设置与虚拟机上运行的 docker 守护进程的连接到底需要哪些证书 我在网上找到的代码 Create a client based on DOCKER HOST and DOCKER
  • Hibernate 单向一对多关联 - 为什么连接表更好?

    在本文档中 向下滚动到单向部分 http docs jboss org hibernate stable annotations reference en html single entity mapping association col
  • 自动替换在 emacs 中输入的某些文本字符串

    有一个小细节一直困扰着我一段时间 即我经常打字 inclued代替 include 如果不是很明显的话 我编写了大量 C 和 C 程序 这个拼写错误破坏了无数的构建并消耗了本来可以用来喝咖啡或冲浪的时间 当然 emacs 可以提供帮助并在我
  • 当 ExceptionMapper 创建响应时,未遍历 RestEasy 后处理拦截器链

    我正在使用 RestEasy 构建我的 Restful Web 服务 我已经实现了 ExceptionMappers 来准备特定的异常响应 我还实现了 MessageBodyWriterInterceptors 和几个 PostProces
  • EasyMock的使用方法

    期望似乎对我不起作用 package com jjs caf library client drafting import static org junit Assert import org easymock EasyMock impor
  • 用于从段落中删除所有属性的正则表达式

    我知道正则表达式通常不应该用于解析 html 内容 在我的特殊情况下 我需要它们 原因是 我使用 rte 编辑器 并且在粘贴到编辑器中时需要对段落属性进行一些替换 我有类似的东西 p text blah blah p 我需要删除所有属性 以
  • 数组中的clear方法

    我正在尝试创建一个清除方法来清除我拥有的数组 我已经看到使用清除方法是我所需要的 但我似乎无法使用它 list clear 我认为我必须做的 public void clear return doctors clear 顺便说一下 医生是一
  • 参数和属性之间的区别[重复]

    这个问题在这里已经有答案了 可能的重复 getAttribute 和 getParameter 之间的区别 https stackoverflow com questions 5243754 difference between getat
  • 当我的 MySQL 表更新时,如何收到电子邮件?

    您好 我想知道 MySQL 中是否有一种方法可以在 MySQL 表中添加一行时自动向自己发送电子邮件 实现这一目标的最佳方法是使用触发器和 cron 创建一个 通知队列 表 并在将行插入所需表时使用触发器填充该表 eg CREATE TAB
  • 如何在 R 中创建类似箱线图的分类散点图?

    有谁知道如何创建散点图R创建像这样的情节these http graphpad com support faq graph tip how can i make a barcolumn graph that also shows the i
  • 使用 zip4j 重命名 zip 中的文件

    我在用着zip4j http www lingala net zip4j download php1 3 1 在我的应用程序中压缩文件 现在我尝试重命名 zip 内的文件 而不必重命名文件本身 似乎有一种方法可以做到这一点 但它不起作用 我
  • 将当前日期设置为在 Bootstrap 日期选择器中选择

    我在用引导日期选择器 https github com eternicode bootstrap datepicker在我的代码中 如何在 JavaScript 中选择当前日期并将其显示为已选择 经过研究 这是我正在使用的代码 但当天没有显
  • 本地 JS 文件的 Typescript 声明文件

    当我们正在转换为 Typescript 的过程中 我正在尝试为工作中的 Javascript 文件添加类型 但是 我无法识别声明文件 这是我的文件结构 js Foo js typings Foo 索引 d ts index ts 包 jso
  • Symfony 4:JWT 和 Behat 的测试数据库

    我将 API Platform 2 1 与 Symfony 4 结合使用 并使用 LexikJWTAuthenticationBundle 进行身份验证 并使用 Behat 进行测试 我无法正确设置 这是到目前为止我的配置 Feature
  • 将使用 FPDF php 库创建的 PDF 保存在 MySQL blob 字段中

    我需要创建一个 pdf 文件fpdf http www fpdf org库并将其保存在我的 MySQL 数据库的 blob 字段中 问题是 当我尝试从 blob 字段检索文件并将其发送到浏览器进行下载时 下载的文件已损坏并且无法正确显示 如
  • 列出本地打印机

    我使用此例程列出计算机上安装的本地打印机 var p pointer hpi PRINTER INFO 2A hGlobal cardinal dwNeeded dwReturned DWORD bFlag boolean i dword
  • 是否有一个库可以将 java 命令行选项解析为关联数组?

    我需要一个可以采用以下形式的命令行选项的库java jar aaa a bbb b ccc c并返回一个数组 其值可以通过以下方式访问argsArray aaa argsArray bbb etc 有一些带有示例的库可以做到这一点吗 Jav
  • Lucene 上打开的文件太多错误

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