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