繁体   English   中英

如何在rails elasticsearch上模糊匹配ruby。

[英]How to fuzzy match a ruby on rails elasticsearch.

我有一个控制器动作,让我来搜索Document通过文件GUID。 问题是GUID是20多个字符。 我希望能够使用GUID的前5个字符来搜索文档。

我现在拥有的是:

search_params = { sort: { sent_at: :desc } }

if can_search && params[:document_id].present?
    search_params[:filter] = { term: { "_id" => params[:document_id] } }
    @documents = Elasticsearch::Model.search(search_params, [Document])
else
    @documents = Elasticsearch::Model.search(search_params, [Document]).page(params[:page]).per(20)
end

如果我输入确切的GUID,这可以正常工作。 但部分匹配不起作用。

您可以像这样使用WildcardQuery

search_params[:filter] = { wildcard: { "_id" => "*#{params[:document_id]}*" } }    

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM