我有一个系统,这将有大约6个不同的领域实体。这是一个使用C#的Nhibernate winforms应用程序。MSSql服务器。+- 5-10个用户。
其中一个特征请求是有一个搜索栏,用户可以通过它以"Google like“的灵活性(即非结构化的)键入和搜索所有这些实体。我能想到的最好的实现方法是在每个域对象上包含一个clob字段,该域对象还保存该对象表示的每个字段的文本。我的全局搜索只是在clob字段上执行like搜索。
这看起来就像1.维护的任务(即每个对象字段都需要存储在clob字段中,并在每次更改时更新) 2.可能会有很大的伸缩性。随着系统的增长,我确信LIKE搜索将变得越来越慢,从而导致系统紧张。
这个系统不会很庞大。如果一个表存储的记录超过10,000条,我会感到惊讶,但我不喜欢这样做。
我读过像Lucene.NET这样的项目,它们通过索引数据集来工作,但是搜索永远不会是“实时”的,而是对最后一个索引的搜索。
其他人是如何解决这个问题的?
谢谢!!
发布于 2012-08-07 01:14:20
您正在寻找全文搜索解决方案。正如我在我的评论中提到的,似乎适合您的情况的是NHibernate Search,另请参阅Ayende @ Rahien's post上的主题。
https://stackoverflow.com/questions/11829184
复制相似问题