Java Lucene与.Net的集成

问题描述:

我有nutch和lucene设置来抓取和索引一些网站,我想使用.net网站而不是nutch自带的JSP网站。Java Lucene与.Net的集成

任何人都可以推荐一些解决方案吗?

我见过有一个应用程序运行在.Net站点使用远程连接的索引服务器上。

速度是一个明显的考虑,所以这仍然可以执行良好?

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

编辑:我们结束了与我们的ASP.net网站使用的Solr索引服务器与solrnet库。 SolrSharpSolrNet:不要使用Lucene的

,你可以使用Solr索引使用Nutch(见here),那么你可以很容易利用现有的两个库中的一个连接到Solr。

+0

看起来非常好,将它能够把我的Lucene索引? – 2008-10-15 14:16:45

+0

还没有尝试过,但它应该...尝试它是唯一的方法来确保:) – 2008-10-15 14:28:41

+0

我在看hadoop兼容性太 – 2008-10-15 16:50:09

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

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

如果从其他答案中没有完全清楚,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的处理

我也在这方面的工作。

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

看来你可以提交你的查询Nutch的,并得到了RSS结果返回。

编辑:

今天在windows窗体中作为概念验证得到了这个工作。两个文本框(searchurl和查询),一个用于服务器url,另一个用于查询。一个datagrid视图。

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

    } 

为什么不从java lucene切换到dot net版本。当然这是一项投资,但主要是一种类替代锻炼。你需要的最后一件事是更多的层,除了仅仅是胶水以外,没有任何价值。更少的胶水和更多的东西是你应该瞄准...

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

看起来好像SolarSharp是一个死了的项目(没有更新很长时间),所以唯一的选择是SolarNet。

我希望这会帮助别人,我会留下来接受的答案注释,但我没有足够的声誉还没有:)