elasticsearch初步使用
一、本地 windows 安装elasticsearch
- 先安装jdk 保证cmd 命令 java 和 javac都正常
- 从官网下载ElasticSearch https://www.elastic.co/downloads/elasticsearch,下载zip。
- 解压到指定的目录
- 进入到\elasticsearch7.9.3\bin执行elasticsearch.bat
- http://localhost:9200/
- ElasticSearch安装为Windows服务
- \elasticsearch-7.9.3\bin目录下cmd
elasticsearch-service.bat install
8.services.msc 查看本机服务,然后启动elasticsearch , 然后执行第5步
最后发现版本不合适
换个版本
在springboot 中使用 elasticsearch
Windows本地搭建elasticsearch
1.确定maven中elasticsearch的版本
<!-- elasticsearch -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifact>
</dependency>
可以看到是6.4.3 那么我们的elasticsearch和ik分词器的版本也是6.4.3
2.下载elasticsearch6.4.3
网址:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-4-3
下载windows 版本
3.下载完成后解压即可
4.下载ik分词器
下载地址: https://github.com/medcl/elasticsearch-analysis-ik/releases
找到6.4.3版本
下载后在elasticsearch6.4.3的plugins 目录下
先新建一个文件夹: analysis-ik,必须是analysis-ik的文件夹名称
然后elasticsearch-analysis-ik-6.4.zip解压到analysis-ik的文件夹下
然后修改elasticsearch6.4.3的config目录下elasticsearch.yml
修改成如下图所示:
network.host: 192.168.1.101 // 本机的地址
transport.tcp.port: 9300 // tcp端口,Java 连接的端口
transport.tcp.compress: true
http.port: 9200 // http端口 浏览器访问端口
然双击elasticsearch6.4.3的bin目录下elasticsearch.bat 即可运行
5.启动
浏览器访问:配置的地址是192.168.1.101 ,访问也必须是192.168.1.101,端口是9200
Spring boot 连接:
Cluster-name是浏览器访问到的是什么名称,就填什么名称
Cluster-nodes的端口是9300不是9200
为了使启动时,如果elasticsearch没连接上导致项目启动不了,所在在启动类中加上
/**
* Springboot整合Elasticsearch 在项目启动前设置一下的属性,防止报错
* java.lang.IllegalStateException: availableProcessors is already set to [4], rejecting [4]
*/
System.setProperty("es.set.netty.runtime.available.processors", "false");
java中使用:
启动类中
OrderRepository
OrderDocument
order 中必须有一个字段是唯一的,并且加上注解 @Id
使用:
/**
* 测试用的,最终删除
*/
@GetMapping("/pageTest")
public IPage<OrderDocument> page(OrderParam orderParam, PageParam<Order> page) {
System.out.println(SpringVersion.getVersion());
System.out.println(SpringBootVersion.getVersion());
// OrderDocument order = new OrderDocument() ;
// order.setOrderId(282L);
// order.setOrderNumber("1310838029019254784");
// order.setUserId("86856d60cd844315b100cbf25938a9f3");
// order.setProdName("ssss");
// order.setCreateTime(new Date());
// orderRepository.save(order);
BoolQueryBuilder orderQuery = QueryBuilders.boolQuery();
if (orderParam.getProdName() !=null) {
orderQuery.must(QueryBuilders.matchQuery("prodName", orderParam.getProdName()));
}
if (orderParam.getStatus() !=null) {
orderQuery.must(QueryBuilders.matchQuery("status", orderParam.getStatus()));
}
orderQuery.mustNot(QueryBuilders.matchQuery("status", -1));
// 排序
Sort sort = new Sort(Sort.Direction.DESC,"createTime");
PageRequest pageRequest = PageRequest.of((int) page.getCurrent() - 1, (int) page.getSize(),sort);
Page<OrderDocument> pageOrderDocument = orderRepository.search(orderQuery, pageRequest);
IPage<Order> pageProduct = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>();
pageProduct.setTotal(pageOrderDocument.getTotalElements());
pageProduct.setRecords(mapperFacade.mapAsList(pageOrderDocument.getContent(), Order.class));
return pageProduct;
}