问题标签 [indexwriter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
602 浏览

java - IndexWriter.commit() 不足以更改索引

我刚刚将我们的 Lucene 实现从 3.1 移植到 4.9,如果没有 forceMerge(1)(曾经是优化的),我似乎仍然无法更新索引中的文档。我了解,每当我更新文档时,旧文档都会被标记为已删除,而新文档会存储在新的段/文件中。升级后我继续看到的结果是文档被标记为已删除,但搜索者似乎从未看到新段。对该文档的搜索只是空的。为什么它不起作用?

我希望工作的代码:

有效的代码:

0 投票
2 回答
763 浏览

java - 调用提交后向 Lucene Index Writer 添加文档

我正在使用 Lucene 4.6。我创建了一个 Lucene IndexWriter(在 CREATE MODE 中)并添加了文档并提交了它(没有关闭它)。然后运行搜索查询并存储结果。我再次将文档添加到索引编写器并提交并关闭它。并对其进行搜索查询。它也给出了新数据和旧数据的结果。旧数据也出现在索引中。我可以知道从索引中删除所有数据的方法吗?有什么办法可以一次性删除所有文件吗?

0 投票
1 回答
347 浏览

lucene - 根据语言更改字段的 Lucene 分析器

我需要根据文档语言对文档进行索引,为此我想使用适当的分析器。是否有可能在不关闭和重新打开 IndexWriter 的情况下更改单个字段的分析器,因为这显然是一项代价高昂的任务,而且语言可能会经常更改?还是有更好的方法来处理多种语言?

谢谢

0 投票
1 回答
809 浏览

java - 如何在不删除文档的情况下保留 Lucene 索引

这是我关于 Stack Overflow 的第一个问题,祝我好运。

我正在使用 java 对 Lucene 索引进行分类过程,我需要更新一个名为 category 的文档字段。为此,我一直在使用带有索引编写器 updateDocument() 函数的 Lucene 4.2,并且它工作得很好,除了删除部分。即使我在更新后使用 forceMergeDeletes() 函数,索引也会显示一些已删除的文档。例如,如果我对包含 1000 个文档的索引运行分类,则索引中的最终文档数量保持不变并且按预期工作,但是当我将索引文档增加到 10000 时,索引会显示一些已删除的文档,但不是全部。那么,我怎样才能真正从索引中删除那些已删除的文档呢?

这是我的一些代码片段:

我花了很多时间寻找解决方案,有人说索引中删除的文档并不重要,当我们继续向索引中添加文档时,它们最终会被删除,但我需要以某种方式控制该过程我可以随时迭代索引文档,并且我检索到的文档实际上是活的。Lucene 4.0 之前的版本在 IndexReader 类中有一个名为 isDeleted(docId) 的函数,如果文档已被标记为已删除,这可能只是解决我的问题的一半,但我还没有找到解决方法Lucene 4.2 版。如果你知道如何做到这一点,我真的很感激你分享它。

0 投票
0 回答
976 浏览

solr - Lucene indexWriter 更新不影响 Solr 搜索

我实现了一个小代码,目的是从 Lucene 索引中提取一些关键字。我确实使用搜索组件实现了这一点。我的问题是当我尝试更新 Lucene IndexWriter 时,放在上面的 Solr 索引不会影响。如您所见,我做了提交部分。

请帮助我解决这个问题。

更新: 我做了一些调查,发现文件的检索部分工作正常,而 Solr 没有重新启动。但是文档的搜索部分不起作用。在我重新启动 Solr 后,似乎核心损坏并且无法启动!这是相应的日志:

我的猜测是索引关键字字段的问题以及与关闭 IndexWriter 相关的问题。

0 投票
1 回答
555 浏览

java - Lucene-Appengine 的 SegmentIndexInput readByte 方法出现 NullPointerException

我从运行 Lucene 中得到以下错误跟踪。我包括提示错误的代码段。具体的项目/连接器是Lucene for Appengine

代码

错误

这是我的appengine-web.xml文件,我也按照建议使用修改后的文件RamUsageEstimator

0 投票
0 回答
119 浏览

java - Solr 更新 indexwriter 不会影响搜索,直到重新启动

我确实实现了一个 Solr 插件,目的是更新 Solr 事件(提交、优化等)的某些字段。我的问题是更新的文档不会影响 Solr 搜索,直到我手动尝试重新启动 Solr。请您看看我的代码并告诉我是什么部分导致了这个问题?

问候。

0 投票
1 回答
844 浏览

templates - 如何修改nutch索引编写器用于elasticsearch的索引模板?

开箱即用的弹性搜索的 nutch 索引编写器在弹性搜索中生成一个索引,其名称在属性元素中的 nutch-site.xml(或 nutch-default.xml)中提供:

对于这种自动生成的索引,elasticsearch 中的映射部分始终具有以下结构

  1. 这个的模板在哪里?
  2. 可以改变吗?
  3. 如果是,哪些字段是必填的,哪些是可选的?
  4. 我在哪里可以找到这方面的更多信息?

任何帮助表示赞赏!谢谢,沃尔夫拉姆

0 投票
1 回答
2868 浏览

indexing - Lucene IndexWriter.Close() 与 indexWriter.Commit()

当我只有一个实例时IndexWriter.Close()和之间有什么不同?IndexWriter.Commit()indexWriter

注意:我要制作索引的数据非常大,所以我无法关闭 IndexWriter 运行时。

注意:我想在数据同时索引时搜索文档。

0 投票
1 回答
209 浏览

java - Apache Lucene 的实现

在过去的几周里,我正在阅读Apache Lucene的源代码,并试图找出主要负责在磁盘上写入帖子列表/索引的方法或类。我已经阅读了很多关于索引的内容,并试图找到在将索引写入磁盘的过程中调用某些方法但失败的点。我知道当某些内部缓冲区已满时,会定期写入索引或发布列表。如果有人已经阅读了代码或知道它在哪里完成,请告诉。谢谢