在我的项目中,如果user_id匹配,我想提升PersonRecord的搜索结果。每个PersonRecord都有一个user_id数组(那些用户拥有该PersonRecord)。现在我想将一个名称和user_id传递给搜索,并希望返回与名称完全匹配的内容,如果user_id中存在匹配项,则会提升搜索结果。这是代码:
results = PersonRecord.search do |search|
search.query do |query|
query.boolean do |m|
m.must {match 'name.full', 'David Butler'}
m.should {|m| m.term 'user_ids', user.id, :boost => 100}
end
end
end
注意这里user_ids是user_id的数组,user.id是string。我应该在查询中使用术语,还是ID?还是匹配?有什么建议?术语是否将数组与字符串进行比较?感谢。
答案 0 :(得分:2)
您可以使用此
的条款m.should { m.terms 'user_ids', [user ids array], :boost => 100}