【发布时间】:2012-06-26 04:03:37
【问题描述】:
我正在寻找产品搜索引擎。每个人都建议使用 Lucene.NET,但我想知道它是否按我的预期工作。我想为 Lucene 文档提供 MSSQL 数据库中的字段,以便可以搜索五个不同的产品字段。
1) 我可以从 SQL 数据库创建文档吗?
我能找到的所有样本都使用硬编码值。我想从数据库的五个产品列中填充文档。
如何设置 text var 以便它从数据库中获取特定字段中的所有内容?
Document doc = new Document();
doc.Add(new Field("id", i.ToString(), Field.Store.YES, Field.Index.NO));
doc.Add(new Field("ProductDescription", text, Field.Store.YES, Field.Index.TOKENIZED));
writer.AddDocument(doc);
2) 如何用一个查询搜索多个字段?
var queryParser = new QueryParser(Version.LUCENE_30, "ProductName", analyzer);
queryParser += new QueryParser(Version.LUCENE_30, "ProductDescription", analyzer);
queryParser += new QueryParser(Version.LUCENE_30, "ProductSpecification", analyzer);
queryParser += new QueryParser(Version.LUCENE_30, "ProductDetails", analyzer);
queryParser += new QueryParser(Version.LUCENE_30, "ProductKeywords", analyzer);
var query = queryParser.Parse("plasma tv");
//should return results for Sony Plasma TV, Sony HD Plasma, Sony 32 inch Plasma, Philips Plasma TV
有关于 MS SQL 到 Lucene 的教程吗?
【问题讨论】:
-
“每个人都建议使用 Lucene.NET”。我真的建议您使用 Solr。 Solr 是基于 Lucene 的 HTTP,在数据库索引方面表现出色,您无需编写任何代码。它可以被视为一个搜索服务器。当您使用 Solr 时,您将能够自己回答这两个问题。我知道你可能在 Lucene 上花了一些时间。只需下载 Solr 并尝试半天。让我知道反馈。
-
有趣。这是我应该与我的 .Net 项目一起使用的站点:code.google.com/p/solrnet 用于 Solr 吗?
-
@Yavar 但据我所知,您必须在专用服务器上设置 Solr,这对于预算有限的项目来说可能有点开销
标签: sql-server-2008 search lucene lucene.net keyword