国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

.net中運(yùn)用solr提升搜索效率(入門)

2019-11-17 02:03:43
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

.net中運(yùn)用solr提升搜索效率(入門)

概述:

在開(kāi)發(fā)網(wǎng)站的時(shí)候經(jīng)常有要對(duì)某些內(nèi)容查詢的需求。此時(shí)如果基于數(shù)據(jù)庫(kù)查詢來(lái)做搜索功能,由于要對(duì)多個(gè)字段做模糊匹配,效率往往非常糟糕。這種情況就可以用Solr來(lái)提升搜索的效率。Solr是一個(gè)獨(dú)立的企業(yè)級(jí)搜索應(yīng)用服務(wù)器,它對(duì)外提供類似于Web-service的API接口。這里介紹下Solr的環(huán)境和配置,然后說(shuō)下應(yīng)用SolrNet客戶端對(duì)Solr服務(wù)器的操作。

一、Solr安裝

軟件下載:Solr5.0、JDK7以上

安裝jdk.。Solr直接解壓完,用命令行直接可以啟動(dòng)。

命令行中進(jìn)入server文件夾,使用如下命令啟動(dòng)solr服務(wù):

在瀏覽器中輸入如下地址:http://localhost:8983/solr/。能打開(kāi)如下頁(yè)面說(shuō)明solr服務(wù)已正常啟動(dòng)。

Solr是基于java開(kāi)發(fā)的所以需要jdk環(huán)境。下載的Solr的包里自帶有jettyWeb服務(wù)器。這里就是使用自帶的。

二、Solr配置

新建core:

在上面打開(kāi)的web界面操作即可。點(diǎn)擊CoreAdmin菜單進(jìn)入Core管理界面。

點(diǎn)擊<Add Core>按鈕新建一個(gè)core,如圖提示需要配置文件。

所以我們到/solr-5.0.0/server/solr的路徑下新建一個(gè)名稱為“test”的文件夾。再到solr-5.0.0/server/solr/configsets/basic_configs文件夾下,把Conf文件夾復(fù)制到剛才新建的test文件夾下。這樣就把需要的配置文件提供了,等下再介紹配置文件的配置。

再點(diǎn)擊AddCore按鈕完成Core創(chuàng)建。

配置Solr的Schema.xml:

一般情況下只要配置Schema文件就可以使用solr。Schema文件是用來(lái)描述Solrs索引的數(shù)據(jù)結(jié)構(gòu)的。

fieldType:描述solr支持的數(shù)據(jù)類型

uniqueKey:標(biāo)記solr的主鍵字段

field:標(biāo)記solr的索引的字段

dynamicField:支持通配符的索引字段,在field中找不到的就會(huì)來(lái)匹配該字段

一般情況下要添加field節(jié)點(diǎn),field和你要查詢的字段對(duì)應(yīng)。如圖添加了title字段。

然后在uniqueKey設(shè)置主鍵。如圖把id字段設(shè)置為主鍵。

三、SolrNet構(gòu)建索引

下載solrnet。

建議下載地址:http://download.csdn.net/download/tp4479/4666325。下載以后自己編譯。雖然從Nuget也可以下載到,但是這個(gè)版本好像有bug。

使用solr構(gòu)建索引:

以下代碼是向solr服務(wù)器添加一個(gè)索引數(shù)據(jù)。批量添加索引類似。

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

四、SolrNet查詢

使用solr查詢數(shù)據(jù):

 1 var solr = ServiceLocator.Current.GetInstance<ISolrOperations<SolrDocument>>(); 2             QueryOptions options = new QueryOptions(); 3             options.Rows = 10;//結(jié)果獲取個(gè)數(shù) 4             options.Start = 0;//取結(jié)果的開(kāi)始位置 ,用于分頁(yè) 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 SolrMult

模糊查詢:用通配符實(shí)現(xiàn)

varres1=solr.Query(newSolrQuery("Title:*a1*"),options);

總結(jié)

到這里就簡(jiǎn)要的介紹了用.net客戶端SolrNet操作Solr的過(guò)程。希望能讓沒(méi)接觸過(guò)的朋友對(duì)solr的應(yīng)用有個(gè)總體的概念。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 凌海市| 太仓市| 江陵县| 库尔勒市| 灵寿县| 丰顺县| 鹤峰县| 类乌齐县| 米泉市| 信宜市| 磴口县| 新营市| 基隆市| 监利县| 岳普湖县| 雷波县| 广河县| 义乌市| 长白| 中西区| 锡林浩特市| 崇文区| 内江市| 札达县| 若羌县| 德令哈市| 石棉县| 沂水县| 明溪县| 绥化市| 娄烦县| 富蕴县| 厦门市| 图片| 岳池县| 教育| 绥德县| 天祝| 宝兴县| 五河县| 金山区|