Mongoid и проблема полнотекстового поиска - PullRequest
1 голос
/ 26 февраля 2012

Я работал над проектом rails, который был сделан с использованием noSql (Mongoid).Все работает нормально. Проблема в том, что я хочу добавить .. Полнотекстовый поиск здесь также.Я использовал эти драгоценные камни для этого ...

gem 'mongoid_fulltext'

, и мой файл модели выглядит следующим образом ..

class Keyword
  include Mongoid::Document
  include Mongoid::FullTextSearch
  field :name, type:String
  #index :name, unique: true
  embeds_many :posts

  validates_presence_of :name
  validates_uniqueness_of :name

  fulltext_search_in :name, :index_name => 'name_index'
end

и в контроллере.

@keywords = Keyword.fulltext_search(params[:search], :index => 'name_index')

а затем @keywords всегда возвращает пустой массив всегда.

Спасибо Awieet

1 Ответ

0 голосов
/ 26 февраля 2012

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

Возможно, при вызове fulltext_search вы должны использовать :index_name => 'name_index' вместо:index => 'name_index'.

Я бы посоветовал просто не связываться с именем индекса по умолчанию и полностью удалить этот аргумент из вызова метода.

Кроме того, записи сохранялись до того, как выдобавил драгоценный камень mongoid_fulltext?Если это так, вам нужно вызвать метод update_ngram_index объекта Class (или каждого экземпляра), чтобы добавить их в индекс.

Кроме этого, вы извлекли гем mongoid_search какальтернатива mongoid_fulltext?

https://github.com/mauriciozaffari/mongoid_search

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

Надеюсь, это поможет.

...