我正在开发一个典型的企业/业务应用程序,其中包括订单、销售人员、联系人、参考数据等。将有至少100或更多的用户在系统上的时间谁是输入新的数据,变化的数据等。我需要提供搜索能力跨越几乎所有的表的应用程序。
一种选择是进行表查询,例如"select * from salespersons name包含'searchtest'“或类似的查询。但是我想知道我是否可以使用Lucene(.net)来代替它。
最重要的是,搜索需要在几秒钟内反映变化。例如,如果用户输入一个订单,然后立即搜索它,那么它需要显示在搜索列表中。(例如,我不能每小时、半小时或每晚都有一个索引作业,等等)。
这是一个很好的选择,还是有更好的选择?
发布于 2009-09-13 04:39:59
我已经实现了一些与您所描述的几乎相同的东西。要建立索引的表非常庞大(使用lucene建立索引需要5个小时以上),并且要求搜索在5分钟内反映数据库中的变化。我考虑过两种方法(我实现了第一种):
发布于 2009-09-13 03:39:17
是的,你当然可以在这个用例中使用Lucene。我看到了一些缺点:
近实时搜索您将复制索引中的许多信息(并且您必须实现一些东西来保持索引和数据库的同步,这可能不是trivial.)
还有一个(很大的)好处:
这个问题的答案可能会对Lucene.Net Best Practices有所帮助
https://stackoverflow.com/questions/1416759
复制相似问题