3

我有 nutch 和 lucene 设置来抓取和索引一些网站,我想使用 .net 网站而不是 nutch 附带的 JSP 网站。

谁能推荐一些解决方案?

我已经看到了在索引服务器上运行的应用程序的解决方案,.Net 站点使用远程连接连接到该应用程序。

速度显然是一个考虑因素,所以这仍然可以表现良好吗?

编辑: NHibernate.Search 可以为此工作吗?

编辑:我们最终选择了我们的 ASP.net 站点使用的 Solr 索引服务器和solrnet库。

4

6 回答 6

5

如果其他答案不完全清楚,Lucene.NET 和 Lucene (Java) 使用相同的索引格式,因此您应该能够继续使用现有的(基于 Java 的)索引机制,然后使用 Lucene .NET 在您的 .NET Web 应用程序中查询索引。

Lucene.NET 孵化器站点

除了 API 和类移植到 C# 之外,Java Lucene 的算法也移植到 C# Lucene。这意味着使用 Java Lucene 创建的索引 与 C# Lucene来回兼容;在阅读、写作和更新方面。事实上,可以使用 Java Lucene 和 C# Lucene 进程同时搜索和更新 Lucene 索引

于 2008-10-27T19:25:34.810 回答
3

除了使用 Lucene,您可以使用Solr通过 nutch 进行索引(请参阅此处),然后您可以使用以下两个可用库之一非常轻松地连接到 Solr:SolrSharpSolrNet

于 2008-10-15T12:54:52.287 回答
1

我也在做这件事。

http://today.java.net/pub/a/today/2006/02/16/introduction-to-nutch-2.html

看来您可以将查询提交给 nutch 并返回 rss 结果。

编辑:

今天以 Windows 形式运行,作为概念证明。两个文本框(searchurl 和 query),一个用于服务器 url,一个用于查询。一个数据网格视图。

private void Form1_Load(object sender, EventArgs e)
        {
            searchurl.Text = "http://localhost:8080/opensearch?query=";


    }

    private void search_Click(object sender, EventArgs e)
    {
        string uri;

        uri = searchurl.Text.ToString() + query.Text.ToString();
        Console.WriteLine(uri);

        XmlDocument myXMLDocument = new XmlDocument();

        myXMLDocument.Load(uri);

        DataSet ds = new DataSet();

        ds.ReadXml(new XmlNodeReader(myXMLDocument));

        SearchResultsGridView1.DataSource = ds;
        SearchResultsGridView1.DataMember = "item";

    }
于 2009-02-24T16:39:27.483 回答
1

通过搜索 SolrNet 和 SolrSharp 之间的比较到达这里,只是想我会在这里留下我的印象。

似乎 SolarSharp 是一个死项目(很长时间没有更新),所以唯一的选择是 SolarNet。

我希望这会对某人有所帮助,我会对已接受的答案发表评论,但我还没有足够的声誉:)

于 2012-05-12T15:48:37.820 回答
0

我没有使用 Solr,而是编写了一个在 cron 作业中运行的基于 Java 的索引器,以及一个用于查询的基于 Java 的 Web 服务。实际上,我并没有像 .net 站点用于构建页面的不同类型的数据那样索引页面。所以实际上有 4 个不同的索引,每个索引都有不同的文档结构,它们都可以以大致相同的方式进行查询(例如:用户、帖子、消息、照片)。

通过为 Web 服务响应定义 XSD,我能够在 .net 和 java 中生成类来存储文档的表示。Web 服务基本上在正确的索引上运行查询,并从命中填写响应 xml。.net 客户端将其解析回对象。还有一个用于任何客户端 JavaScript 的 json 接口。

于 2008-10-15T14:41:29.683 回答
0

为什么不从 java lucene 切换到 dot net 版本。当然,这是一项投资,但主要是一种班级替代活动。你需要的最后一件事是更多的层,除了粘合之外没有任何价值。更少的胶水和更多的东西是你应该追求的......

于 2009-05-18T06:38:53.417 回答