[發明專利]一種基于solr的搜索方法及搜索應用服務器AUS在審
| 申請號: | 201510219620.9 | 申請日: | 2015-04-30 |
| 公開(公告)號: | CN104778278A | 公開(公告)日: | 2015-07-15 |
| 發明(設計)人: | 王師;張春飛;彭光偉;羅鑫;陸海軍;宋海華 | 申請(專利權)人: | 亞信科技(南京)有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京中博世達專利商標代理有限公司 11274 | 代理人: | 張娜 |
| 地址: | 210013 江蘇省南京*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 solr 搜索 方法 應用 服務器 aus | ||
技術領域
本發明涉及信息技術處理領域,尤其涉及一種基于solr的搜索方法及搜索應用服務器AUS。
背景技術
目前,應用廣泛的企業級搜索應用服務器是阿帕奇(Apache)提供的基于Lucene的全文搜索服務器solr。其中,solr是一個高性能,采用Java5開發的全文搜索服務器,它的檢索方式為:solr中的索引程序掃描文章中的每一個詞,對每一個詞建立一個索引,指明該詞在文章中出現的次數和位置;當用戶查詢某一詞時,solr中的檢索程序根據事先建立的索引進行查找,并將查找的結果分析處理后反饋給用戶。
在實際應用中,solr只對外提供了同步響應的超文本傳送協議(英文:Hypertext?transfer?protocol,縮寫:http)接口方式,該同步響應方式要求solr每次接收到用戶發送的查詢請求時,必須檢索完整個節點的數據,并對檢索結果分析處理后,才對用戶的查詢請求作出響應。但是,隨著數據量的增長、業務復雜度的增加,solr從檢索信息到提取出最終結果數據并響應給用戶的處理時間勢必會增長,從而造成響應超時等異常問題。
發明內容
本發明的實施例提供一種基于solr的搜索方法及搜索應用服務器AUS,以解決現有采用同步響應方式進行檢索時響應超時的問題。
為達到上述目的,本發明的實施例采用如下技術方案:
第一方面,本發明實施例提供一種基于solr的搜索方法,應用于搜索應用服務器AUS;所述方法包括:
步驟a1、接收用戶輸入的搜索請求;其中,所述搜索請求包含:至少一個搜索字段及搜索命令關鍵字;
步驟a2、將搜索內容劃分為n組;其中,n大于1的整數;
步驟a3、同時對每一組搜索內容進行檢索,獲取n組與所述搜索字段相關的檢索結果;
步驟a4、將所述n組檢索結果合并后,根據所述搜索命令關鍵字顯示給所述用戶。
在第一方面的第一種可能的實現方式中,結合第一方面,所述接收用戶輸入的搜索請求包括:
接收用戶通過用戶界面上的搜索框輸入的搜索請求。
在第一方面的第二種可能的實現方式中,結合第一方面或第一方面的第一種可能的實現方式,在將搜索內容劃分為n組之前,所述方法還包括:
判斷所述搜索命令關鍵字是否為原生solr可支撐的關鍵字;
若確定所述搜索命令關鍵字為原生solr不可支撐的關鍵字,則執行步驟a2~a4。
在第一方面的第三種可能的實現方式中,結合第一方面的第二種可能的實現方式,所述判斷所述搜索命令關鍵字是否為原生solr可支撐的關鍵字包括:
解析所述搜索命令關鍵字所對應的業務類型;
若所述業務類型不包含在所述原生solr支撐的業務范圍之內,則確定所述搜索命令關鍵字為原生solr不可支撐的關鍵字;
若所述業務類型包含在所述原生solr支撐的業務范圍之內,則確定所述搜索命令關鍵字為原生solr可支撐的關鍵字。
在第一方面的第四種可能的實現方式中,結合第一方面的第二種可能的實現方式至第一方面的第三種實現方式,所述方法還包括:
若確定所述搜索命令關鍵字為原生solr可支撐的關鍵字,則按照預設順序對所述搜索請求對應的搜索內容依次進行檢索;
將檢索結果顯示給所述用戶。
第二方面,本發明實施例提供一種搜索應用服務器AUS,所述搜索應用服務器AUS包括:solrj客戶端、solrcloud服務器、kafka集群以及合并模塊;
所述solrj客戶端,用于接收用戶輸入的搜索請求,并向所述solrcloud服務器發送所述搜索請求;其中,所述搜索請求包含:至少一個搜索字段及搜索命令關鍵字;
所述solrcloud服務器,用于將接收的所述solrj客戶端發送的所述搜索請求對應的搜索內容劃分為n組;其中,n大于1的整數;
并同時對每一組搜索內容進行檢索,將獲取的n組與所述搜索字段相關的檢索結果發送至所述kafka集群;
所述合并模塊、用于讀取所述kafka集群中所述n組的檢索結果,并將合并后的所述n組檢索結果根據所述搜索命令關鍵字處理后寫入所述kafka集群;
所述kafka集群,用于將所述合并處理后的結果顯示給所述用戶。
在第二方面的第一種可能的實現方式中,結合第二方面,所述solrj客戶端,具體用于:
接收用戶通過用戶界面上的搜索框輸入的搜索請求。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于亞信科技(南京)有限公司,未經亞信科技(南京)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510219620.9/2.html,轉載請聲明來源鉆瓜專利網。





