繁体   English   中英

文本搜索引擎中SOLR与DB与App的关系

[英]Relation of SOLR to DB to App in a Text Search Engine

我最近听到一些同事谈论的一篇文章,其中有一篇曾读过,涉及将SOLR与数据库和应用程序结合使用,为应用程序本身提供“超收费”文本搜索引擎。 据我所知,SOLR是一项Web服务,它将Lucene的文本搜索功能公开给支持Web的应用程序。

我找不到他们在谈论的文章,​​但是通过Google进行一些相关的搜索,使使用SOLR的文本搜索引擎上的几篇超抽象的文章陷入了困境。

我想知道的是:这里所有三个组件之间的关系是什么?

谁叫谁? Lucene是否会以某种方式定期从数据库中提取和缓存文本数据,然后该应用向SOLR查询Lucene的文本内容? 基于Java的SOLR驱动的文本搜索引擎的典型软件堆栈/设置是什么? 提前致谢!

您在这里的基本概述中是正确的:SOLR是位于Lucene之上的Web服务和语法帮助器。

本质上,将SOLR配置为基于许多配置选项(包括加权,字符串操作等)为特定数据建立索引。SOLR可以指向DB作为其要索引的数据源,也可以指向单个文档(例如XML)文件)可以通过网络API提交以进行索引。

Web应用程序通常会向SOLR API发出HTTP请求,而SOLR将返回与查询匹配的索引数据。 出于所有目的和目的,Web应用程序将SOLR视为HTTP API。 它不需要以任何方式了解Lucene。 因此,从本质上讲,数据流如下所示:

Website --> SOLR API --> indexed datasource (DB or document collection)

就“何时” SOLR看着数据库为新数据或更新数据建立索引而言,可以通过多种方式进行配置,但是最常见的是通过调用导致重新索引的SOLR API的特定功能来触发。 这可以通过计划的作业手动进行,也可以通过网络应用程序等方式进行。

这是我开始为我的项目实施时所了解的-

  • SOLR可以称为应用程序服务器和数据库之间的中间人 SOLR由自己的服务器(码头)组成,该服务器将启动并侦听来自您的应用服务器的任何请求。

  • 您的应用程序服务器调用SOLR,为其提供模块名称和搜索模式

  • SOLR将被提供一些xml配置文件,这些文件将告诉SOLR,对于给定的模块名称,必须对架构的哪个进行缓存(或建立索引)

  • SOLR可能正在使用Lucene的文本搜索功能来理解“搜索模式”并从已缓存/索引的数据中获得所需的结果

  • 可以手动(通过GET URL执行命令)完成SOLR 索引 (全部或部分),也可以使用SOLR配置文件定期进行索引

您可以参考Apache SOLR网站以获取更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM