2017-07-04 22 views
0

我有以下索引和查询弹簧elasticsearch滤波器术语消耗列表

@Document(indexName="idx", type="worker") 
public class Worker { 
    @Id 
    @Field(type = FieldType.Long) 
    private Long id; 
    @Field(type = FieldType.String) 
    private String firstName; 
    @Field(type = FieldType.String) 
    private String lastName; 
    --getter--setter 
} 


public interface WRepo extends ElasticsearchRepository<Worker, Long> { 

    @Query("{ 
     "query": {"match": {"firstName": "?0"}}, 
     "filter": {"terms" : {"id" : ***ids***}} 
    }") 
    Page<Worker> searchWorker(String firstName, List<Long> ids, Pageable pageable); 
} 

ID数是多变的,当加入IDS静态像

{ “ID”:[101,102,103 ]}

它按预期工作,我的问题是如何从方法签名传递ID列表像的firstName

{ “名字”: “0”}

回答

0

我改变了下面

@Query("{ 
    "query": {"match": {"firstName": "?0"}}, 
    "filter": {"terms" : {"id" : [?1]}} 
}") 
Page<Worker> searchWorker(String firstName, String ids, Pageable pageable); 

方法体,使我的要求是:

repository.searchProduct("firstName", "101,102", pageable)