Я получаю "" "(точную фразу) в запросе mongodb - PullRequest
0 голосов
/ 13 февраля 2019

Я хочу запрос, который не учитывает ни слова, ни регистр.Я создал следующий запрос, используя /.*#{params[:query]}*./i:

def set_query
  @query = params[:query]
end

def set_documents
  @documents = @folder ? @folder.documents : current_user.documents
  @documents = (params[:query] ? @documents.where(
    :$text => {:$search => (/.*#{params[:query]}*./i).to_s}
  ) : @documents).page(params[:page])
end

Но при поиске он чувствителен к словам: rehabilitation выдаст мне документы с rehabilitation в заголовке, но если я буду искать сrehab, это мне ничего не даст.

Я вижу, что я получаю "" внутри поискового запроса, что означает exact phrase в mongodb, но idk [sic], почему я получаю эти "" и как я могу их удалить.

"$text"=>{"$search"=>"(?i-mx:.*rehab*.)"},

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 13 февраля 2019

Можете ли вы попробовать тот же запрос, не используя to_s.

def set_documents
@documents = @folder ? @folder.documents : current_user.documents
@documents = (params[:query] ? @documents.where(
  :$text => {:$search => (/.*#{params[:query]}*./i)}
) : @documents).page(params[:page])
end
...