Nested,
//嵌套对象类型
Ip,
Attachment,
Keyword
//不会进行分词建立索引的类型
}
整合spring boot
1.pom文件
org.springframework.boot
spring-boot-starter-data-elasticsearch
2.application.yml
spring:
data:
elasticsearch:
repositories:
enabled: true
cluster-name: elasticsearch
cluster-nodes: 192.168.49.14:9300
3.config文件
否则会报错 java.lang.IllegalStateException: availableProcessors is already set to [4], rejecting [4]
@Configuration
public class ElasticSearchConfig {
/**
-
防止netty的bug
-
java.lang.IllegalStateException: availableProcessors is already set to [4], rejecting [4]
*/
@PostConstruct
void init() {
System.setProperty(“es.set.netty.runtime.available.processors”, “false”);
}
}
4.entity
@Document(indexName = “product”, type = “product”, shards = 1, replicas = 0)
public class Product {
@Id
private Long id;
/**
- 标题
*/
@Field(type = FieldType.Text, analyzer = “ik_max_word”)
private String title;
/**
- 分类
*/
@Field(type = FieldType.Keyword)
private String category;
/**
- 价格
*/
@Field(type = FieldType.Double)
private Double price;
/**
- 图片地址
*/
@Field(index = false, type = FieldType.Keyword)
private String images;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
public String getImages() {
return images;
}
public void setImages(String images) {
this.images = images;
}
}
6.继承ElasticsearchRepository
这就是以上说的Sping Data方式的数据操作
@Service
public interface ProductRepository extends ElasticsearchRepository<Product, Long> {
}
继承ElasticsearchRepository接口可以获得常用的数据操作方法
7.controller
@RestController
public class ProductController {
@Autowired
private ProductRepository productRepository;
/**
- 插入
*/
@RequestMapping(“/importProduct”)
public void importProduct() {
List list = new ArrayList();
// 产品1
Product product1 = new Product();
product1.setId(Long.valueOf(1));
product1.setTitle(“Haier/海尔 BCD-470WDPG十字对开门风冷变频一级节能家用官方冰箱”);
product1.setPrice(3699.00);
product1.setCategory(“冰箱”);
product1.setImages(“http://image.baidu.com/13123.jpg”);
// 产品2
Product product2 = new Product();
product2.setId(Long.valueOf(2));
product2.setTitle(“Panasonic/松下 NR-TC28WS1-N 风冷无霜家用抑菌三门小体积冰箱”);
product2.setPrice(5000.00);
product2.setCategory(“冰箱”);
product2.setImages(“http://image.baidu.com/13123.jpg”);
// 产品3
Product product3 = new Product();
product3.setId(Long.valueOf(3));
product3.setTitle(“Changhong/长虹 50D4P 50英寸超薄无边全面屏4K超高清智能电视机”);
product3.setPrice(2666.00);
product3.setCategory(“电视”);
product3.setImages(“http://image.baidu.com/13123.jpg”);
// 产品4
Product product4 = new Product();
product4.setId(Long.valueOf(4));
product4.setTitle(“创维40X6 40英寸高清电视机智能网络wifi平板液晶屏家用彩电32 43”);
product4.setPrice(1235.00);
product4.setCategory(“电视”);
product4.setImages(“http://image.baidu.com/13123.jpg”);
list.add(product1);
list.add(product2);
list.add(product3);
list.add(product4);
productRepository.saveAll(list);
}
/**
-
查询所有 通过自带方法
-
@return
*/
@RequestMapping(“/selectProductAll”)
public void selectProductAll() {
Iterable list = productRepository.findAll();
productRepository.deleteById(Long.valueOf(1));
for (Product product : list) {
System.out.println(product.getTitle());
}
}
/**
- 通过id删除
*/
@RequestMapping(“/deleteProduct”)
public void deleteProduct() {
productRepository.deleteById(Long.valueOf(1));
}
/**
- 删除全部
*/
@RequestMapping(“/deleteProductAll”)
public void deleteProductAll() {
productRepository.deleteAll();
}
}
调用以上接口 使用语句在kibana中验证
自定义方法
自定义方法的前提是我们需要继承ElasticsearchRepository接口,利用强大的Spring Data来实现。比如:你的方法名叫做:findByTitle,那么它就知道你是根据title查询,然后自动帮你完成,无需写实现类。
自定义方法命名约定
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
Java面试核心知识点笔记
其中囊括了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。
Java中高级面试高频考点整理
最后分享Java进阶学习及面试必备的视频教学
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
ages/e5c14a7895254671a72faed303032d36.jpg" alt=“img” style=“zoom: 33%;” />
Java面试核心知识点笔记
其中囊括了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。
[外链图片转存中…(img-4wucfG8s-1713570380719)]
Java中高级面试高频考点整理
[外链图片转存中…(img-xgiIqCVY-1713570380721)]
[外链图片转存中…(img-g4psx3Zb-1713570380725)]
最后分享Java进阶学习及面试必备的视频教学
[外链图片转存中…(img-0YN5zxoZ-1713570380727)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!