Solr学习利用Solr的C#客户端SolrNet检索数据

Posted 小弟季义钦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Solr学习利用Solr的C#客户端SolrNet检索数据相关的知识,希望对你有一定的参考价值。

利用Solr的C#客户端库SolrNet访问Solr:

参考: https://github.com/mausch/SolrNet/blob/master/Documentation/Basic-usage.md

First, we have to map the Solr document to a class. Let's use a subset of the default schema that comes with the Solr distribution:

public class Product 
    [SolrUniqueKey("id")]
    public string Id  get; set; 

    [SolrField("manu_exact")]
    public string Manufacturer  get; set; 

    [SolrField("cat")]
    public ICollection<string> Categories  get; set; 

    [SolrField("price")]
    public decimal Price  get; set; 

    [SolrField("inStock")]
    public bool InStock  get; set; 

It's just a POCO with some attributes: SolrField maps the attribute to a Solr field and SolrUniqueKey (optional but recommended) maps an attribute to a Solr unique key field.

Now we'll write some tests using this mapped class. Let's initialize the library:

[TestFixtureSetUp]
public void FixtureSetup() 
    Startup.Init<Product>("http://localhost:8983/solr");

Let's add a document (make sure you have a running Solr instance before running this test):

[Test]
public void Add() 
    var p = new Product 
        Id = "SP2514N",
        Manufacturer = "Samsung Electronics Co. Ltd.",
        Categories = new[] 
            "electronics",
            "hard drive",
        ,
        Price = 92,
        InStock = true,
    ;

    var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Product>>();
    solr.Add(p);
    solr.Commit();

Let's see if the document is where we left it:

[Test]
public void Query() 
    var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Product>>();
    var results = solr.Query(new SolrQueryByField("id", "SP2514N"));
    Assert.AreEqual(1, results.Count);
    Console.WriteLine(results[0].Price);


好了,基本的东西差不多就这样了,接下来目标是用asp.net做一个真正的全文检索的页面。

未完待续。。。。

以上是关于Solr学习利用Solr的C#客户端SolrNet检索数据的主要内容,如果未能解决你的问题,请参考以下文章

Solr 中与 DtSearch 选项对应的高级搜索选项

solr 搜索字段不存在的文档

SolrNet 空间搜索 - 在 geodist() 上排序

利用solr实现商品的搜索功能

Solr学习笔记之添加文档

不从Remotely索引或提取Document(.pdf .doc)