欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于solr的搜索方法及搜索應用服務器AUS的制作方法

文檔序號:8457377閱讀:370來源:國知局
一種基于solr的搜索方法及搜索應用服務器AUS的制作方法
【技術領域】
[0001]本發(fā)明涉及信息技術處理領域,尤其涉及一種基于SOlr的搜索方法及搜索應用服務器AUS。
【背景技術】
[0002]目前,應用廣泛的企業(yè)級搜索應用服務器是阿帕奇(Apache)提供的基于Lucene的全文搜索服務器solr。其中,solr是一個高性能,采用Java5開發(fā)的全文搜索服務器,它的檢索方式為:solr中的索引程序掃描文章中的每一個詞,對每一個詞建立一個索引,指明該詞在文章中出現的次數和位置;當用戶查詢某一詞時,solr中的檢索程序根據事先建立的索引進行查找,并將查找的結果分析處理后反饋給用戶。
[0003]在實際應用中,solr只對外提供了同步響應的超文本傳送協議(英文:Hypertexttransfer protocol,縮寫:http)接口方式,該同步響應方式要求solr每次接收到用戶發(fā)送的查詢請求時,必須檢索完整個節(jié)點的數據,并對檢索結果分析處理后,才對用戶的查詢請求作出響應。但是,隨著數據量的增長、業(yè)務復雜度的增加,solr從檢索信息到提取出最終結果數據并響應給用戶的處理時間勢必會增長,從而造成響應超時等異常問題。

【發(fā)明內容】

[0004]本發(fā)明的實施例提供一種基于solr的搜索方法及搜索應用服務器AUS,以解決現有采用同步響應方式進行檢索時響應超時的問題。
[0005]為達到上述目的,本發(fā)明的實施例采用如下技術方案:
[0006]第一方面,本發(fā)明實施例提供一種基于solr的搜索方法,應用于搜索應用服務器AUS ;所述方法包括:
[0007]步驟al、接收用戶輸入的搜索請求;其中,所述搜索請求包含:至少一個搜索字段及搜索命令關鍵字;
[0008]步驟a2、將搜索內容劃分為η組;其中,η大于I的整數;
[0009]步驟a3、同時對每一組搜索內容進行檢索,獲取η組與所述搜索字段相關的檢索結果;
[0010]步驟a4、將所述η組檢索結果合并后,根據所述搜索命令關鍵字顯示給所述用戶。
[0011]在第一方面的第一種可能的實現方式中,結合第一方面,所述接收用戶輸入的搜索請求包括:
[0012]接收用戶通過用戶界面上的搜索框輸入的搜索請求。
[0013]在第一方面的第二種可能的實現方式中,結合第一方面或第一方面的第一種可能的實現方式,在將搜索內容劃分為η組之前,所述方法還包括:
[0014]判斷所述搜索命令關鍵字是否為原生solr可支撐的關鍵字;
[0015]若確定所述搜索命令關鍵字為原生solr不可支撐的關鍵字,則執(zhí)行步驟a2?a4。
[0016]在第一方面的第三種可能的實現方式中,結合第一方面的第二種可能的實現方式,所述判斷所述搜索命令關鍵字是否為原生solr可支撐的關鍵字包括:
[0017]解析所述搜索命令關鍵字所對應的業(yè)務類型;
[0018]若所述業(yè)務類型不包含在所述原生solr支撐的業(yè)務范圍之內,則確定所述搜索命令關鍵字為原生solr不可支撐的關鍵字;
[0019]若所述業(yè)務類型包含在所述原生solr支撐的業(yè)務范圍之內,則確定所述搜索命令關鍵字為原生solr可支撐的關鍵字。
[0020]在第一方面的第四種可能的實現方式中,結合第一方面的第二種可能的實現方式至第一方面的第三種實現方式,所述方法還包括:
[0021]若確定所述搜索命令關鍵字為原生solr可支撐的關鍵字,則按照預設順序對所述搜索請求對應的搜索內容依次進行檢索;
[0022]將檢索結果顯示給所述用戶。
[0023]第二方面,本發(fā)明實施例提供一種搜索應用服務器AUS,所述搜索應用服務器AUS包括:solrj客戶端、solrcloud服務器、kafka集群以及合并模塊;
[0024]所述solr j客戶端,用于接收用戶輸入的搜索請求,并向所述solrcloud服務器發(fā)送所述搜索請求;其中,所述搜索請求包含:至少一個搜索字段及搜索命令關鍵字;
[0025]所述solrcloud服務器,用于將接收的所述solr j客戶端發(fā)送的所述搜索請求對應的搜索內容劃分為η組;其中,η大于I的整數;
[0026]并同時對每一組搜索內容進行檢索,將獲取的η組與所述搜索字段相關的檢索結果發(fā)送至所述kafka集群;
[0027]所述合并模塊、用于讀取所述kafka集群中所述η組的檢索結果,并將合并后的所述η組檢索結果根據所述搜索命令關鍵字處理后寫入所述kafka集群;
[0028]所述kafka集群,用于將所述合并處理后的結果顯示給所述用戶。
[0029]在第二方面的第一種可能的實現方式中,結合第二方面,所述solrj客戶端,具體用于:
[0030]接收用戶通過用戶界面上的搜索框輸入的搜索請求。
[0031]在第二方面的第二種可能的實現方式中,結合第二方面或第二方面的第一種可能的實現方式,所述搜索應用服務器AUS還包括:
[0032]語言解析模塊,用于在所述solrcloud服務器將搜索內容劃分為η組之前,確定所述搜索命令關鍵字為原生solr不可支撐的關鍵字。
[0033]在第二方面的第三種可能的實現方式中,結合第二方面的第二種可能的實現方式,所述語言解析模塊,具體用于:
[0034]解析所述搜索命令關鍵字所對應的業(yè)務類型;
[0035]若所述業(yè)務類型不包含在所述原生solr支撐的業(yè)務范圍之內,則確定所述搜索命令關鍵字為原生solr不可支撐的關鍵字;
[0036]若所述業(yè)務類型包含在所述原生solr支撐的業(yè)務范圍之內,則確定所述搜索命令關鍵字為原生solr可支撐的關鍵字。
[0037]在第二方面的第四種可能的實現方式中,結合第二方面至第二方面的第三種可能的實現方式中的任一種實現方式,
[0038]所述solrcloud服務器,還用于若所述語言解析模塊確定所述搜索命令關鍵字為原生solr可支撐的關鍵字,則按照預設順序對所述搜索請求對應的搜索內容依次進行檢索;
[0039]并將檢索結果顯示給所述用戶。
[0040]由上可知,本發(fā)明實施例提供一種基于solr的搜索方法及搜索應用服務器AUS。當接收到用戶輸入包含搜索命令關鍵字的搜索請求時,將搜索請求對應的分組檢索,并將每組的檢索結果合并后反饋給用戶。如此,將檢索內容分為多個小組,并行檢索與搜索命令關鍵字相關的內容,大大縮短了檢索時間,避免了現有當檢索內容比較多時,采用同步響應方式進行檢索時響應超時的問題,提高了用戶體驗。
【附圖說明】
[0041]為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0042]圖1為本發(fā)明實施例提供的一種基于solr的搜索方法的流程圖;
[0043]圖2為本發(fā)明實施例提供的一種搜索應用服務器AUS的結構圖;
[0044]圖2A為本發(fā)明實施例提供的一種搜索應用服務器AUS的結構圖。
【具體實施方式】
[0045]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0046]圖1示出了本發(fā)明實施例提供的一種基于solr的搜索方法的流程圖。如圖1所示,所述方法可以包括:
[0047]101、接收用戶輸入的搜索請求;其中,所述搜索請求包含:至少一個搜索字段及搜索命令關鍵字。
[0048]其中,搜索字段可以為用戶需要查詢任一字或詞,搜索命令關鍵字為可以本實施提供的亞信處理語言;例如,若用戶需要查詢某一地址的相關信息,且僅需要查詢結果中的前20個結果,則可以在搜索框中輸入:*|head 20 I address:西安市未央區(qū)南路一段29號,其中,address:西安市未央區(qū)南路一段29號為搜索字段,head為搜索命令關鍵字。
[0049]優(yōu)選的,可以接收用戶通過用戶界面上的搜索框輸入的搜索請求;如:可以在用戶界面上設置類似百度baidu、google的搜索框,在搜索框內輸入相應的包含至少一個搜索字段及搜索命令關鍵字的搜索請求。
[0050]需要說明的是,本發(fā)明實施例提供的搜索命令關鍵字與現有solr中的一些查詢命令相比更豐富,簡單易學,可以統(tǒng)稱為亞信處理語言(英文:Aisainfo ProcessLanguage,縮寫:APL),且每個命令關鍵字都對應特定的數據挖掘功能,如:* I head 10表示取檢索結果集中前10個數據;* ItaillO表示取檢索結果集中最后10個結果;更重要的是,本實施例提供的搜索命令關鍵字還可以通過簡單的組合以實現新的數據挖掘需求,如:* I head 1ltail 2則可以取出檢索結果的第9、第10條數據;此外,如果有新的數據挖掘需求,只需約定一特定APL語言命令關鍵字與之對應,然后實現所需業(yè)務邏輯,即可將該數據挖掘需求納入APL語言系統(tǒng)中。
[0051]102、將搜索內容劃分為η組;其中,η大于I的整數。
[0052]優(yōu)選的,可以根據搜索內容的大小將搜索內容靈活劃分為η組,每組的搜索數量可以相等,也可以不等,至于η的具體取值,本發(fā)明實施例對比不進行限定。例如:一次檢索文檔總數為100000,可以將這批搜索文檔均分為分為10組,每組包含10000個檢索文檔。
[0053]103、同時對每一組搜索內容進行檢索,獲取η組與所述搜索字段相關的檢索結果O
[0054]優(yōu)選的,可以按照搜索內容的時間先后順序或者內容從大到小的順序對每組搜索內容進行檢索;例如,檢索關于“西安市未央區(qū)南路一段29號”該地址的相關信息,可以按照時間發(fā)生的先后進行檢索。
[0055]104、將所述η組檢索結果合并后,根據所述搜索命令關鍵字顯示給所述用戶。
[0056]優(yōu)選的,可以通過將合并處理后的結果顯示在用戶界面上,以供用戶查看。例如:共將搜索內容分為10組,每組均獲得100個檢索結果,而搜索命令關鍵字* I head 10僅要求返回前10個搜索結果,則需要把這1000個搜索結果合并在一起后,選出前10個搜索結果返回給用戶。
[0057]進一步的,本發(fā)明實施例中,并不需
當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
枝江市| 中卫市| 龙胜| 泸水县| 广丰县| 峨山| 宝丰县| 石柱| 南汇区| 林芝县| 收藏| 高台县| 彰化县| 宣威市| 晴隆县| 徐闻县| 从化市| 广西| 托克逊县| 神农架林区| 融水| 白银市| 云霄县| 南华县| 普陀区| 修武县| 江口县| 竹北市| 潮州市| 宾川县| 章丘市| 托克逊县| 射阳县| 时尚| 资阳市| 融水| 清丰县| 临漳县| 台北市| 洪雅县| 宜丰县|