【问题标题】:Java Lucene integration with .NetJava Lucene 与 .Net 的集成
【发布时间】:2010-09-17 07:10:55
【问题描述】:

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

谁能推荐一些解决方案?

我见过一些解决方案,其中有一个应用程序在索引服务器上运行,.Net 站点使用远程处理连接到该应用程序。

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

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

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

【问题讨论】:

    标签: .net lucene solr nutch


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • lucene.net 没有 Hadoop 提供程序,这就是我们现在使用 solr 的原因
      【解决方案3】:

      我也在做这个。

      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";
      
          }
      

      【讨论】:

      • 看来我们的部门可能会使用 windows search server express。
      【解决方案4】:

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

      来自the Lucene.NET incubator site

      除了 API 和类 移植到 C#,Java 的算法 Lucene 被移植到 C# Lucene。这 表示用 Java 创建的索引 Lucene 来回兼容 使用 C# Lucene;阅读时, 写作和更新。事实上一个Lucene 索引可以同时搜索和 使用 Java Lucene 和 C# 更新 Lucene 进程

      【讨论】:

      • 与hadoop一起使用怎么样?
      • 你想如何将 Lucene 与 Hadoop 结合起来?已经在 Hadoop 中的索引数据?在 Hadoop 中存储分布式 lucene 索引?后者可能需要特殊版本的 lucene 才能分发/查询,但也许有人试图这样做,但可能是在 java 中。
      【解决方案5】:

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

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

        • 看起来很不错,能拿走我的lucene索引吗?
        • 没试过,但应该...尝试是确定的唯一方法:)
        • 我也在研究 hadoop 兼容性
        • Hadoop 是仅限 java 的 AFAIK,我不知道它与其他平台的互操作性...
        • 我在 debian 上运行所有东西,甚至是 asp.net
        猜你喜欢
        • 2011-08-30
        • 1970-01-01
        • 1970-01-01
        • 2011-09-24
        • 2013-12-05
        • 1970-01-01
        • 2011-09-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多