2009-03-06 2 views
0

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

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

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

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

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

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

EDIT: Я также очень заинтересованы в результатах взвешивания на основе количества ключевых слов соответствиями. Но я не пытаюсь воссоздать изображения Google здесь!

ответ

1

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

+0

Отлично! Выполнено и работает по желанию –