簡體   English   中英

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

[英]Looking for Hello World program for Solr.NET in C#

我正在運行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());
        }
    }
}

如建議的那樣,我將進一步仔細研究Solr.NET的文檔。 但是,我仍然無法弄清下載隨附的解決方案中缺少哪些程序集,因此它們仍然無法編譯! 更重要的是,您似乎無法編寫無需NHibernate即可簡單打印JSON的裸機程序,定義類映射等。

即便如此,用C#編寫查詢Solr的簡單Hello World客戶端程序並不困難。 而且它根本不需要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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM