首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >搜索30,000条SQL记录的方法

搜索30,000条SQL记录的方法
EN

Stack Overflow用户
提问于 2009-10-20 20:35:24
回答 6查看 500关注 0票数 2

我即将在我的网站上做一个简单的搜索设施,在那里用户将输入大约2-4个关键字,这将在我的MS SQL数据库中的一个表的两列中进行搜索。一列是名为title的varchar (50),另一列是名为description的varchar(2500)。任何时候都可能有大约20,000-30,000条记录可供搜索。

关键字需要返回“最佳匹配”-你知道你在像ebay这样的搜索页面上得到的那种返回最接近的匹配。我想这样做的方式似乎有点天真-我认为我可以将表中的所有30,000条记录读入并像这样进行对象:

代码语言:javascript
复制
public class SearchableObject
{
    string Title {get; set;}
    string Description {get; set;}
    int MatchedWords {get; set;}
}

然后创建该对象的列表,例如List遍历所有30,000条记录,填充该列表,找出匹配次数最多的记录,并使用如下命令返回前10条记录

代码语言:javascript
复制
 if Description.contains(keyword1);

然后找出它在填充MatchedWords字段的字符串中出现的次数。

我的问题是,这是最好的方法吗?如果没有,那会是什么呢?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-10-20 20:38:31

全文索引搜索可以做到这一点。

http://msdn.microsoft.com/en-us/library/ms142547.aspx

票数 8
EN

Stack Overflow用户

发布于 2009-10-21 04:40:22

您应该使用全文索引解决方案。MS SQL Server7和更高版本具有内置的full text indexing engine (here's a decent overview article)。您还可以考虑使用外部产品,如Lucene (可用于JavaC#/.NET)。

票数 5
EN

Stack Overflow用户

发布于 2009-10-20 20:40:45

我认为您只想使用C#来解析搜索参数,而不是实际执行搜索和聚合……所以不,这不是最好的方法。使用SQL Server执行繁重的搜索任务。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1597138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档