.Net 下 Solr 入門學習系列(五)SolrNet的基本使用

龐順龍發表於2019-05-11

.Net 下 Solr 入門學習系列(五)SolrNet的基本使用

本文使用SolrNet實現,主要是它使用非常方便,一直都在更新。其他的客戶端還有easynet.solr等。

demo見附件~

1、新建.net控制檯程式(自行處理,此處略過)

2、新增SlorNet,自行nuget

注意:SolrNet 依賴HttpWebAdapters.dll和Microsoft.Practices.ServiceLocation.dll,所以,如果編譯或者測試有問題,引用這兩個dll 檔案應該就ok了。

3、新增商品實體和索引欄位

public class Product
{
    [SolrUniqueKey("id")]
    public int id { get; set; }
    [SolrField("name")]
    public string name { get; set; }
    [SolrField("title")]
    public string title { get; set; }
    [SolrField("category")]
    public string category { get; set; }
    [SolrField("content")]
    public string content { get; set; }
    [SolrField("price")]
    public double price { get; set; }
    [SolrField("color")]
    public string color { get; set; }
    [SolrField("updatetime")]
    public DateTime updatetime { get; set; }
    [SolrField("orderBy")]
    public int orderBy { get; set; }
}

schema.xml中也要加上相應的Filed 欄位,開啟solr_home\mycore1\conf 下的schema.xml檔案,增加如下Field 配置,如果不知道如何操作,請參考:.Net 下 Solr 入門學習系列(二)Solr安裝

<field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="name" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="title" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="category" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="content" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="price" type="double" indexed="true" stored="true" required="true" multiValued="false" />
<field name="color" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="orderBy" type="int" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="updatetime" type="date" indexed="true" stored="true" required="true" multiValued="false" /> 

4、呼叫solrnet,Startup.Init<Product>("http://localhost:8088/solr/mycore1");


5、增加和修改索引(document(s))Solr索引的增加和修改,都是使用Add()方法,有就修改,沒有就會自動新增。

//增加、修改solr索引
var p = new Product()
{
    id = 1,
    name = "product 1",
    title = "title 1",
    category = "1",
    content = "title 1 green",
    color = "green",
    price = 100,
    updatetime = DateTime.Now.AddDays(1),
    orderBy = 1
};
solr.Add(p);
solr.Commit();

F5執行程式成功後,solr控制檯query下,就可以看到剛才新增的索引咯~


6、刪除索引,solrnet 重寫了多個delete()方法。這裡只簡單測試一個。

//刪除索引  
var p = new Product()
{
	id = 1,
}; 
solr.Delete(p);
solr.Commit();

注意:呼叫 Add() 或是 Delete()方法,必須在他們之後加上Commit()

7、簡單查詢

//查詢
SolrQueryResults<Product> phoneTaggedArticles = solr.Query(new SolrQuery("id:1")); 
foreach (Product p in phoneTaggedArticles)
{
    Console.WriteLine(string.Format("{0}: {1}", p.id, p.title));
}
Console.ReadLine();

查詢結果如下:

到這裡,在net中Solrnet的基本用法已經說完了。

龐順龍最後編輯於:4年前

內容均為作者獨立觀點,不代表八零IT人立場,如涉及侵權,請及時告知。

相關文章