2017-02-06 2 views
1

Скажем, у меня есть индекс с несколькими объектами в нем:Как запросить несколько полей с Chewy

class ThingsIndex < Chewy::Index 
    define_type User do 
    field :full_name 
    end 

    define_type Post do 
    field :title 
    end 
end 

Как найти оба пользователя full_name и сообщений titles.

Документов говорить только о запросе одного атрибута, как это:

ThingsIndex.query(term: {full_name: 'Foo'}) 

ответ

0

Есть несколько способов вы можете сделать это. Сцепление, вероятно, самый простой:

ThingsIndex.query(term: {full_name: 'Foo'}).query(term: {title: 'Foo'})

Если вам нужно сделать несколько запросов, вы могли бы рассмотреть их слияния:

query = ThingsIndex.query(term: {full_name: 'Foo'}) 
query = query.merge(ThingsIndex.query(term: {title: 'Foo'})) 

Подробнее о слиянии здесь: Chewy #merge docs

Убедитесь в том, установите лимит, иначе он отобразит только 10 результатов:

query.limit(50)

Смежные вопросы