Lucene 搜索索引复制

Lucene 搜索索引复制,lucene,full-text-search,replication,clucene,Lucene,Full Text Search,Replication,Clucene,我正在开发一个应用程序,它需要在桌面应用程序中创建一个CLucene索引,但需要在iOS设备上进行复制(只读)搜索,并在索引更新时进行高效更新 除了在索引发生变化时简单地重新下载整个索引外,我在这里有什么选择?CLucene本身不支持复制,但Solr(它构建在Lucene之上)支持复制,因此这显然是可能的。有人知道Solr是如何做到这一点的吗?有人知道如何实现类似的功能吗 如果这是不可能的,是否有任何(非基于Java的)全文搜索实现比CLucene更好地满足我的需求 查询桌面应用程序不是一个选项

我正在开发一个应用程序,它需要在桌面应用程序中创建一个CLucene索引,但需要在iOS设备上进行复制(只读)搜索,并在索引更新时进行高效更新

除了在索引发生变化时简单地重新下载整个索引外,我在这里有什么选择?CLucene本身不支持复制,但Solr(它构建在Lucene之上)支持复制,因此这显然是可能的。有人知道Solr是如何做到这一点的吗?有人知道如何实现类似的功能吗

如果这是不可能的,是否有任何(非基于Java的)全文搜索实现比CLucene更好地满足我的需求


查询桌面应用程序不是一个选项-移动应用程序必须能够脱机搜索。

Lucene索引基于一次写入多段读取。这意味着,当新文档提交到Lucene索引时,您需要检索的全部内容是:

  • 新的部分
  • 合并段(已合并为单个段的旧段,如有)
  • 段文件(存储有关当前段的信息)
下载所有这些新文件后,可以安全地删除已合并的段文件。要考虑这些更改,只需重新打开IndexReader


Solr有一个Java实现来实现这一点,但是考虑到它的简单性,使用诸如rsync之类的同步工具也可以实现这一点。顺便说一句,这就是Solr 1.4之前Solr复制的工作方式,您仍然可以找到。

Lucene索引是基于一次写入多个段。这意味着,当新文档提交到Lucene索引时,您需要检索的全部内容是:

  • 新的部分
  • 合并段(已合并为单个段的旧段,如有)
  • 段文件(存储有关当前段的信息)
下载所有这些新文件后,可以安全地删除已合并的段文件。要考虑这些更改,只需重新打开IndexReader

Solr有一个Java实现来实现这一点,但是考虑到它的简单性,使用诸如rsync之类的同步工具也可以实现这一点。顺便说一下,这就是Solr 1.4之前Solr复制的工作方式,您仍然可以找到