使用ASP .NET MVC在数据库中的多个表中实现搜索

时间:2013-09-02 18:42:42

标签: sql sql-server asp.net-mvc search

我对实现搜索功能有疑问。我有一个表,其中包含2个用户ID和它们之间的交易细节(标题,日期,描述等)。我想允许用户通过任何这些标准搜索交易(因此输入“Mike salary 2013”​​将导致2013年与Mike交易,其标题或描述包含单词“salary”)。

这可以通过连接所需的表,创建搜索字符串并按该字符串过滤每个输入字来实现,但是关注我的是,Transaction表被设计为最终有数百万行 - 所以连接多个表+字符串操作从数据库方面可能很慢。

我的另一个想法是为搜索字符串创建单独的列 - 该字符串将通过创建事务创建,并包含所有必要的信息。问题是当用户决定更改他/她的名字时(用户可以通过他们的“个人资料”页面进行更改)。分配给该用户的所有交易中的搜索字符串都将过时。

所以这是我的问题:在用户更改名称后搜索所有条目并更新搜索字符串会更好(这会很昂贵,但用户不会经常更改其名称)或放弃整个“搜索字符串列” “想法并用老式联合做到这一点?或许还有另一种选择?

感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

您应该使用Full Text Search。它实际上结合了你的两个想法。您可以在多个列和多个表上运行FTS查询。在幕后,FTS使用索引,类似于“搜索字符串列”的想法。