我想要一个不敏感且不区分大小写的查询。我使用/.*#{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
搜索,它就不会给我任何东西。
我看到我在搜索词中得到""
,这意味着mongodb中的exact phrase
,但idk [原文如此]为什么我得到这些""
以及如何删除它们。
"$text"=>{"$search"=>"(?i-mx:.*rehab*.)"},
任何帮助将受到高度赞赏。
你可以在不使用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