在開發網站的時候常常有要對某些內容查詢的需求。此時若是基於數據庫查詢來作搜索功能,因爲要對多個字段作模糊匹配,效率每每很是糟糕。這種狀況就能夠用Solr來提高搜索的效率。Solr是一個獨立的企業級搜索應用服務器,它對外提供相似於Web-service的API接口。這裏介紹下Solr的環境和配置,而後說下應用SolrNet客戶端對Solr服務器的操做。java
軟件下載:Solr 5.0、JDK 7以上web
安裝jdk.。Solr直接解壓完,用命令行直接能夠啓動。數據庫
命令行中進入server文件夾,使用以下命令啓動solr服務:瀏覽器
在瀏覽器中輸入以下地址:http://localhost:8983/solr/ 。能打開以下頁面說明solr服務已正常啓動。服務器
Solr是基於java開發的因此須要jdk環境。下載的Solr的包裏自帶有jetty Web服務器。這裏就是使用自帶的。數據結構
新建core:網站
在上面打開的web界面操做便可。點擊Core Admin菜單進入Core管理界面。spa
點擊<Add Core>按鈕新建一個core,如圖提示須要配置文件。.net
因此咱們到\solr-5.0.0\server\solr的路徑下新建一個名稱爲「test」的文件夾。再到solr-5.0.0\server\solr\configsets\basic_configs文件夾下,把Conf文件夾複製到剛纔新建的test文件夾下。這樣就把須要的配置文件提供了,等下再介紹配置文件的配置。命令行
再點擊Add Core按鈕完成Core建立。
配置Solr的Schema.xml:
通常狀況下只要配置Schema文件就可使用solr。Schema文件是用來描述Solrs索引的數據結構的。
fieldType:描述solr支持的數據類型
uniqueKey:標記solr的主鍵字段
field:標記solr的索引的字段
dynamicField:支持通配符的索引字段,在field中找不到的就會來匹配該字段
通常狀況下要添加field節點,field和你要查詢的字段對應。如圖添加了title字段。
而後在uniqueKey設置主鍵。如圖把id字段設置爲主鍵。
下載solrnet。
建議下載地址:http://download.csdn.net/download/tp4479/4666325。下載之後本身編譯。雖然從Nuget也能夠下載到,可是這個版本好像有bug。
使用solr構建索引:
如下代碼是向solr服務器添加一個索引數據。批量添加索引相似。
1 Startup.Init<SolrDocument>("http://localhost:8983/solr/test"); 2 var solr = ServiceLocator.Current.GetInstance<ISolrOperations<SolrDocument>>(); 3 var doc = new SolrDocument() { Id="key1",Title="tt1"}; 4 solr.Add(doc); 5 solr.Commit();
使用solr查詢數據:
1 var solr = ServiceLocator.Current.GetInstance<ISolrOperations<SolrDocument>>(); 2 QueryOptions options = new QueryOptions(); 3 options.Rows = 10;//結果獲取個數 4 options.Start = 0;//取結果的開始位置 ,用於分頁 5 IList<ISolrQuery> qlist = new List<ISolrQuery>(); 6 var qfied = new SolrQueryByField("Title","tt1"); 7 var qkey = new SolrQueryByField("Id", "key1"); 8 qlist.Add(qfied); 9 qlist.Add(qkey); 10 var qs = new SolrMultipleCriteriaQuery(qlist, "or");//查詢條件間的關係 11 var res2 = solr.Query(qs,options);
模糊查詢:用通配符實現
var res1 = solr.Query(new SolrQuery("Title:*a1*"), options);
到這裏就簡要的介紹了用.net客戶端SolrNet操做Solr的過程。但願能讓沒接觸過的朋友對solr的應用有個整體的概念。