什么是在文本字段上进行关键字搜索的最佳方法?

时间:2009-03-06 14:47:05

标签: c# algorithm language-agnostic text full-text-search

我有一个数据库表,其中包含有关图像的元数据,所关注的字段是标题字段。我希望用户能够在文本框中输入关键字,并让应用根据其标题返回一系列与关键字匹配的图片。

我已经有了返回用户输入的各个关键字数组的代码,但最好的方法是进行比较。所以我正在考虑......

foreach (Image image in Images)
{
    foreach (string keyword in keywords)
    {
        if (image.Caption.Contains(keyword))
        {
            imageCollection.Add(image);
            break;
        }
    }
}

但这似乎有点过于简单化,因为它不支持仅匹配整个单词。更不用说特殊字符,标点符号等。

我觉得应该在这里使用正则表达式,但我不是正则表达式专家。或者我应该将标题分解为单个单词并逐个处理单词的比较。真的在寻找一些建议!

我正在用c#写作,但我认为语言无关

编辑:我对根据匹配的关键字数量对结果进行加权非常感兴趣。但我不想在这里重新创建Google图片!

1 个答案:

答案 0 :(得分:1)

执行此操作的最佳方法可能是在数据库中的标题字段上使用全文索引。让数据库为您完成工作!