2009-07-30 93 views
0

我的任务是在电子商务网站上安排搜索服务。 目前,它在sql server上使用全文索引,这并不理想,因为它很慢,并不是那么灵活。在asp.net电子商务网站中实现Lucene搜索的最佳实践

你怎么会建议我的办法改变这种过度Lucene的?由此,我的意思是,我最初如何将所有数据加载到索引中,以及如何维护它?在我的“插入产品”方法中,我是否也会将它插入到索引中?

任何信息都很有帮助!

回答

3

我目前使用Solr的,这是建立在Lucene之上,作为我的电子商务项目之一的搜索引擎。它效果很好。

http://lucene.apache.org/solr/

而且尽可能保持产品在DB和Solr之间同步,你可以建立自己的“清道夫”或实施的Solr的DataImportHandler。

http://wiki.apache.org/solr/DataImportHandler

我们建立我们自己的清扫车,上面写着一些间隔,并检查一个数据库视图来查看是否有新的产品或任何产品数据已经更新。这是一种强力方法,我希望以前知道DataImportHandler。

方面也是Solr的一个非常强大的部分。我强烈建议使用它们。

2

如果你决定使用Lucene.NET为您的搜索你需要做以下一些:

  • 通过 通过所有的记录 迭代和写作所需的数据创建初始索引 搜索到你的指数
  • 如果记录和你正在写你的索引中的数据量使得对于大的索引则认为它们塞进多个索引(这意味着你将不得不作出一个更复杂的搜索程序,因为你需要搜索每个索引,然后合并结果!!)
  • 产品更新或创建时,您需要更新您的索引(这里有一个过程来创建额外的索引部分,然后合并索引)
  • 如果您有一个高流量网站,并且可能有多个搜索发生在同一时刻,那么你需要创建一个包装器,它可以跨多个重复索引(或索引集)进行搜索(在这里认为是单例模式),因为索引只能被访问(打开)一时间

这是一个很好的平台。我们最初尝试使用自由文本搜索,发现创建索引,更新和管理是一件痛苦的事情。搜索速度并不比标准的SQL搜索快得多。他们确实在搜索查询中提供了一些灵活性......但与Lucene的强大功能相比,即使这样也是如此!