Solr可以加载原始Lucene索引吗?

27 lucene api search solr

我的一些同事有一个大型的Java Web应用程序,它使用了一个用Lucene Java构建的搜索系统.我想做的是有一个很好的基于HTTP的API来访问那些现有的搜索索引.我之前使用过Nutch,并且非常喜欢OpenSearch实现如何简单地将结果作为RSS获取.

我已经尝试在solrconfig.xml中设置Solr的dataDir,希望它能很好地获取现有的索引文件,但它似乎只是忽略它们.

我的主要问题是:

Solr可以用来访问其他地方创建的Lucene索引吗?或者可能有更好的解决方案?

小智 27

成功!随着Pascal建议对schema.xml进行更改,我立即开始工作.谢谢!

以下是我感兴趣的任何人的完整步骤:

  1. 下载Solr并将dist/apache-solr-1.4.0.war复制到tomcat/webapps
  2. 复制的示例/ solr/conf到/ usr/local/solr /
  3. 将预先存在的Lucene索引文件复制到/ usr/local/solr/data/index
  4. 将solr.home设置为/ usr/local/solr
  5. 在solrconfig.xml中,将dataDir更改为/ usr/local/solr/data(Solr查找里面的索引目录)
  6. 将我的Lucene索引加载到Luke中进行浏览(很棒的工具)
  7. 在示例schema.xml中,删除了除"string"之外的所有字段和字段类型
  8. 在示例schema.xml中,添加了14个字段定义,对应于Luke中显示的14个字段.例:<field name="docId" type="string" indexed="true" stored="true"/>
  9. 在示例schema.xml中,将uniqueKey更改为索引中似乎是文档ID的字段
  10. 在示例schema.xml中,将defaultSearchField更改为索引中似乎包含术语的字段
  11. 启动tomcat,最后没有看到异常,并在localhost中成功运行了一些查询:8080/solr/admin

这只是证明它可以工作的证据.显然,还有很多配置需要完成.


Pas*_*imo 11

我从未尝试过这个,但您必须调整schema.xml以包含Lucene索引中文档的所有字段,因为如果未在模式中定义字段,Solr将不允许您搜索字段.XML.

对schema.xml的调整还应包括定义查询时分析器以在您的字段中正确搜索,尤其是在使用自定义分析器编制索引的字段时.

在solrconfig.xml中,您可能必须更改indexDefaults和mainIndex部分中的设置.

但我很乐意阅读实际做过的人的答案.