Каков наилучший подход к поиску ключевых слов в текстовом поле? - PullRequest
0 голосов
/ 06 марта 2009

У меня есть таблица базы данных, которая содержит метаданные об изображениях, поле, к которому относится вопрос, это поле заголовка. Я хочу, чтобы пользователи могли вводить ключевые слова в текстовое поле, и приложение должно возвращать выбор изображений, которые соответствуют ключевым словам на основе их заголовка.

У меня уже есть код, который возвращает массив отдельных ключевых слов, введенных пользователем, но что является лучшим способом для сравнения. Так что я думаю в соответствии с ...

foreach (Image image in Images)
{
    foreach (string keyword in keywords)
    {
        if (image.Caption.Contains(keyword))
        {
            imageCollection.Add(image);
            break;
        }
    }
}

Но это кажется слишком упрощенным, потому что оно не поддерживает только совпадение целых слов. Не говоря уже о специальных символах, пунктуации и т. Д.

Мне кажется, что здесь нужно использовать Regex, но я не эксперт по Regex. Или я должен разбить заголовок на отдельные слова и обработать сравнение слов по одному. Ищите некоторые предложения действительно!

Я пишу на C #, но я думаю, что он не зависит от языка

РЕДАКТИРОВАТЬ. Мне также очень интересно взвешивать результаты, основанные на количестве подходящих ключевых слов. Но я не пытаюсь воссоздать изображения Google здесь!

1 Ответ

1 голос
/ 06 марта 2009

Вероятно, лучший способ сделать это - использовать полнотекстовый индекс в поле заголовка в базе данных. Пусть база данных сделает всю работу за вас!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...