我有 nutch 和 lucene 设置来抓取和索引一些网站,我想使用 .net 网站而不是 nutch 附带的 JSP 网站。
谁能推荐一些解决方案?
我已经看到了在索引服务器上运行的应用程序的解决方案,.Net 站点使用远程连接连接到该应用程序。
速度显然是一个考虑因素,所以这仍然可以表现良好吗?
编辑: NHibernate.Search 可以为此工作吗?
编辑:我们最终选择了我们的 ASP.net 站点使用的 Solr 索引服务器和solrnet库。
如果其他答案不完全清楚,Lucene.NET 和 Lucene (Java) 使用相同的索引格式,因此您应该能够继续使用现有的(基于 Java 的)索引机制,然后使用 Lucene .NET 在您的 .NET Web 应用程序中查询索引。
除了 API 和类移植到 C# 之外,Java Lucene 的算法也移植到 C# Lucene。这意味着使用 Java Lucene 创建的索引 与 C# Lucene来回兼容;在阅读、写作和更新方面。事实上,可以使用 Java Lucene 和 C# Lucene 进程同时搜索和更新 Lucene 索引
我也在做这件事。
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";
}
通过搜索 SolrNet 和 SolrSharp 之间的比较到达这里,只是想我会在这里留下我的印象。
似乎 SolarSharp 是一个死项目(很长时间没有更新),所以唯一的选择是 SolarNet。
我希望这会对某人有所帮助,我会对已接受的答案发表评论,但我还没有足够的声誉:)
我没有使用 Solr,而是编写了一个在 cron 作业中运行的基于 Java 的索引器,以及一个用于查询的基于 Java 的 Web 服务。实际上,我并没有像 .net 站点用于构建页面的不同类型的数据那样索引页面。所以实际上有 4 个不同的索引,每个索引都有不同的文档结构,它们都可以以大致相同的方式进行查询(例如:用户、帖子、消息、照片)。
通过为 Web 服务响应定义 XSD,我能够在 .net 和 java 中生成类来存储文档的表示。Web 服务基本上在正确的索引上运行查询,并从命中填写响应 xml。.net 客户端将其解析回对象。还有一个用于任何客户端 JavaScript 的 json 接口。
为什么不从 java lucene 切换到 dot net 版本。当然,这是一项投资,但主要是一种班级替代活动。你需要的最后一件事是更多的层,除了粘合之外没有任何价值。更少的胶水和更多的东西是你应该追求的......