.net中運用solr提高搜索效率(入門)

概述:

在開發網站的時候常常有要對某些內容查詢的需求。此時若是基於數據庫查詢來作搜索功能,因爲要對多個字段作模糊匹配,效率每每很是糟糕。這種狀況就能夠用Solr來提高搜索的效率。Solr是一個獨立的企業級搜索應用服務器,它對外提供相似於Web-service的API接口。這裏介紹下Solr的環境和配置,而後說下應用SolrNet客戶端對Solr服務器的操做。java

 

1、Solr安裝

軟件下載:Solr 5.0JDK 7以上web

安裝jdk.Solr直接解壓完,用命令行直接能夠啓動。數據庫

命令行中進入server文件夾,使用以下命令啓動solr服務:瀏覽器

在瀏覽器中輸入以下地址:http://localhost:8983/solr/ 。能打開以下頁面說明solr服務已正常啓動。服務器

Solr是基於java開發的因此須要jdk環境。下載的Solr的包裏自帶有jetty Web服務器。這裏就是使用自帶的。數據結構

 

2、Solr配置

新建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建立。

 

配置SolrSchema.xml:

通常狀況下只要配置Schema文件就可使用solrSchema文件是用來描述Solrs索引的數據結構的。

fieldType:描述solr支持的數據類型

uniqueKey:標記solr的主鍵字段

field:標記solr的索引的字段

dynamicField:支持通配符的索引字段,在field中找不到的就會來匹配該字段

 

通常狀況下要添加field節點,field和你要查詢的字段對應。如圖添加了title字段。

而後在uniqueKey設置主鍵。如圖把id字段設置爲主鍵。

 

3、SolrNet構建索引

下載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();

 

 

4、SolrNet查詢

使用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的應用有個整體的概念。

相關文章
相關標籤/搜索