我正在尝试学习spring数据弹性搜索,并创建了一个示例项目 . 现在,我正在努力熟悉排序的机制 .
简单地说,我有一个Person类,它有一个firstName和lastName字段 . 我试图对lastNameField进行排序 .
这是我的Person类:
@Document(indexName = "entities", type = "person", shards=1, replicas=0)
public class Person {
@Id
private String id;
@Field(type=FieldType.String, index=FieldIndex.not_analyzed)
private String firstName;
@Field(type=FieldType.String, index=FieldIndex.not_analyzed)
private String lastName;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
这是我的DAO逻辑:
@Override
public Page<Person> getPeople(int pageNumber, int pageSize, Direction direction, String...sortFields) {
return personRepository.findAll(new PageRequest(pageNumber, pageSize, direction, sortFields));
}
personRepository是一个扩展PagingAndSortingRepository的空接口
和实际的电话:
int pageSize = 1;
int currentPageNumber = -1;
boolean morePages = true;
while(morePages){
Page<Person> results = personDataHandler.getPeople(currentPageNumber+1, pageSize, Direction.DESC, "firstName");
List<Person> people = results.getContent();
if(!CollectionUtils.isEmpty(people)){
for(Person currentPerson: people){
System.out.println("[firstName: "+currentPerson.getFirstName()+", lastName: "+currentPerson.getLastName()+"]");
}
}
currentPageNumber++;
morePages = results.hasNext();
}
页面大小为1可能是问题吗?