首先注意版本号,客户端,服务端版本号应该一致
且为7版本(版本号不同配置方式可能不同,许多文章没有注明版本,导致你怎么都启动不了)
写个Hello word
1.导入依赖(注意版本!)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
2.配置yml
#7.x版本配置
spring:
elasticsearch:
rest:
uris: 10.3.143.251:9200
- 配置es,搜索对象
@Data
//设置索引名
@Document(indexName = "product")
public class Product {
@Id
private String productId;
@Field(analyzer = "ik_smart")
private String name;
}
- 编写dao层接口,继承ElasticsearchRepository<entity类,id类型>
@Repository
public interface ProductDao extends ElasticsearchRepository<Product,String> {
}
- 使用ElasticsearchRestTemplate
@Autowired
ElasticsearchRestTemplate elasticsearchRestTemplate;
/**
* 索引相关操作,了解
*/
@Test
public void testIndex(){
elasticsearchRestTemplate.createIndex(Product.class);
Product product = new Product();
product.setProductId("2223333");
product.setName("大米K20");
elasticsearchRestTemplate.save(product);
}
/**
* 查询相关
*/
@Test
void testSearch(){
MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("name", "大米");
NativeSearchQuery query = new NativeSearchQuery(matchQueryBuilder);
//query 类型字节流,document设置索引名
List<Product> products = elasticsearchRestTemplate
.queryForList(query, Product.class, IndexCoordinates.of("product"));
products.forEach(a-> System.out.println(a));
}
ps:新版过时了大量旧版方法,且elasticsearch存在较大的版本兼容性问题,
慎用! 但其实个人觉得熟悉之后新版使用更为简单