利用Solr服務創建的站內搜索雛形

最近看完nutch後總感受像好好捯飭下solr,上次看到老大給我展示了下站內搜索我便久久不能忘懷。總覺着以前搭建的nutch配上solr仍是有點呆板,在nutch爬取的時候就創建索引到solr服務下,而後在solr的管理界面中選擇query,好比在q選項框中將「*:*」改寫爲「title:安徽」,則在管理界面中就能看到搜索結果,但是這個與搜索引擎的感受差遠了,總感受這些結果是被solr給套在他的管理界面中了,因而本身在網上搜索,也想整個站內搜索同樣的東西,就算整不到那麼炫,只要整到在solr的管理界面之外的地方出現搜索結果我就心滿意足了……
網上海搜一番,發現有人作站內搜索的,可是也只是隻言片語,沒有很全的(後來發現及時很全的也不必定適用於你,由於搞IT的都具備時效性,誰知道你當前看到的一個類是否是n年前就被標記爲過期了不能用了),可是也沒辦法,多看看結合一下,因而本身開始動手拼接組裝程序了:
1.在程序中(個人環境是在Myeclipse中)要可以與solr服務器通訊,畢竟你的索引是存在solr中的,而後就是加入搜索條件和要搜索的字段,再者就是一個查詢類以及最後的結果的呈現,依次用到的是CommonsHttpSolrServer、SolrQuery、QueryResponse。
2.但是在組裝好代碼後運行是老是報錯,也沒有找到針對性的解決方案,可是調試的過程當中把查詢的條件取出來放到瀏覽器中查詢是能夠的,就是卡在QueryResponse qrsp = server.query(query); 這行,琢磨着應該是要換個純淨的工程,因而新建了個新的工程,按照網上要求的jar給導入,但是後來發現CommonsHttpSolrServer類老是沒法導包,進入一看solrj的jar包下確實沒有這個類,因此針對性的在網上搜索後發現該類在solr3.6版本後就被拋棄了,改用HttpSolrServer了,再次感謝連接: http://wenwen.sogou.com/z/q423004525.htm
除了導入solr-solrj-4.6.0.jar之外還導入瞭如下jar包,這些jar都來源於本身下載的\solr-4.4.0\solr-4.4.0\dist\solrj-lib目錄下的全部jar包

3.有了jar包以後,就開始運行程序了,個人solr是裝在虛擬機裏面,因此還要先到虛擬機中把tomcat服務啓動(個人solr服務已經部署到tomcat服務器下了),而後在win7系統的瀏覽器中輸入http://ip:8080/solr就能夠訪問我虛擬機裏的solr了,大致主體部分以下:
String url="http://ip:8080/solr/";
HttpSolrServer server = new HttpSolrServer(url); 
server.setSoTimeout(3000); // socket read timeout 
server.setConnectionTimeout(1000); 
server.setDefaultMaxConnectionsPerHost(1000); 
server.setMaxTotalConnections(10); 
server.setFollowRedirects(false); // defaults to false 
server.setAllowCompression(true); 
server.setMaxRetries(1);
注意以上的ip爲本身的ip,個人端口是8080,由於用的tomcat服務器,若是你沒有部署到tomcat下,直接啓動solr的example下的服務應該是8389,上面主要是與solr服務通訊以及一些參數的設置;
SolrQuery query = new SolrQuery(); 
query.setQuery("title:安徽"); 
query.addField("content");
query.setStart(0); 
query.setRows(15);
上面的這些代碼是生命一個查詢類,並賦給查詢條件以及查詢字段
QueryResponse qrsp = server.query(query); 
SolrDocumentList docs = qrsp.getResults(); 
Iterator it = docs.iterator(); 
while (it.hasNext()) { 
System.out.println(it.next()); 
}
這段代碼是接收相應的搜索結果以及遍歷顯示打印搜索結果。
雖然以上算不得什麼搜索引擎,也沒有任何界面的顯示,可是我已很欣慰,由於都已經能搜索了,離個人小百度還遠麼(開玩笑的^_^)下一步準備先看看solrj具體是怎麼應用的,每一個部分都如何使用的摸索弄個搜索引擎的模樣出來過過癮。

友情贊助瀏覽器

若是你以爲博主的文章對你那麼一點小幫助,恰巧你又有想打賞博主的小衝動,那麼事不宜遲,趕忙掃一掃,小額地贊助下,攢個奶粉錢,也是讓博主有動力繼續努力,寫出更好的文章^^。tomcat

    1. 支付寶                          2. 微信服務器

                      

相關文章
相關標籤/搜索