@Data
@Document(indexName = "user")
public class User implements Serializable {
@Id
private String uId;
private String name;
private Integer age;
private String address;
//省略getter setter
}
@Repository
public interface UserRepository extends ElasticsearchRepository<User, String> {
List<User> findAllByNameLike(String name);
List<User> findAllByAddressLike(String name);
}
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public long count() {
return userRepository.count();
}
public User save(User user) {
return userRepository.save(user);
}
public void delete(User user) {
userRepository.delete(user);
}
public Iterable<User> getAll() {
return userRepository.findAll();
}
public List<User> getByName(String name) {
// List<User> list = new ArrayList<>();
// MatchQueryBuilder matchQueryBuilder = new MatchQueryBuilder("name", name);
// Iterable<User> iterable = userRepository.search(matchQueryBuilder);
// iterable.forEach(e->list.add(e));
return userRepository.findAllByNameLike(name);
}
public List<User> getByAdress(String name) {
List<User> list = new ArrayList<>();
MatchQueryBuilder matchQueryBuilder = new MatchQueryBuilder("name", name);
Iterable<User> iterable = userRepository.search(matchQueryBuilder);
iterable.forEach(e->list.add(e));
return list;
// return userRepository.findAllByAddressLike(name);
}
public Page<User> pageQuery(Integer pageNo, Integer pageSize, String kw) {
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
.withQuery(QueryBuilders.matchPhraseQuery("name", kw))
.withPageable(PageRequest.of(pageNo, pageSize))
.build();
return userRepository.search(searchQuery);
}
}
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/testInsert")
public void testInsert() {
System.out.println("=================");
User user = new User();
user.setUId("6");
user.setName("zhangsna");
user.setAge(101);
user.setAddress("广东省深圳");
System.out.println(userService.save(user));
user.setUId("4");
user.setName("lisi");
user.setAge(32);
user.setAddress("广东省东莞");
System.out.println(userService.save(user));
user.setUId("5");
user.setName("wangwu");
user.setAge(34);
user.setAddress("广东省珠海");
System.out.println(userService.save(user));
}
@GetMapping("/testDelete")
public void testDelete() {
User user = new User();
user.setUId("1");
userService.delete(user);
}
@GetMapping("/testGetAll")
public void testGetAll() {
Iterable<User> iterable = userService.getAll();
iterable.forEach(e -> System.out.println(e.toString()));
}
@GetMapping("/testGetByName")
public void testGetByName() {
List<User> list = userService.getByName("%lisi%");
System.out.println(list);
List<User> list1 = userService.getByAdress("%深圳%");
System.out.println(list1);
}
@GetMapping("/testPage")
public void testPage() {
Page<User> page = userService.pageQuery(0, 10, "wangwu");
System.out.println(page.getTotalPages());
System.out.println(page.getNumber());
System.out.println(page.getContent());
}
http://localhost:5601/app/discover
后期更新整合logstash