Solr as"桌面客户端中的独立二进制文件"没有服务器

时间:2016-06-08 10:06:20

标签: java solr lucene solrj

我正在使用Lucene创建小搜索工具。我需要索引文件/数据库数据&搜索索引。 Lucene我正在研究的功能很少(索引txt文件,便携式索引)。我需要一些更多的功能,如索引不同类型的文件,索引数据库,同步/合并索引和&搜索索引数据的权重/评级系统。

  • 是否可以使用SOLRJ API(仅限二进制文件)进行独立客户端实用程序开发(不运行服务器)?我发现很难启动EmbeddedSolrServer。 standalone EmbeddedSolrServer 上的任何示例都将非常感谢。
  • 是否可以使用Lucene API& SolrJ API并行解决lucene的限制?

2 个答案:

答案 0 :(得分:0)

SolrJ是为与Solr交谈而作出的。这可以是EmbeddedSolr,也可以是单独的实例。如果您不使用Solr,SolrJ将不会为您做任何事情。在这种情况下,您将不得不运行EmbeddedSolr实例。

如果您打算使用SolrJ和Solr,我会尽可能避免直接通过Lucene做任何事情。选择一个 - 直接使用Lucene,或通过Solr使用它。这两种方法都有效,但设置任务会有所不同。

Solr使用Tika进行文档索引,所以如果你直接实现Lucene,你想要链接Tika并像Solr一样自己使用它。

两个地方都支持同样的重量/等级(Solr默认使用Lucene和Lucene自己的DefaultSimilarity)。

答案 1 :(得分:0)

Solr本身(即使你没有使用SolrJ)提供了一种使用REST接口直接与它交谈的简单方法。它可以用作“微服务”。我即将构建一个桌面搜索实用程序,它将包括提交搜索请求(REST调用,通过简单的URL调用),然后在列表中获取结果找到的文件,以便用户可以点击它们进行编辑。基本上我的帖子的重点是你不需要将Solr“嵌入”你的应用程序来使用它。让它成为机器上运行的服务,就像MongoDB实例或数据库实例一样,或者在不同的进程中运行许多其他东西。将它保留在外部,只需调用它,即使你只在一台机器上使用它,就像我要写的桌面搜索工具一样。