Search code examples
sqlruby-on-railselasticsearchsearchkick

Searchkick Where Clause in Ruby on Rails


I'm performing a search and want to display everything, but only search on a specific column, instead of all columns.

My table consists of 4 columns, and I only want to query against party column, in SQL would be

select * from rsvp where party like '%search%'

I currently have the below code but is giving me back results where search is in either of the four columns

@rsvps = Rsvp.search params[:search], field: [:party], page: params[:page], per_page: 15

I attempted this code

@rsvps = Rsvp.search params[:search], where: {party: params[:search]}, page: params[:page], per_page: 15

And this

@rsvps = Rsvp.search "*", where: {party: params[:search]}, page: params[:page], per_page: 15

But either one don't bring back results.

How can I accomplish this?

Thanks


Solution

  • You've almost got it right, you need to use fields instead of field

    @rsvps = Rsvp.search params[:search], fields: [:party], page: params[:page], per_page: 15
                                               ^
                                               |
                                          s is missing