我想查询一个单词不区分大小写的查询。我使用/.*#{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 [sic]为什么我得到这些""
以及如何删除它们。 / p>
"$text"=>{"$search"=>"(?i-mx:.*rehab*.)"},
任何帮助将不胜感激。
答案 0 :(得分:0)
是否可以不使用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