我的一些同事有一个大型 Java 网络应用程序,该应用程序使用一个用 Lucene Java 构建的搜索系统。我想要做的是有一个很好的基于 HTTP 的 API 来访问那些现有的搜索索引。我以前使用过 Nutch,并且非常喜欢 OpenSearch 实现如此简单,它可以以 RSS 形式获取结果。
我试过在 solrconfig.xml 中设置 Solr 的 dataDir,希望它能愉快地获取现有的索引文件,但它似乎只是忽略了它们。
我的主要问题是:
能否使用 Solr 访问在别处创建的 Lucene 索引?或者可能有更好的解决方案?
最佳答案
成功了!根据 Pascal 对 schema.xml 的更改建议,我很快就让它工作了。谢谢!
对于任何感兴趣的人,这是我的完整步骤:
- 下载 Solr 并将 dist/apache-solr-1.4.0.war 复制到 tomcat/webapps
- 将 example/solr/conf 复制到/usr/local/solr/
- 将预先存在的 Lucene 索引文件复制到/usr/local/solr/data/index
- 将 solr.home 设置为/usr/local/solr
- 在solrconfig.xml中,将dataDir改为/usr/local/solr/data(Solr在里面寻找index目录)
- 将我的 Lucene 索引加载到 Luke 中进行浏览(很棒的工具)
- 在示例 schema.xml 中,删除了除“string”之外的所有字段和字段类型
- 在示例 schema.xml 中,添加了 14 个字段定义,对应于 Luke 中显示的 14 个字段。示例:
<field name="docId" type="string" indexed="true" stored="true"/>
- 在示例 schema.xml 中,将 uniqueKey 更改为我的索引中似乎是文档 ID 的字段
- 在示例 schema.xml 中,将 defaultSearchField 更改为我的索引中似乎包含术语的字段
- 启动tomcat,终于没有异常,成功在localhost:8080/solr/admin中运行了一些查询
这只是对我来说它可以工作的证明。显然还有很多配置要做。
关于api - Solr 可以加载原始 Lucene 索引吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4449225/