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

hen*_*nry 2 c# solr solrnet

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

然而,我需要编写 C#(客户端)程序来查询它。我下载了 Solr.NET,但我很困惑从何开始。它包含的解决方案无法编译,并且通过 C# 浏览,它看起来不像该程序正在执行我需要执行的操作。

有人有一种用 C# 编写的 Solr.NET 的 Hello World 程序吗?下面我将发布我正在寻找的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());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

hen*_*nry 5

正如建议的那样,我再次仔细查看了 Solr.NET 的文档。不过,我\xe2\x80\x99无法找出下载的解决方案中缺少哪些程序集,因此它们仍然无法编译!更重要的是,您似乎无法编写简单的简单程序来打印 JSON,而无需 NHibernate、定义类映射等。

\n\n

尽管如此,用 C# 编写查询 Solr 的简单 Hello World 客户端程序并不难。而且它根本不需要 Solr.NET!下面是使用 HttpWebRequest 和 JSON 序列化器/反序列化器来简单打印查询返回的所有文档的 JSON

\n\n
using System;\nusing System.Net;\nusing System.IO;\nusing System.Web.Script.Serialization; // Require adding System.Web.Extentions.dll\n\nclass SolrHeloWorld // C#\n{\n    static void Main()\n    {\n        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");\n\n        WebRequest request = HttpWebRequest.Create(uri);\n        request.Method = WebRequestMethods.Http.Get;\n        WebResponse response = request.GetResponse();\n        StreamReader reader = new StreamReader(response.GetResponseStream());\n        string jsonResponse = reader.ReadToEnd();\n        response.Close();\n\n        JavaScriptSerializer serializer = new JavaScriptSerializer();\n        dynamic jsonObject = serializer.Deserialize<dynamic>(jsonResponse);\n        dynamic dd = jsonObject["response"]["docs"]; \n        Object[] results = (Object[])dd;\n\n        foreach (Object res in results)\n        {\n            Console.WriteLine(serializer.Serialize(res));\n        }\n    }\n} \n
Run Code Online (Sandbox Code Playgroud)\n