【发布时间】:2011-01-07 00:11:02
【问题描述】:
情况如下:
我有一个网页,我已将其作为字符串抓取。
我在 MSSQL 数据库中有几个字段。例如,汽车型号,它有一个 ID 和一个名称,例如 Mustang 或 Civic。它预装了大多数车型。
我想为我的模型表中的任何行找到任何匹配项。因此,如果我的模型表中有 Civic、Mustang 和 E350,我想在我抓取的页面上找到这三个中的任何一个。
在 C# 中执行此操作的有效方法是什么。我正在使用 LINQ to SQL 与数据库交互。
创建所有模型的字典、标记页面并遍历标记是否有意义?还是应该只遍历标记并使用 WHERE 子句并询问数据库是否匹配?
//Dictionary dic contains all models from the DB, with the name being the key and the id being the value...
foreach(string pageToken in pageTokens)
{
if(dic.ContainsKey(pageToken))
{
//Do what I need to do
}
}
这两种方法对我来说似乎都很糟糕。关于我应该做什么的任何建议?我想有固定交叉点的东西可能会很好?
这些方法都没有解决当模型名称超过一个单词时会发生的情况......比如“F150 Extended Cab”。对此有什么想法?
【问题讨论】:
-
您是否已经对文本进行了分解以确定哪一段文本是汽车?例如,页面可能以可预测的方式构建以提取匹配项。还是这是一大块尚未评估的文本?
-
这是一个巨大的文本块。克雷格列表。标题很可能包含模型。但是模型问题是为了说明目的。我还有很多其他的东西需要找到。
标签: c# sql search dictionary