Как я могу сфокусировать запрос Sunspot?

Моя проблема с этим фрагментом в том, что он возвращает целое число -1 что означает универсальный Message это также используется в других аккаунтах.

  def build_results
    search = Sunspot.new_search(Message) do
      any_of do
        member.lists.map { |list| with :enterprise_list_id, list.search_id }
      end

Как я могу добавить к этому утверждению, чтобы запросить все сообщения с -1 как search_id но сфера его так, чтобы он принадлежал исключительно member.account?

Я пытаюсь оценить это так:

searchable :include => :repliable do
  integer :account_id do
    repliable.try(:account_id)
  end

а также..

def build_results
  search = Sunspot.new_search(Message) do

    with :account_id, member.account_id

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

1 ответ

Решение

Если я правильно понял ваш вопрос, то вам просто нужно добавить эти утверждения в свой блок поиска сообщений.

searchable do
  integer :some_search_ids, :multiple => true do
     member.lists.map { |list| list.search_id} if member.present?
  end

  integer :member_account_id do
    member.account_id if member.present?
  end
end

затем,

def build_results
  search = Sunspot.new_search(Message) do
    with(:some_search_ids, some_list_search_id)
    with(:member_account_id, some_member_account_id)
  end
end
Другие вопросы по тегам