要對所有的搜索請求都采用上述102-104的步驟進行處理,例如,對于更大級別的數(shù)據(jù)或者solr服務(wù)器無法提供服務(wù)能力的檢索,若采用現(xiàn)有同步處理方法則會超時,因此,必須要采用本實施提供的分組處理方式;而對于目前solr支撐的很好的千萬級別數(shù)據(jù),不存在同步接口方式中的超時問題,此時,若采用分組處理方式,則會造成不必要的時間浪費,因此,為了保證solr支撐的很好的業(yè)務(wù)仍采用現(xiàn)有同步接口方式,在將搜索內(nèi)容劃分為η組之前,本發(fā)明實施例提供的方法還可以包括:
[0058]確定所述搜索命令關(guān)鍵字是否為原生solr可支撐的關(guān)鍵字;。
[0059]若是原始solr不可支撐的關(guān)鍵字,則執(zhí)行步驟102-104 ;
[0060]若是原始solr可支撐的關(guān)鍵字,則按照預(yù)設(shè)順序?qū)λ鏊阉髡埱髮?yīng)的搜索內(nèi)容依次進行檢索,將檢索結(jié)果顯示給所述用戶,即采用現(xiàn)有同步接口方式進行檢索。
[0061]示例性的,所述確定所述搜索命令關(guān)鍵字是否為原生solr可支撐的關(guān)鍵字可以包括:
[0062]解析所述搜索命令關(guān)鍵字所對應(yīng)的業(yè)務(wù)類型;
[0063]若所述業(yè)務(wù)類型不包含在所述原生solr支撐的業(yè)務(wù)范圍之內(nèi),則確定所述搜索命令關(guān)鍵字為原生solr不可支撐的關(guān)鍵字;
[0064]若所述業(yè)務(wù)類型包含在所述原生solr支撐的業(yè)務(wù)范圍之內(nèi),則確定所述搜索命令關(guān)鍵字為原生solr可支撐的關(guān)鍵字。
[0065]由上可知,本發(fā)明實施例提供一種基于solr的搜索方法。當(dāng)接收到用戶輸入包含搜索命令關(guān)鍵字的搜索請求時,將搜索請求對應(yīng)的分組檢索,并將每組的檢索結(jié)果合并后反饋給用戶。如此,將檢索內(nèi)容分為多個小組,并行檢索與搜索命令關(guān)鍵字相關(guān)的內(nèi)容,大大縮短了檢索時間,避免了現(xiàn)有當(dāng)檢索內(nèi)容比較多時,采用同步響應(yīng)方式進行檢索時響應(yīng)超時的問題,提高了用戶體驗。
[0066]圖2示出了本發(fā)明實施例提供的一種搜索應(yīng)用服務(wù)器AUS的結(jié)構(gòu)圖,如圖2所示,可以包括:solrj客戶端201、solrcloud服務(wù)器202、kafka集群203以及合并模塊204 ;所述kafka集群203為消息隊列,可以為數(shù)據(jù)中轉(zhuǎn)模塊。
[0067]所述solrj客戶端201,用于接收用戶輸入的搜索請求,并向所述solrcloud服務(wù)器發(fā)送所述搜索請求;其中,所述搜索請求包含:至少一個搜索字段及搜索命令關(guān)鍵字。
[0068]其中,搜索字段可以為用戶需要查詢?nèi)我蛔只蛟~,搜索命令關(guān)鍵字為可以本實施提供的亞信處理語言;例如,若用戶需要查詢某一地址的相關(guān)信息,且僅需要查詢結(jié)果中的前20個結(jié)果,則可以在搜索框中輸入:*|head 20 I address:西安市未央?yún)^(qū)南路一段29號,其中,address:西安市未央?yún)^(qū)南路一段29號為搜索字段,head為搜索命令關(guān)鍵字。
[0069]所述solrcloud服務(wù)器202,用于將接收的所述solrj客戶端發(fā)送的所述搜索請求對應(yīng)的搜索內(nèi)容劃分為η組;其中,η大于I的整數(shù);
[0070]并同時對每一組搜索內(nèi)容進行檢索,將每組獲取的與所述搜索字段相關(guān)的內(nèi)容發(fā)送至所述kafka集群203 ;
[0071]所述合并模塊204、用于讀取所述kafka集群中所述η組的檢索結(jié)果,并將合并后的所述η組檢索結(jié)果根據(jù)所述搜索命令關(guān)鍵字處理后寫入所述kafka集群;
[0072]所述kafka集群203,用于將所述合并處理后的結(jié)果顯示給所述用戶。
[0073]進一步的,所述solrj客戶端201,具體用于:
[0074]接收用戶通過用戶界面上的搜索框輸入的搜索請求。
[0075]進一步的,本發(fā)明實施例中,并不需要對所有的搜索請求都采用上述102-104的步驟進行處理,例如,對于更大級別的數(shù)據(jù)或者solr服務(wù)器無法提供服務(wù)能力的檢索,若采用現(xiàn)有同步處理方法則會超時,因此,必須要采用本實施提供的分組處理方式;而對于目前solr支撐的很好的千萬級別數(shù)據(jù),不存在同步接口方式中的超時問題,此時,若采用分組處理方式,則會造成不必要的時間浪費,因此,為了保證solr支撐的很好的業(yè)務(wù)仍采用現(xiàn)有同步接口方式,如圖2A所示,所述搜索應(yīng)用服務(wù)器AUS還可以包括:
[0076]語言解析模塊205,用于在所述solrcloud服務(wù)器將搜索內(nèi)容劃分為η組之前,確定所述搜索命令關(guān)鍵字為原生solr不可支撐的關(guān)鍵字。
[0077]進一步的,所述語言解析模塊205,具體用于:
[0078]解析所述搜索命令關(guān)鍵字所對應(yīng)的業(yè)務(wù)類型;
[0079]若所述業(yè)務(wù)類型不包含在所述原生solr支撐的業(yè)務(wù)范圍之內(nèi),則確定所述搜索命令關(guān)鍵字為原生solr不可支撐的關(guān)鍵字;
[0080]若所述業(yè)務(wù)類型包含在所述原生solr支撐的業(yè)務(wù)范圍之內(nèi),則確定所述搜索命令關(guān)鍵字為原生solr可支撐的關(guān)鍵字。
[0081]進一步的,所述語言解析模塊205,還用于確定所述搜索命令關(guān)鍵字為原生solr可支撐的關(guān)鍵字;
[0082]所述solrcloud服務(wù)器202,還用于若所述語言解析模塊確定所述搜索命令關(guān)鍵字為原生solr可支撐的關(guān)鍵字,則按照預(yù)設(shè)順序?qū)λ鏊阉髡埱髮?yīng)的搜索內(nèi)容依次進行檢索;
[0083]并將檢索結(jié)果顯不給所述用戶。
[0084]由上可知,本發(fā)明實施例提供一種搜索應(yīng)用服務(wù)器AUS。當(dāng)接收到用戶輸入包含搜索命令關(guān)鍵字的搜索請求時,將搜索請求對應(yīng)的分組檢索,并將每組的檢索結(jié)果合并后反饋給用戶。如此,將檢索內(nèi)容分為多個小組,并行檢索與搜索命令關(guān)鍵字相關(guān)的內(nèi)容,大大縮短了檢索時間,避免了現(xiàn)有當(dāng)檢索內(nèi)容比較多時,采用同步響應(yīng)方式進行檢索時響應(yīng)超時的問題,提高了用戶體驗。
[0085]以上所述,僅為本發(fā)明的【具體實施方式】,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以所述權(quán)利要求的保護范圍為準(zhǔn)。
【主權(quán)項】
1.一種基于SOlr的搜索方法,其特征在于,應(yīng)用于搜索應(yīng)用服務(wù)器AUS ;所述方法包括: 步驟al、接收用戶輸入的搜索請求;其中,所述搜索請求包含:至少一個搜索字段及搜索命令關(guān)鍵字; 步驟a2、將搜索內(nèi)容劃分為η組;其中,η大于I的整數(shù); 步驟a3、同時對每一組搜索內(nèi)容進行檢索,獲取η組與所述搜索字段相關(guān)的檢索結(jié)果; 步驟a4、將所述η組檢索結(jié)果合并后,根據(jù)所述搜索命令關(guān)鍵字顯示給所述用戶。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述接收用戶輸入的搜索請求包括: 接收用戶通過用戶界面上的搜索框輸入的搜索請求。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,在將搜索內(nèi)容劃分為η組之前,所述方法還包括: 判斷所述搜索命令關(guān)鍵字是否為原生solr可支撐的關(guān)鍵字; 若確定所述搜索命令關(guān)鍵字為原生solr不可支撐的關(guān)鍵字,則執(zhí)行步驟a2?a4。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述判斷所述搜索命令關(guān)鍵字是否為原生solr可支撐的關(guān)鍵字包括: 解析所述搜索命令關(guān)鍵字所對應(yīng)的業(yè)務(wù)類型; 若所述業(yè)務(wù)類型不包含在所述原生solr支撐的業(yè)務(wù)范圍之內(nèi),則確定所述搜索命令關(guān)鍵字為原生solr不可支撐的關(guān)鍵字; 若所述業(yè)務(wù)類型包含在所述原生solr支撐的業(yè)務(wù)范圍之內(nèi),則確定所述搜索命令關(guān)鍵字為原生solr可支撐的關(guān)鍵字。
5.根據(jù)權(quán)利要求3或4所述的方法,其特征在于,所述方法還包括: 若確定所述搜索命令關(guān)鍵字為原生solr可支撐的關(guān)鍵字,則按照預(yù)設(shè)順序?qū)λ鏊阉髡埱髮?yīng)的搜索內(nèi)容依次進行檢索; 將檢索結(jié)果顯示給所述用戶。
6.一種搜索應(yīng)用服務(wù)器AUS,其特征在于,所述搜索應(yīng)用服務(wù)器AUS包括:S0lrj客戶端、solrcloud服務(wù)器、kafka集群以及合并模塊; 所述solrj客戶端,用于接收用戶輸入的搜索請求,并向所述solrcloud服務(wù)器發(fā)送所述搜索請求;其中,所述搜索請求包含:至少一個搜索字段及搜索命令關(guān)鍵字; 所述solrcloud服務(wù)器,用于將接收的所述solrj客戶端發(fā)送的所述搜索請求對應(yīng)的搜索內(nèi)容劃分為η組;其中,η大于I的整數(shù); 并同時對每一組搜索內(nèi)容進行檢索,將獲取的η組與所述搜索字段相關(guān)的檢索結(jié)果發(fā)送至所述kafka集群; 所述合并模塊、用于讀取所述kafka集群中所述η組的檢索結(jié)果,并將合并后的所述η組檢索結(jié)果根據(jù)所述搜索命令關(guān)鍵字處理后寫入所述kafka集群; 所述kafka集群,用于將所述合并處理后的結(jié)果顯示給所述用戶。
7.根據(jù)權(quán)利要求6所述的搜索應(yīng)用服務(wù)器AUS,其特征在于,所述solrj客戶端,具體用于:接收用戶通過用戶界面上的搜索框輸入的搜索請求。
8.根據(jù)權(quán)利要求6或7所述的搜索應(yīng)用服務(wù)器AUS,其特征在于,所述搜索應(yīng)用服務(wù)器AUS還包括: 語言解析模塊,用于在所述solrcloud服務(wù)器將搜索內(nèi)容劃分為η組之前,確定所述搜索命令關(guān)鍵字為原生solr不可支撐的關(guān)鍵字。
9.根據(jù)權(quán)利要求8所述的搜索應(yīng)用服務(wù)器AUS,其特征在于,所述語言解析模塊,具體用于: 解析所述搜索命令關(guān)鍵字所對應(yīng)的業(yè)務(wù)類型; 若所述業(yè)務(wù)類型不包含在所述原生solr支撐的業(yè)務(wù)范圍之內(nèi),則確定所述搜索命令關(guān)鍵字為原生solr不可支撐的關(guān)鍵字; 若所述業(yè)務(wù)類型包含在所述原生solr支撐的業(yè)務(wù)范圍之內(nèi),則確定所述搜索命令關(guān)鍵字為原生solr可支撐的關(guān)鍵字。
10.根據(jù)權(quán)利要求8或9所述的搜索應(yīng)用服務(wù)器AUS,其特征在于,所述solrcloud服務(wù)器,還用于若所述語言解析模塊確定所述搜索命令關(guān)鍵字為原生solr可支撐的關(guān)鍵字,則按照預(yù)設(shè)順序?qū)λ鏊阉髡埱髮?yīng)的搜索內(nèi)容依次進行檢索; 并將檢索結(jié)果顯示給所述用戶。
【專利摘要】本發(fā)明公開了一種基于solr的搜索方法及搜索應(yīng)用服務(wù)器AUS。涉及信息技術(shù)處理領(lǐng)域,解決了現(xiàn)有采用同步響應(yīng)方式進行檢索時響應(yīng)超時的問題。本發(fā)明實施提供的搜索方法包括:接收用戶輸入的搜索請求;其中,所述搜索請求包含:至少一個搜索字段及搜索命令關(guān)鍵字;將搜索內(nèi)容劃分為n組;其中,n大于1的整數(shù);同時對每一組搜索內(nèi)容進行檢索,獲取n組與所述搜索字段相關(guān)的檢索結(jié)果;將所述n組檢索結(jié)果合并后,根據(jù)所述搜索命令關(guān)鍵字顯示給所述用戶。
【IPC分類】G06F17-30
【公開號】CN104778278
【申請?zhí)枴緾N201510219620
【發(fā)明人】王師, 張春飛, 彭光偉, 羅鑫, 陸海軍, 宋海華
【申請人】亞信科技(南京)有限公司
【公開日】2015年7月15日
【申請日】2015年4月30日