默认spring boot 版本为 2.1.5.RELEASE 下载完成项目后可更改为自己项目使用的spring boot版本
默认ElasticSearch 版本为 6.4.2 极大简化ES操作难度 注:ES版本不要升级如果升级版本太高可能部分函数不兼容
1:关于ElasticSearch的配置参数 详见类 { EtcElasticSearchProperties }
3:maven导入坐标 ${version}根据自己编译的版本选择导入
<dependency>
<groupId>com.elastic.search</groupId>
<artifactId>search-spring-boot-starter</artifactId>
<version>${version}</version>
</dependency>
1 操作函数详见此包 { com.elastic.search.elasticsearch.infrastructure.executor }
2 配置索引名称需要继承 { BaseTypeIndexConfiguration } 注 :所有索引配置必须继承此类 ,建议将所有索引多配置到一个类中方便进行管理
例:
public class ElasticsearchConfig extends BaseTypeIndexConfiguration {
private ElasticsearchConfig(String indexName, String typeName) {
this.setIndexName(indexName);
this.setTypeName(typeName);
}
private static class OrderSearch {
private static final ElasticsearchConfig CONF = new ElasticsearchConfig(EsConstants.INDEX_OPERATOR_WAYBILL, EsConstants.TYPE_OPERATOR_WAYBILL);
}
public static ElasticsearchConfig order() {
return OrderSearch.CONF;
}
}
3 执行ElasticSearch操作 注:以下示例操作并非最全函数可以自己探索 ,「索引配置」是类中的一个静态属性每个示例都写是为了方便理解
(增)例:
索引配置
private static ElasticsearchConfig esConfiguration = ElasticsearchConfig.order();
//创建需要存入的对象
EsOrder esOrder = new EsOrder();
esOrder.setId(1000003L);
esOrder.setOrderId("123");
esOrder.setAmount(10.0);
esOrder.setCategoryId(11);
esOrder.setProductCode("123");
esOrder.setStoreName("测试");
esOrder.setQuantity(1);
esOrder.setCreateTime(new Date());
Boolean execute = new BaseSearchSaveExecutor<EsOrder>() {
@Override
public ElasticsearchConfig getConfig() {
return esConfiguration;
}
}.execute(esOrder);
(删)例:
1)主键删除
//索引配置
private static ElasticsearchConfig esConfiguration = ElasticsearchConfig.order();
Boolean execute = new BaseSearchDeleteExecutor<Boolean>() {
@Override
public ElasticsearchConfig getConfig() {
return esConfiguration;
}
}.execute(1000002L);
2)条件删除
//索引配置
private static ElasticsearchConfig esConfiguration = ElasticsearchConfig.order();
List<SearchCondition> searchConditions = SearchConditionUtils.start()
.addCondition("id", 1000000, ConditionExpressionEnum.EQUAL)
.end();
Boolean execute = new BaseSearchDeleteExecutor<Boolean>() {
@Override
public ElasticsearchConfig getConfig() {
return esConfiguration;
}
}.execute(searchConditions);
(改)例:
1)主键更新:
//索引配置
private static ElasticsearchConfig esConfiguration = ElasticsearchConfig.order();
EsOrder esOrder = new EsOrder();
esOrder.setId(1000001L);
esOrder.setOrderId("123");
esOrder.setAmount(10.0);
esOrder.setCategoryId(11);
esOrder.setProductCode("123");
esOrder.setStoreName("测试");
esOrder.setQuantity(1);
esOrder.setCreateTime(new Date());
Boolean execute = new BaseSearchUpdateExecutor<EsOrder>() {
@Override
public ElasticsearchConfig getConfig() {
return esConfiguration;
}
}.execute(esOrder);
2)条件更新:
//索引配置
private static ElasticsearchConfig esConfiguration = ElasticsearchConfig.order();
EsOrder esOrder = new EsOrder();
esOrder.setId(1000001L);
esOrder.setOrderId("123");
esOrder.setAmount(10.0);
esOrder.setCategoryId(11);
esOrder.setProductCode("123");
esOrder.setStoreName("测试");
esOrder.setQuantity(1);
esOrder.setCreateTime(new Date());
//条件
List<SearchCondition> searchConditions = SearchConditionUtils.start()
.addCondition("id", 1000000, ConditionExpressionEnum.EQUAL)
.end();
Boolean execute = new BaseSearchUpdateExecutor<EsOrder>() {
@Override
public ElasticsearchConfig getConfig() {
return esConfiguration;
}
}.execute(esOrder, searchConditions);
(查)例:
1)普通条件查询
//索引配置
private static ElasticsearchConfig esConfiguration = ElasticsearchConfig.order();
List<SearchCondition> searchConditions = SearchConditionUtils.start()
.addCondition("orderId", 123, ConditionExpressionEnum.EQUAL)
.addCondition("id", 1000002, ConditionExpressionEnum.EQUAL)
.end();
List<EsOrder> list = new BaseSearchQueryExecutor<EsOrder>() {
@Override
public ElasticsearchConfig getConfig() {
return esConfiguration;
}
}.list(searchConditions);
2)分页查询
//索引配置
private static ElasticsearchConfig esConfiguration = ElasticsearchConfig.order();
List<SearchCondition> searchConditions = SearchConditionUtils.start()
.addCondition("orderId", 123, ConditionExpressionEnum.EQUAL)
.end();
List<EsOrder> list = new BaseSearchQueryExecutor<EsOrder>() {
@Override
public ElasticsearchConfig getConfig() {
return esConfiguration;
}
}.list(searchConditions, 0, 2);
3)分页排序查询
//索引配置
private static ElasticsearchConfig esConfiguration = ElasticsearchConfig.order();
//分页
PageCondition pageCondition = PageConditionUtils.create(2, 0);
//排序
List<OrderCondition> orderConditions = OrderConditionUtils.start().addCondition("createTime", SortEnum.DESC).end();
//条件
List<SearchCondition> searchConditions = SearchConditionUtils.start()
.addCondition("orderId", 123, ConditionExpressionEnum.EQUAL)
.end();
List<EsOrder> list = new BaseSearchQueryExecutor<EsOrder>() {
@Override
public ElasticsearchConfig getConfig() {
return esConfiguration;
}
}.list(searchConditions, orderConditions, pageCondition);