本發(fā)明涉及搜索領(lǐng)域,尤其涉及一種分布式搜索方法。
背景技術(shù):目前,基于數(shù)據(jù)庫的全文檢索,是在數(shù)據(jù)庫上增加了一個全文檢索的模塊,該模塊功能和數(shù)據(jù)庫集成在一起,占用數(shù)據(jù)庫服務(wù)器的資源。在查詢壓力比較大的情形下,經(jīng)常導(dǎo)致數(shù)據(jù)庫服務(wù)器負(fù)載過高,不能向應(yīng)用提供正常服務(wù)。
技術(shù)實現(xiàn)要素:為了解決上述技術(shù)問題,本發(fā)明的目的在于提供一種基于文件系統(tǒng)的全文檢索,把全文檢索的功能獨立出來,成為一個單獨的服務(wù),這樣可以和數(shù)據(jù)庫分開部署,從而減輕數(shù)據(jù)庫的壓力,同時增強(qiáng)檢索服務(wù)的性能的分布式搜索的架構(gòu)。本發(fā)明的完整技術(shù)方案是,一種分布式搜索方法,包括一個搜索引擎集群,所述搜索引擎集群位于數(shù)據(jù)庫之前、應(yīng)用之后,所述搜索引擎集群包括Zookeeper、Katta、HDFS、Solr;Solr用于創(chuàng)建索引:通過連接到數(shù)據(jù)庫,獲取數(shù)據(jù)行,創(chuàng)建索引分片;HDFS用于存儲索引:通過其中的Hadoop控制臺,存儲分片到HDFS上;Katta用于部署、更新以及查詢索引:通過Katta控制臺,發(fā)布索引分片,Katta自動部署分片到索引節(jié)點;未滿的分片需要繼續(xù)填充索引文檔,然后更新到已發(fā)布的節(jié)點上;應(yīng)用發(fā)出的查詢,由Katta客戶端處理:首先向索引節(jié)點發(fā)出獲取索引ID的請求,進(jìn)行排序等處理,然后根據(jù)ID發(fā)出獲取具體的文檔;Zookeeper作為分布式協(xié)調(diào)器的一部分。所述索引分片的大小小于等于10G或小于等于1500萬行。由上可見,本發(fā)明與現(xiàn)在技術(shù)相比有如下有益效果:本發(fā)明提供一種基 于文件系統(tǒng)的全文檢索,把全文檢索的功能獨立出來,成為一個單獨的服務(wù),這樣可以和數(shù)據(jù)庫分開部署,從而減輕數(shù)據(jù)庫的壓力,同時增強(qiáng)檢索服務(wù)的性能,數(shù)據(jù)庫壓力降低,整體性能得到提升,同時可擴(kuò)展性強(qiáng)。附圖說明此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,并不構(gòu)成對本發(fā)明的不當(dāng)限定,在附圖中:圖1為本發(fā)明邏輯原理圖;圖2為本發(fā)明的創(chuàng)建索引的示意圖;圖3為本發(fā)明的查詢處理的示意圖;圖4為本發(fā)明的實施例1原理示意圖。具體實施方式下面將結(jié)合附圖以及具體實施例來詳細(xì)說明本發(fā)明,在此本發(fā)明的示意性實施例以及說明用來解釋本發(fā)明,但并不作為對本發(fā)明的限定。實施例1:本實施例一種分布式搜索方法,如圖所示,在數(shù)據(jù)庫之前,應(yīng)用之后,增加三臺服務(wù)器,作為搜索引擎集群。包括一個搜索引擎集群,所述搜索引擎集群采用Zookeeper、Katta、HDFS、Solr為基礎(chǔ)架構(gòu);Solr用于創(chuàng)建索引:通過連接到數(shù)據(jù)庫,獲取數(shù)據(jù)行,創(chuàng)建索引分片;HDFS用于存儲索引:通過其中的Hadoop控制臺,存儲分片到HDFS上;Katta用于部署、更新以及查詢索引:通過Katta控制臺,發(fā)布索引分片,Katta自動部署分片到索引節(jié)點;未滿的分片需要繼續(xù)填充索引文檔,然后更新到已發(fā)布的節(jié)點上;應(yīng)用發(fā)出的查詢,由Katta客戶端處理:首先向索引節(jié)點發(fā)出獲取索引ID的請求,進(jìn)行排序等處理,然后根據(jù)ID發(fā)出獲取具體的文檔;Zookeeper作為分布式協(xié)調(diào)器的一部分。每臺服務(wù)器至少充當(dāng)三種角色:1.HDFS服務(wù)器,作為分布式存儲系統(tǒng)的一部分2.ZkServer服務(wù)器,作為分布式協(xié)調(diào)器的一部分3.Katta查詢處理服務(wù)器,作為分布式搜索服務(wù)的一部分其中MasterNode服務(wù)器作為主控服務(wù)器,處理創(chuàng)建索引的工作,同時作為查詢服務(wù)器,接收所有的查詢請求,并且轉(zhuǎn)發(fā)給后續(xù)的SlaveNode服務(wù)器;SlaveNode服務(wù)器主要作為查詢處理服務(wù)器,真正處理查詢請求,返回查詢結(jié)果。由上可見,本發(fā)明提供一種基于文件系統(tǒng)的全文檢索,把全文檢索的功能獨立出來,成為一個單獨的服務(wù),這樣可以和數(shù)據(jù)庫分開部署,從而減輕數(shù)據(jù)庫的壓力,同時增強(qiáng)檢索服務(wù)的性能,數(shù)據(jù)庫壓力降低,整體性能得到提升,同時可擴(kuò)展性強(qiáng)。以上對本發(fā)明實施例所提供的技術(shù)方案進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個例對本發(fā)明實施例的原理以及實施方式進(jìn)行了闡述,以上實施例的說明只適用于幫助理解本發(fā)明實施例的原理;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明實施例,在具體實施方式以及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。