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

标签 api search lucene solr

我的一些同事有一个大型 Java 网络应用程序,该应用程序使用一个用 Lucene Java 构建的搜索系统。我想要做的是有一个很好的基于 HTTP 的 API 来访问那些现有的搜索索引。我以前使用过 Nutch,并且非常喜欢 OpenSearch 实现如此简单,它可以以 RSS 形式获取结果。

我试过在 solrconfig.xml 中设置 Solr 的 dataDir,希望它能愉快地获取现有的索引文件,但它似乎只是忽略了它们。

我的主要问题是:

能否使用 Solr 访问在别处创建的 Lucene 索引?或者可能有更好的解决方案?

最佳答案

成功了!根据 Pascal 对 schema.xml 的更改建议,我很快就让它工作了。谢谢!

对于任何感兴趣的人,这是我的完整步骤:

  1. 下载 Solr 并将 dist/apache-solr-1.4.0.war 复制到 tomcat/webapps
  2. 将 example/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在里面寻找index目录)
  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中运行了一些查询

这只是对我来说它可以工作的证明。显然还有很多配置要做。

关于api - Solr 可以加载原始 Lucene 索引吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4449225/

相关文章:

php过滤搜索结果

grails - ElasticSearch 过滤器未返回结果...语法问题?

java - 从 Lucene 中查找搜索命中的位置

python - Base64 身份验证 Python

sql - PSQL : Full text search to ignore or match periods and stop characters

json - 嵌套映射返回 json array[]

hibernate - 我应该在 MVC 架构中哪里使用 Hibernate Criteria?

lucene - 如何根据地理位置进行 Lucene.Net 搜索本地结果?

api - SendGrid 'DeliverAsync()' 不工作

java - 如何使用 JsonReader 解析嵌套的键和值?