Широкий поиск по применению рельсов - PullRequest
1 голос
/ 28 августа 2009

Я пытаюсь добавить возможность поиска в одно из моих приложений rails. Мне просто нужно, чтобы он хорошо просматривал колонки mysql многих моделей. Мне интересно, что лучший способ сделать это. Я полагаю, что я должен использовать плагин, но я не вижу, чтобы кто-то действительно рекомендовал один поверх другого. Есть ли один, который вы бы порекомендовали всем остальным? Как действует act_as_ferret? Спасибо.

Ответы [ 3 ]

1 голос
/ 28 августа 2009

Searchlogic , возможно, стоит проверить. Мистер Райанб только что сделал потрясающий рейлскаст . Если вы ищете полнотекстовое решение, у него также есть скринкаст на Thinking Sphinx .

1 голос
/ 28 августа 2009

Я настоятельно рекомендую Sphinx в качестве поискового демона и индексатора. Это действительно хорошо, настраиваемый и масштабируемый.

В качестве клиентской и интерфейсной библиотеки используйте UltraSphinx или ThinkingSphinx . Второй в последнее время получил лучшую поддержку.

1 голос
/ 28 августа 2009

Я никогда не использовал acts_as_ferret. Вот что вы могли бы сделать. Создайте таблицу примерно так:

create_table(:indexed_models) do |t|
  t.column :name, :string
  t.column :model_id, :id
  t.column :index, :string
end

Для каждой модели, по которой вы хотите выполнить поиск, объедините значения из столбцов с возможностью поиска, чтобы создать «индекс». Вставьте результаты в таблицу indexed_models. Где имя - это имя модели, model_id - это ее первичный ключ, а index - контент для поиска. Используйте наблюдатели для создания и обновления таблицы indexed_models, когда модели, которые вы определили как «доступные для поиска», изменяются.

Выполните текстовый поиск по полю индекса indexed_models, затем сгенерируйте контейнер моделей на основе возвращаемого имени модели и первичного ключа.

Я никогда не использовал этот подход, но я тоже имел в виду.

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