<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
<version>2.0.0.BUILD-SNAPSHOT</version>
</dependency>
elasticsearch 配置
@Configuration
@EnableElasticsearchRepositories
public class ESConfig {
@Bean//连接配置
public Client client() throws UnknownHostException {
Settings settings = Settings.builder()
.put("cluster.name", "mall")
.put("client.transport.ignore_cluster_name",true)
.build();
return new PreBuiltTransportClient(settings)
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
}
@Bean//一个基本的crud实现,如果要用es的ElasticsearchRepository,必须配置此项
public ElasticsearchOperations template() throws UnknownHostException {
return new ElasticsearchTemplate(client());
}
}
自定义一个接口继承ElasticsearchRepository
@Repository
public interface ESRepository extends ElasticsearchRepository<ESSearchItem,Long> {
}
实体类
@Getter
@Setter
@ToString
@Document(indexName = "item",type = "itemList")
public class ESSearchItem implements Serializable {
@Id
private Long productId;
private Long salePrice;
private String productName;
private String sub_title;
private String productImageBig;
private String category_name;
}
public class ItemESMessageListener {
private final static Logger log= LoggerFactory.getLogger(ItemESMessageListener.class);
@Autowired
private ESRepository esRepository;
public void save() {
ESSearchItem esSearchItem = new ESSearchItem();
esSearchItem.setProductId(1L);
esSearchItem.setSalePrice(1000L)
esSearchItem.setProductId("手机");
esRepository.save(esSearchItem);
}
}
完成!