0

現在、ES データにアクセスするために Tire を使用していますが、完全に一致させることはできませんでした。

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

ただし、tom、tomas、tommy、および tomiena というファーストネームが返されます。tom のみに一致させたい場合。

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 に答える