我linux上的版本是 7.7.1 下载地址:www.elastic.co/cn/download…
linux安装教程网上很多,自己找哈。
不废话,直接上代码
1,pom里头引用
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
2,yml文件里头配置:
spring:
elasticsearch:
rest:
uris: http://192.168.5.227:9200
3,定义一个实体类
@Data
@NoArgsConstructor
@AllArgsConstructor
@Document(indexName = "user",shards = 1,replicas = 0)
public class UserTest implements Serializable {
@Id
private int id;
@Field(type = FieldType.Text,analyzer = "ik_max_word")
private String name;
@Field(type = FieldType.Integer)
private int age;
@Field(type = FieldType.Keyword)
private String hobby;
}
4,使用方法,创建索引库,保存实体
@Service("elDataService")
public class ElDataServiceImpl implements ElDataService {
@Autowired
private ElasticsearchRestTemplate elasticsearchRestTemplate;
@Autowired
private ElasticsearchRepository<UserTest, Integer> elasticsearchRepository;
@Override
public void createIndex() {
//设置索引信息(绑定实体类) 返回IndexOperations
IndexOperations operations = elasticsearchRestTemplate.indexOps(UserTest.class);
//创建索引库
operations.create();
//为该IndexOperations绑定到的实体创建索引映射。 有一个为给定类创建索引的重载,需要类的字节码文件
Document mapping = operations.createMapping();
//将刚刚通过类创建的映射写入索引
operations.putMapping(mapping);
}
@Override
public void putElData(UserTest userTest) {
//存储单个实体
elasticsearchRepository.save(userTest);
}
}
5,查询
@Service("userRespository")
public interface UserRespository extends ElasticsearchRepository<UserTest, Integer> {
List<UserTest> findByName(String name);
List<UserTest> findByAgeBetween(int left, int right);
}
6,测试
@Test
void testEl() throws ServiceException {
//elDataService.createIndex();
for (int i = 0; i < 10; i++) {
UserTest userTest = new UserTest();
userTest.setId(i);
userTest.setAge(10 + i);
userTest.setHobby("篮球");
userTest.setName("编号" + i);
elDataService.putElData(userTest);
}
}
@Test
void queryEl() {
List<UserTest> userTestList = userRespository.findByName("编号");
System.out.println("userTestList = " + JSON.toJSONString(userTestList));
}
输出结果:
userTestList = [{"age":10,"hobby":"篮球","id":0,"name":"编号0"},{"age":11,"hobby":"篮球","id":1,"name":"编号1"},{"age":12,"hobby":"篮球","id":2,"name":"编号2"},{"age":13,"hobby":"篮球","id":3,"name":"编号3"},{"age":14,"hobby":"篮球","id":4,"name":"编号4"},{"age":15,"hobby":"篮球","id":5,"name":"编号5"},{"age":16,"hobby":"篮球","id":6,"name":"编号6"},{"age":17,"hobby":"篮球","id":7,"name":"编号7"},{"age":18,"hobby":"篮球","id":8,"name":"编号8"},{"age":19,"hobby":"篮球","id":9,"name":"编号9"}]