Rails: эффективно проверять, соответствуют ли ключевые слова в модели содержанию в другой модели? - PullRequest
2 голосов
/ 21 апреля 2011

Как эффективно проверить несколько тысяч строк в таблице ключевых слов?

У меня есть две таблицы: Эссе и Теги .Они связаны между собой ассоциацией has_and_belongs_to_many .

Теги содержит около 250 ключевых слов (строк) и ежедневно добавляется несколько тысяч эссе .

Я хочу отсканировать тему и содержание эссе по ключевым словам в таблице Теги и, если есть совпадение, сопоставить тег с эссе

Какой самый эффективный способ сделать это?

Есть ли какой-либо способ сделать это, кроме повторения каждого эссе и последующего регулярного выражения, сопоставляющего содержимое со всеми ключевыми словами тега?

1 Ответ

2 голосов
/ 21 апреля 2011

Если вы хотите добиться значительного улучшения производительности, то я бы предложил использовать систему индексации, такую ​​как ultrasphinx.

https://github.com/fauna/ultrasphinx

Другим хорошим вариантом является использование плагина act_as_indexed:

http://douglasfshearer.com/blog/rails-plugin-acts_as_indexed

...