簡體   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