我尝试使用elasticsearch和模糊查询做一个很酷的搜索栏。 在我的模型中,这是我索引字段的方式:
mapping do
indexes :id, index: :not_analyzed
indexes :name, analyzer: 'snowball', boost: 80
indexes :brief, analyzer: 'snowball'
indexes :media, analyzer: 'snowball'
indexes :owner, analyzer: 'snowball', boost: 70
indexes :tags, analyzer: 'snowball', boost: 60
end
和方法to_indexed_json
索引为json并将所有值都包含在内。
在我的控制器中,我有这个:
在我的搜索方法中:
fuzzy_query = { "query" => {
"match" => {
"_all" => {
"query" => params[:search],
"operator" => 'or',
"fuzziness" => 'AUTO'
}
}
}
}
s = Tire.search 'campaigns/campaign', payload: fuzzy_query
我得到了一些好结果,但只在'名字'字段上。 其他领域不起作用。
有人有想法吗?
谢谢!