Rails searchkick не может получить результаты в зависимости от того, где запрос - PullRequest
0 голосов
/ 22 ноября 2018

Я использую Searchkick на моей модели Event в моем приложении.Я пытаюсь искать результаты только там, где статус: "опубликован".Я тестирую это в консоли и до сих пор знаю, что есть событие с "Викториной".Я получаю один результат обратно.Я могу проверить, чтобы увидеть результаты, показывающие этот статус: «черновик».Однако, когда я пытаюсь записать этот запрос в результат, чтобы подтвердить подсчет результатов, он просто не принимает во внимание статус: «черновик» и возвращает мне 1 результат.Ниже приведен код, который я использую, и результаты поиска.Согласно документации я не вижу, где я иду не так.

results = Event.search "quiz"

ответ:

=> #<Searchkick::Results:0x00007feb0a2d57d8 @klass=Event(id: integer, title: string, content: text, category_id: integer, user_id: integer, created_at: datetime, updated_at: datetime, slug: string, status: integer, featured: boolean, recommended: boolean, excerpt: text, sold_out: boolean, ticketsolve_url: string, meta_title: string, meta_description: text, ticketsolve_event_id: string, featured_video: string, show_video: boolean, author_name: string, expiry: date, manual_seo: boolean, price_details: text, remove_booking_button: boolean, tags: string), @response={"took"=>4, "timed_out"=>false, "_shards"=>{"total"=>5, "successful"=>5, "skipped"=>0, "failed"=>0}, "hits"=>{"total"=>1, "max_score"=>41.952984, "hits"=>[{"_index"=>"events_development_20181122112141928", "_type"=>"event", "_id"=>"3", "_score"=>41.952984}]}}, @options={:page=>1, :per_page=>10000, :padding=>0, :load=>true, :includes=>nil, :model_includes=>nil, :json=>false, :match_suffix=>"analyzed", :highlight=>nil, :highlighted_fields=>[], :misspellings=>true, :term=>"quiz", :scope_results=>nil, :index_name=>nil, :total_entries=>nil}>

results.total_count равно 1, что является правильным.

результаты. [0]показывает это событие.

ответ:

=> #<Event id: 3, title: "It's A Table Quiz! 2018", content: "<!DOCTYPE html>\r\n<html>\r\n<head>\r\n</head>\r\n<body>\r\n...", category_id: 10, user_id: 2, created_at: "2018-09-20 12:57:01", updated_at: "2018-11-07 19:15:29", slug: "it-s-a-table-quiz-2018", status: "draft", featured: false, recommended: false, excerpt: "On October 4th get yourself and three of your smar...", sold_out: false, ticketsolve_url: "https://firstfortnight.ticketsolve.com/shows/87359...", meta_title: "First Fortnight Event Title", meta_description: "First Fortnight Event Description", ticketsolve_event_id: "1111111", featured_video: "", show_video: false, author_name: nil, expiry: "2019-01-18", manual_seo: false, price_details: nil, remove_booking_button: false, tags: nil>

Мы видим статус «черновик».Так что теперь я собираюсь попробовать поиск с помощью Викторины, а также, где статус равен «черновик», чтобы попытаться получить результат 1.

results = Event.search "quiz", where: {status: "draft"}

счетчик результатов равен 0.

Iтакже пробовал другие варианты статуса: 1 или статус:: черновик, но они не дают никаких результатов.Плюс, видя результаты выше, я предполагаю, что правильный поиск - это где: {status: "draft"} в любом случае.

Я добавлю свой код модели на всякий случай, если я сделал что-то глупое.Любая помощь будет большой благодарностью.

модель:

class Event < ApplicationRecord
    extend FriendlyId

    # Search kick with callback so that when data is committed search runs reindex
    searchkick callbacks: :async
    # Controlled data that is indexed. Allows the user to find posts by author.
    def search_data
    {
            title: title,
            stats: status,
            content: content,
            excerpt: excerpt,
            tags: tags,
      author_name: user.name
    }
  end

    enum status: {draft: 0, published: 1}
end

1 Ответ

0 голосов
/ 22 ноября 2018

после прочтения и проверки, что я не схожу с ума, я заметил в модели кровавую опечатку.Результаты отлично работают, теперь консоль.Благодарю.

...