我有一个系统,该系统将在域中包含大约 6 个不同的实体。这是一个使用 Nhibernate 的 C# winforms 应用程序。MSSql 服务器。+- 5-10 个用户。
功能请求之一是有一个单一的搜索栏,用户可以输入和搜索所有这些具有“类似谷歌”灵活性(即非结构化)的实体。我能想到的最佳实现方法是在每个域对象上包含一个 clob 字段,该字段还包含该对象所代表的每个字段的文本。我的全局搜索只是在 clob 字段上进行类似搜索。
这看起来就像 1. 维护任务(即每个对象字段都需要存储在 clob 字段中并随着每次更改而更新) 2. 可能会扩展得非常厉害。随着系统的增长,我确信 LIKE 搜索会变得越来越慢,从而导致系统紧张。
该系统不会是庞大的。如果一个表存储超过 10,000 条记录,我会感到惊讶,但我不喜欢依赖它。
我已经阅读过像 Lucene.NET 这样的项目,它们通过索引数据集来工作,但是搜索永远不会是“实时的”,而是对最后一个索引的搜索。
其他人是如何设法解决这个问题的?
谢谢!!