У меня есть таблица базы данных, которая содержит метаданные об изображениях, поле, в котором находится проблема, - это поле подписи. Я хочу, чтобы пользователи могли вводить ключевые слова в текстовое поле, и приложение возвращает список изображений, соответствующих ключевым словам, на основе их заголовка.Какой лучший подход для поиска ключевых слов на текстовом поле?
У меня уже есть код, который возвращает массив отдельных ключевых слов, введенных пользователем, но лучше всего подходит для сравнения. Так что я имею в виду вдоль линий ...
foreach (Image image in Images)
{
foreach (string keyword in keywords)
{
if (image.Caption.Contains(keyword))
{
imageCollection.Add(image);
break;
}
}
}
Но это только кажется немного слишком упрощенным, потому что она не будет поддерживать только соответствующие целые слова. Не говоря уже о специальных символах, пунктуации и т. Д.
Мне кажется, что Regex следует использовать здесь, но я не эксперт по Regex. Или я должен разбить заголовок на отдельные слова и обрабатывать сравнение по словам один за другим. Ищете некоторые предложения!
Я пишу в C#, но может быть язык агностик, я думаю
EDIT: Я также очень заинтересованы в результатах взвешивания на основе количества ключевых слов соответствиями. Но я не пытаюсь воссоздать изображения Google здесь!
Отлично! Выполнено и работает по желанию –