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