0

我目前正在使用 Tire 来访问我的 ES 数据,但是我无法让它进行精确匹配,例如

User.search :per_page => 10 do 
 query do
    boolean do
       must { match :first_name, 'tom'}
       must { match :last_name, 'smith'}
       end
   end
end

但是,当我希望它只匹配 tom 时,它会返回 tom、tomas、tommy 和 tomiena 的名字。

4

2 回答 2

1

尝试 match_phrase 查询,

User.search :per_page => 10 do 
 query do
    boolean do
       must { match :first_name, 'tom', :type => :phrase}
       must { match :last_name, 'smith', :type => :phrase}
       end
   end
end
于 2013-09-25T06:24:11.797 回答
0

您可以尝试使用query_string查询:

User.search :per_page => 10 do 
 query do
    boolean do
       must { string 'first_name:tom'}
       must { string 'last_name:smith'}
       end
   end
end

如果这不起作用,则意味着您必须检查分析仪。

于 2013-09-26T06:39:29.473 回答