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

标签 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 图片!

最佳答案

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

关于c# - 在文本字段上进行关键字搜索的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/619107/

相关文章:

c# - ASP.NET Core Web API 身份验证

algorithm - 通过比较排序的下限

algorithm - 三角划分

c# - 禁用 WPF 窗口焦点

c# - 如何在 ServiceStack 中提前 session 超时

algorithm - 一个圆可以装多少个正方形?

c - 将 qsort 与定义结构一起使用

algorithm - 配对数字的贪心算法使最大和最小化

database - 数据库设计 : Sort Order for Lookup Tables

c# - 嵌入式资源文件的路径