[英]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.