私は弾性検索の春データを初めて利用していますが、今日はSpringデータESリポジトリを使用してクエリを取得しようとしていました。SpringデータElasticSearch Build INクエリが部分一致を返す
ユーザー名のリストを検索する必要があります。インデックス内で完全に一致する場合は、そのユーザーを結果として戻す必要があります。
私は組み込みのリポジトリ 'In'メソッドを使用しようとしましたが、部分一致が返されました。SQL INクエリのように動作するように助けてください。
ここに私のリポジトリのコードです:
public interface UserRepository extends ElasticsearchRepository<EsUser, String>
{
public List<EsUser> findByUserAccountUserNameIn(Collection<String> terms);
}
REQUEST:
{"terms":["vijay", "arun"], "type":"NAME"}
応答:
[
{
"userId": "236000",
"fbId": "",
"userAccount": {
"userName": "arun",
"urlFriendlyName": "arun",
},
"userProfile": {
},
"userStats": {
}
},
{
"userId": "6228",
"userAccount": {
"userName": "vijay",
"urlFriendlyName": "vijay",
},
"userProfile": {
},
"userStats": {
}
},
{
"userId": "236000",
"fbId": "",
"userAccount": {
"userName": "arun singh",
"urlFriendlyName": "arun-singh",
},
"userProfile": {
},
"userStats": {
}
}
{
"userId": "236000",
"fbId": "",
"userAccount": {
"userName": "vijay mohan",
"urlFriendlyName": "vijay-mohan",
},
"userProfile": {
},
"userStats": {
}
}
]
あなたはクエリではなくフィルタを実行する必要があります –