新聞中心
Solr是一個(gè)基于Lucene的開源搜索引擎,廣泛用于企業(yè)級(jí)應(yīng)用程序中的全文索引和搜索功能。Solr可以通過(guò)其強(qiáng)大的API與許多數(shù)據(jù)源集成,其中包括本地文件系統(tǒng)、數(shù)據(jù)庫(kù)和Web服務(wù)。 Solr提供了一個(gè)易于使用的界面,使用戶可以使用各種數(shù)據(jù)源索引和檢索數(shù)據(jù),并對(duì)其進(jìn)行高級(jí)搜索和分析。

10年積累的網(wǎng)站制作、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先做網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有靖州免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
在很多情況下,我們的數(shù)據(jù)存儲(chǔ)在一個(gè)遠(yuǎn)程數(shù)據(jù)庫(kù)中。雖然Solr提供了許多數(shù)據(jù)源與其集成,但如果要將數(shù)據(jù)從遠(yuǎn)程數(shù)據(jù)庫(kù)導(dǎo)入Solr,這可能會(huì)有點(diǎn)棘手。在本文中,我將探討如何輕松地將數(shù)據(jù)從遠(yuǎn)程數(shù)據(jù)庫(kù)導(dǎo)入Solr。
之一步:創(chuàng)建SolrCore
我們需要在機(jī)器上安裝Solr。安裝完成后,我們需要?jiǎng)?chuàng)建一個(gè)新的SolrCore。在本示例中,我將創(chuàng)建一個(gè)名為“myCore”的SolrCore,該SolrCore將用于存儲(chǔ)從遠(yuǎn)程數(shù)據(jù)庫(kù)導(dǎo)入的數(shù)據(jù)。
要?jiǎng)?chuàng)建一個(gè)新的SolrCore,請(qǐng)按照以下步驟操作:
1. 打開終端并導(dǎo)航到Solr安裝的目錄。
2. 運(yùn)行以下命令以創(chuàng)建一個(gè)名為“myCore”的新SolrCore:
./solr create -c myCore
第二步:配置數(shù)據(jù)源
在Solr中,數(shù)據(jù)源是通過(guò)數(shù)據(jù)配置文件定義的。這些文件包含有關(guān)如何連接到數(shù)據(jù)源以及如何格式化數(shù)據(jù)的信息。在本示例中,我將使用JDBC數(shù)據(jù)源來(lái)連接到MySQL數(shù)據(jù)庫(kù)。
要定義JDBC數(shù)據(jù)源,請(qǐng)按照以下步驟操作:
1. 在SolrCore的根目錄中創(chuàng)建一個(gè)名為“data-config.xml”的新文件。
2. 在“data-config.xml”文件中添加以下內(nèi)容:
“`xml
“`
在上面的代碼中:
– 我們定義了一個(gè)名為“jdbcConn”的數(shù)據(jù)源,它使用JDBC驅(qū)動(dòng)程序連接到MySQL數(shù)據(jù)庫(kù)。在此處,您應(yīng)該更改URL、用戶和密碼以適應(yīng)您的環(huán)境。
– 我們定義了一個(gè)名為“employee”的實(shí)體,它執(zhí)行了一個(gè)查詢來(lái)選擇MySQL數(shù)據(jù)庫(kù)中的所有員工記錄。對(duì)于每個(gè)記錄,我們定義了幾個(gè)Solr文檔字段。
第三步:配置SolrCore
一旦我們定義了數(shù)據(jù)源,我們需要將它們配置到SolrCore中。要做到這一點(diǎn),請(qǐng)按照以下步驟操作:
1. 在SolrCore的根目錄中創(chuàng)建一個(gè)名為“solrconfig.xml”的新文件。
2. 在“solrconfig.xml”文件中添加以下內(nèi)容:
“`xml
data-config.xml
“`
在上面的代碼中:
– 我們定義了一個(gè)名為“jdbcConn”的數(shù)據(jù)源,它使用JDBC驅(qū)動(dòng)程序連接到MySQL數(shù)據(jù)庫(kù)。在此處,您應(yīng)該更改URL、用戶和密碼以適應(yīng)您的環(huán)境。
– 我們定義了一個(gè)名為“/datmport”的請(qǐng)求處理程序,它將向SolrCore導(dǎo)入數(shù)據(jù)。對(duì)于該處理程序,我們指定了一個(gè)名為“data-config.xml”的數(shù)據(jù)配置文件。
第四步:導(dǎo)入數(shù)據(jù)
現(xiàn)在,我們已經(jīng)準(zhǔn)備好從遠(yuǎn)程數(shù)據(jù)庫(kù)中導(dǎo)入數(shù)據(jù)到SolrCore了。為了導(dǎo)入數(shù)據(jù),請(qǐng)按照以下步驟操作:
1. 打開終端并導(dǎo)航到Solr安裝的目錄。
2. 運(yùn)行以下命令以啟動(dòng)Solr服務(wù):
./solr start
3. 通過(guò)瀏覽器訪問(wèn)Solr管理控制臺(tái),例如:http://localhost:8983/solr/#/myCore/datmport。
4. 單擊“數(shù)據(jù)導(dǎo)入”選項(xiàng)卡,并單擊“全局配置”按鈕。確保選擇了正確的數(shù)據(jù)源,并單擊“測(cè)試連接”按鈕。如果連接成功,您將看到消息“測(cè)試成功!”。
5. 返回到“數(shù)據(jù)導(dǎo)入”選項(xiàng)卡,并單擊“執(zhí)行導(dǎo)入”按鈕。此時(shí),Solr將從MySQL數(shù)據(jù)庫(kù)中選擇所有員工記錄,并將它們添加到SolrCore中。
6. 一旦數(shù)據(jù)導(dǎo)入過(guò)程完成,您可以通過(guò)執(zhí)行搜索查詢檢查數(shù)據(jù)是否成功導(dǎo)入。
在本文中,我向您展示了如何使用JDBC數(shù)據(jù)源將數(shù)據(jù)從遠(yuǎn)程MySQL數(shù)據(jù)庫(kù)導(dǎo)入Solr。盡管在開始時(shí)可能有點(diǎn)困難,但是通過(guò)了解Solr的數(shù)據(jù)配置和SolrCore的配置,您可以輕松地完成此任務(wù)。Solr的強(qiáng)大搜索引擎和易于集成的功能使其成為企業(yè)級(jí)應(yīng)用程序中的理想選擇。
相關(guān)問(wèn)題拓展閱讀:
- solr怎么給hbase建立索引原理
solr怎么給hbase建立索引原理
以下資料整理自網(wǎng)絡(luò),以及查看solr幫助文檔。主要分為兩部分,之一部分是對(duì)《db-data-config.xml》的配置內(nèi)容的講解(屬于高級(jí)內(nèi)容),第二部分是DataImportHandler(屬于基礎(chǔ)),第三部分是對(duì)db-data-config.xml的進(jìn)階
之一部分是對(duì)《db-data-config.xml》
query是獲取全部數(shù)據(jù)的SQL
deltaImportQuery是獲取增量數(shù)據(jù)時(shí)使用的SQL
deltaQuery是獲取pk的SQL
parentDeltaQuery是獲取父Entity的pk的SQL
Full
Import工作原理:
執(zhí)行本Entity的Query,獲取所有數(shù)據(jù);
針對(duì)每個(gè)行數(shù)據(jù)Row,獲取pk,組裝子Entity的Query;
執(zhí)行子Entity的Query,獲取子Entity的數(shù)據(jù)。
Delta
Import工作原理:
查找子Entity,直到?jīng)]有為止;
執(zhí)行Entity的deltaQuery,獲取變化數(shù)據(jù)的pk;
合并子Entity
parentDeltaQuery得到的pk;
針對(duì)每一個(gè)pk
Row,組裝父Entity的parentDeltaQuery;
執(zhí)行parentDeltaQuery,獲取父Entity的pk;
執(zhí)行deltaImportQuery,獲取自身的數(shù)據(jù);
如果沒(méi)有deltaImportQuery,就組裝Query
限制:
子Entity的query必須引用父Entity的pk
子Entity的parentDeltaQuery必須引用自己的pk
子Entity的parentDeltaQuery必須返回父Entity的pk
deltaImportQuery引用的必須是自己的pk
第二部分是DataImportHandler
關(guān)于DataImportHandler的具體使用方法,詳見(jiàn)下文,如果你英文超級(jí)好,那看這個(gè)鏈接吧:
大多數(shù)的應(yīng)用程序?qū)?shù)者悄據(jù)存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)、xml文件中。對(duì)這樣的數(shù)據(jù)進(jìn)行搜索是很常見(jiàn)的應(yīng)用。所謂的DataImportHandler提供一種可配置的方式向solr導(dǎo)入數(shù)據(jù),可以一次全部導(dǎo)入,也可以增量導(dǎo)入。
概覽
目標(biāo)
能夠讀取關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
通過(guò)可配置的方式,能夠?qū)?shù)據(jù)庫(kù)中多列、多表的數(shù)據(jù)生成solr文檔
能夠通過(guò)solr文檔更新solr
提供 通過(guò)配置文件就能夠?qū)胨袛?shù)據(jù)的能力
能夠發(fā)現(xiàn)并處理
由insert、update帶來(lái)的變化(我們假定在表中有一個(gè)叫做“l(fā)ast-modified的列”)
能夠配置 “完全導(dǎo)入”和“增量導(dǎo)入”的時(shí)間
讓讀取xml文件,并建立索引成為可配置。
能夠?qū)?
其他的數(shù)據(jù)源(例如:ftp,scp,etc)或者其他格式的文檔(Json,csv)以插件的形式集成到項(xiàng)目中。
設(shè)計(jì)思路
這個(gè)Handler首先要在solrconfig.xml文件中配置下,如下所示。
/home/username/data-config.xml
從它的名字上,我們或許也可以猜到,
DataImportHandler正是requestHandler的實(shí)現(xiàn)。我們一共需要在兩個(gè)地方配置文件中進(jìn)行一些配置。
solrconfig.xml 。
data-config.xml必須在這個(gè)文件中配置,datasource也可以。不過(guò),一般將datasource放在data-config.xml文件中。
data-config.xml
怎樣獲取數(shù)據(jù)?(查詢語(yǔ)句、url等等)
要讀什么樣的數(shù)據(jù)(關(guān)系數(shù)據(jù)庫(kù)中的列、或者xml的域)
做什么樣的處理(修改/添加/刪除)清爛
跟關(guān)系數(shù)據(jù)庫(kù)一起使用
下面幾個(gè)步驟是必要的.
定義一個(gè)data-config.xml 文件,并這個(gè)答嫌漏它的路徑配置到solrconfig.xml
中關(guān)于DataImportHandler的配置中。
給出Connection的信息(假設(shè)你選擇在solrconfig中配置datasource)
打開DataImportHandler頁(yè)面去驗(yàn)證,是否該配置的都配置好了。
使用“完全導(dǎo)入”命令將數(shù)據(jù)從數(shù)據(jù)庫(kù)中導(dǎo)出,并提交給solr建立索引
使用“增量導(dǎo)入”命令對(duì)數(shù)據(jù)庫(kù)發(fā)生的變化的數(shù)據(jù)導(dǎo)出,并提交給solr建立索引。
配置數(shù)據(jù)源
將dataSource標(biāo)簽直接添加到dataConfig下面,即成為dataConfig的子元素.
數(shù)據(jù)源也可以配置在solrconfig.xml中
屬性type 指定了實(shí)現(xiàn)的類型。它是可選的。默認(rèn)的實(shí)現(xiàn)是JdbcDataSource。
屬性 name 是datasources的名字,當(dāng)有多個(gè)datasources時(shí),可以使用name屬性加以區(qū)分
其他的屬性都是隨意的,根據(jù)你使用的DataSource實(shí)現(xiàn)而定。
當(dāng)然 你也可以實(shí)現(xiàn)自己的DataSource。
多數(shù)據(jù)源
一個(gè)配置文件可以配置多個(gè)數(shù)據(jù)源。增加一個(gè)dataSource元素就可以增加一個(gè)數(shù)據(jù)源了。name屬性可以區(qū)分不同的數(shù)據(jù)源。如果配置了多于一個(gè)的數(shù)據(jù)源,那么要注意將name配置成唯一的。
例如:
然后這樣使用 ..
..
..
..
配置JdbcDataSource
JdbcDataSource中的屬性有
driver(必需的):jdbc驅(qū)動(dòng)名稱
url(必需的):jdbc鏈接
user:用戶名
password:密碼
批量大?。簀dbc鏈接中的批量大小
任何其他的在JdbcDataSource中配置的屬性,都會(huì)被直接傳給jdbc
driver
配置data-config.xml
solr
document是schema,它的域上的值可能來(lái)自于多個(gè)表.
data-config.xml的根元素是document。一個(gè)document元素代表了一種文檔。一個(gè)document元素中包含了一個(gè)或者多個(gè)root實(shí)體。一個(gè)root實(shí)體包含著一些子實(shí)體,這些子實(shí)體能夠包含其他的實(shí)體。實(shí)體就是,關(guān)系數(shù)據(jù)庫(kù)上的表或者視圖。每個(gè)實(shí)體都能夠包含多個(gè)域,每個(gè)域?qū)?yīng)著數(shù)據(jù)庫(kù)返回結(jié)果中的一列。域的名字跟列的名字默認(rèn)是一樣的。如果一個(gè)列的名字跟solr
field的名字不一樣,那么屬性name就應(yīng)該要給出。其他的需要的屬性在solrschema.xml文件中配置。
為了能夠從數(shù)據(jù)庫(kù)中取得想要的數(shù)據(jù),我們的設(shè)計(jì)支持標(biāo)準(zhǔn)sql規(guī)范。這使得用戶能夠使用他任何想要的sql語(yǔ)句。root實(shí)體是一個(gè)中心表,使用它的列可以把表連接在一起。
dataconfig的結(jié)構(gòu)
dataconfig的結(jié)構(gòu)不是一成不變的,entity和field元素中的屬性是隨意的,這主要取決于processor和transformer。
以下是entity的默認(rèn)屬性
name(必需的):name是唯一的,用以標(biāo)識(shí)entity
processor:只有當(dāng)datasource不是RDBMS時(shí)才是必需的。默認(rèn)值是SqlEntityProcessor
transformer:轉(zhuǎn)換器將會(huì)被應(yīng)用到這個(gè)entity上,詳情請(qǐng)瀏覽transformer部分。
pk:entity的主鍵,它是可選的,但使用“增量導(dǎo)入”的時(shí)候是必需。它跟schema.xml中定義的uniqueKey沒(méi)有必然的聯(lián)系,但它們可以相同。
rootEntity:默認(rèn)情況下,document元素下就是根實(shí)體了,如果沒(méi)有根實(shí)體的話,直接在實(shí)體下面的實(shí)體將會(huì)被看做跟實(shí)體。對(duì)于根實(shí)體對(duì)應(yīng)的數(shù)據(jù)庫(kù)中返回的數(shù)據(jù)的每一行,solr都將生成一個(gè)document。
一下是SqlEntityProcessor的屬性
query (required) :sql語(yǔ)句
deltaQuery : 只在“增量導(dǎo)入”中使用
parentDeltaQuery : 只在“增量導(dǎo)入”中使用
deletedPkQuery : 只在“增量導(dǎo)入”中使用
deltaImportQuery : (只在“增量導(dǎo)入”中使用) .
如果這個(gè)存在,那么它將會(huì)在“增量導(dǎo)入”中導(dǎo)入phase時(shí)代替query產(chǎn)生作用。這里有一個(gè)命名空間的用法${dataimporter.delta.}詳情請(qǐng)看solr1.4.
以下資料整理自網(wǎng)絡(luò),以及查看solr幫衫埋助文檔。主要分為兩部分,之一部分是對(duì)《db-data-config.xml》的配置內(nèi)容的講解(屬于高級(jí)內(nèi)容),第二部分是DataImportHandler(屬于基礎(chǔ)),第三部分是對(duì)db-data-config.xml的進(jìn)階 之一部分是對(duì)《db-data-config.xml》 query是獲取全部數(shù)據(jù)的SQL deltaImportQuery是獲取增量數(shù)據(jù)時(shí)使用的SQL deltaQuery是旅塌者獲取pk的SQL parentDeltaQuery是獲取父Entity的pk的SQL Full Import工作原理: 執(zhí)行本Entity的Query,獲取所有數(shù)據(jù); 針對(duì)每個(gè)行數(shù)據(jù)Row,獲取pk,組裝子Entity的Query; 執(zhí)行子Entity的Query,獲取子Entity的數(shù)據(jù)。 Delta Import工作原理: 查找子Entity,直到?jīng)]有為止; 執(zhí)行Entity的deltaQuery,獲取變化數(shù)拆薯?yè)?jù)的pk; 合并子Entity …
關(guān)于solr導(dǎo)入遠(yuǎn)程數(shù)據(jù)庫(kù)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
本文題目:輕松實(shí)現(xiàn)Solr數(shù)據(jù)導(dǎo)入遠(yuǎn)程數(shù)據(jù)庫(kù)(solr導(dǎo)入遠(yuǎn)程數(shù)據(jù)庫(kù))
文章路徑:http://fisionsoft.com.cn/article/dhpdpoc.html


咨詢
建站咨詢
