【发布时间】:2016-05-06 00:09:19
【问题描述】:
我是弹性搜索弹簧数据的新手,今天我试图让 In query 与 Spring 数据 ES 存储库一起工作。
我必须查找用户名列表,如果它在索引中完全匹配,则需要将这些用户作为结果返回。
我尝试使用内置存储库“In”方法来执行此操作,但它返回部分匹配项,请帮助我使其像 SQL IN 查询一样工作。
这是我的存储库代码:
public interface UserRepository extends ElasticsearchRepository<EsUser, String>
{
public List<EsUser> findByUserAccountUserNameIn(Collection<String> terms);
}
请求:
{"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": {
}
}
]
【问题讨论】:
-
您需要执行过滤而不是查询
标签: elasticsearch spring-data-elasticsearch