寻找Solr的Hello World程序.. NET中的c#



我有Solr服务器运行(在Linux上,这并不重要),它加载了2M文档,并且在Java中搜索工作良好。

我需要写c#(客户端)程序来查询它。我下载了Solr。. NET,但我很困惑从什么开始。它包含的解决方案不能编译,并且通过c#浏览它看起来不像程序正在做我需要做的事情。

有人有Solr的Hello World程序吗?. NET c# ?下面我将发布我正在寻找的Java版本,c#版本有人吗?哦,还有,我需要在这样简单的客户端程序中包含的最小程序集是什么?谢谢你

import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocumentList;

public class SolrHeloWorld // Java
{
    public static void main(String[] args)
    {
        // Connect to server
        SolrServer solr = new HttpSolrServer  ("http://192.168.1.211:8983/solr/collection1");
        // Query for search term 'banana'
        SolrQuery query = new SolrQuery();
        query.setQuery("banana");
        query.setStart(0);
        query.setRows(50);
        query.set("defType", "edismax");
        try
        {
            QueryResponse response = solr.query(query);
            // Print results
            SolrDocumentList results = response.getResults();
            for (int i = 0; i < results.size(); i++)
            {
                System.out.println(results.get(i));
            }
        }
        catch (Exception e)
        {
            System.out.println("Error: " + e.getMessage());
        }
    }
}

按照建议,我又仔细看了一下Solr.NET的文档。尽管如此,我还是无法找出下载附带的解决方案中缺少哪些程序集,因此它们仍然无法编译!更重要的是,没有NHibernate,你不可能写出简单的程序来打印JSON,定义类映射等等。

然而,用c#编写简单的Hello World客户端程序来查询Solr并不是那么难。而且它不需要Solr。NET !这里是一个使用HttpWebRequest和JSON序列化/反序列化器来简单打印所有文档的JSON查询

using System;
using System.Net;
using System.IO;
using System.Web.Script.Serialization; // Require adding System.Web.Extentions.dll
class SolrHeloWorld // C#
{
    static void Main()
    {
        Uri uri = new Uri("http://192.168.1.211:8983/solr/collection1/select?q=banana&start=0&rows=50&wt=json&indent=true&defType=edismax");
        WebRequest request = HttpWebRequest.Create(uri);
        request.Method = WebRequestMethods.Http.Get;
        WebResponse response = request.GetResponse();
        StreamReader reader = new StreamReader(response.GetResponseStream());
        string jsonResponse = reader.ReadToEnd();
        response.Close();
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        dynamic jsonObject = serializer.Deserialize<dynamic>(jsonResponse);
        dynamic dd = jsonObject["response"]["docs"]; 
        Object[] results = (Object[])dd;
        foreach (Object res in results)
        {
            Console.WriteLine(serializer.Serialize(res));
        }
    }
} 

在Pluralsight有一个课程,让你开始使用Solr和SolrNet。最后一个模块是关于SolrNet的

http://www.pluralsight.com/courses/enterprise-search-using-apache-solr

最新更新