C# 什么';在文本字段上搜索关键字的最佳方法是什么?

C# 什么';在文本字段上搜索关键字的最佳方法是什么?,c#,algorithm,language-agnostic,text,full-text-search,C#,Algorithm,Language Agnostic,Text,Full Text Search,我有一个数据库表,它保存关于图像的元数据,关注的字段是标题字段。我希望用户能够在文本框中输入关键字,并让应用程序根据标题返回与关键字匹配的图像选择 我已经有了返回用户输入的单个关键字数组的代码,但进行比较的最佳方法是什么。所以我在想 foreach (Image image in Images) { foreach (string keyword in keywords) { if (image.Caption.Contains(keyword))

我有一个数据库表,它保存关于图像的元数据,关注的字段是标题字段。我希望用户能够在文本框中输入关键字,并让应用程序根据标题返回与关键字匹配的图像选择

我已经有了返回用户输入的单个关键字数组的代码,但进行比较的最佳方法是什么。所以我在想

foreach (Image image in Images)
{
    foreach (string keyword in keywords)
    {
        if (image.Caption.Contains(keyword))
        {
            imageCollection.Add(image);
            break;
        }
    }
}
但这似乎有点过于简单,因为它不支持只匹配整个单词。更不用说特殊字符、标点符号等了

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

我是用c语言写的,但我想可能是语言不可知论者


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

最好的方法可能是在数据库的标题字段上使用全文索引。让数据库为您完成这项工作