长垣县建站塔山双喜,网站软件下载安装,有没有专门做建筑造价的私单网站,免费软件大全写在前面
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎#xff0c;基于RESTful web接口。Elasticsearch是用Java开发的#xff0c;并作为Apache许可条款下的开放源码发布#xff0c;是当前流行的企业级搜索引擎。设计用于[云计…写在前面
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎基于RESTful web接口。Elasticsearch是用Java开发的并作为Apache许可条款下的开放源码发布是当前流行的企业级搜索引擎。设计用于[云计算]中能够达到实时搜索稳定可靠快速安装使用方便。
可以这样来对比elasticsearch和数据库 索引indices ~~~~~~~~ 数据库databases) 类型type) ~~~~~~~~ 数据表table) 文档Document~~~~~~~~ 行(row) 字段Field ~~~~~~~~ 列(Columns )
shards分片数量默认5 replicas副本数量默认1
引入库
implementation group: org.springframework.boot, name: spring-boot-starter-data-elasticsearch, version: 2.7.5
implementation group: org.springframework.data, name: spring-data-elasticsearch, version: 4.4.13;版本对应要求见如下表格: 传送门
Spring Data Release TrainSpring Data ElasticsearchElasticsearchSpring FrameworkSpring Boot2023.0 (Ullmann)5.1.x8.7.16.0.x3.1.x2022.0 (Turing)5.0.x8.5.36.0.x3.0.x2021.2 (Raj)4.4.x[1]7.17.35.3.x2.7.x2021.1 (Q)4.3.x[1]7.15.25.3.x2.6.x2021.0 (Pascal)4.2.x[1]7.12.05.3.x2.5.x2020.0 (Ockham)4.1.x[1]7.9.35.3.22.4.xNeumann4.0.x[1]7.6.25.2.122.3.xMoore3.2.x[1]6.8.125.2.122.2.xLovelace3.1.x[1]6.2.25.1.192.1.xKay3.0.x[1]5.5.05.0.132.0.xIngalls2.1.x[1]2.4.04.3.251.5.x
配置连接
spring:elasticsearch:rest:uris: 10.10.88.163:9200username: rootpassword: pass123配置信息读取
RefreshScope
ConfigurationProperties(ESProperties.PREFIX)
public class ESProperties {public static final String PREFIX spring.elasticsearch.rest;private Boolean enable true;private String uris;private String userName;/*** Secret key是你账户的密码*/private String password;}连接初始化
AutoConfiguration
EnableConfigurationProperties(ESProperties.class)
ConditionalOnProperty(value ESProperties.PREFIX .enabled, havingValue true, matchIfMissing true)
public class ElasticSearchConfig extends AbstractElasticsearchConfiguration {private static final Logger logger LogManager.getLogger(ElasticSearchConfig.class);Resourceprivate ESProperties esProperties;OverrideBean(destroyMethod close)public RestHighLevelClient elasticsearchClient() {final ClientConfiguration clientConfiguration ClientConfiguration.builder().connectedTo(esProperties.getUris()).withBasicAuth(esProperties.getUserName(), esProperties.getPassword()).withConnectTimeout(RestClientBuilder.DEFAULT_CONNECT_TIMEOUT_MILLIS).withSocketTimeout(RestClientBuilder.DEFAULT_SOCKET_TIMEOUT_MILLIS).build();RestHighLevelClient client RestClients.create(clientConfiguration).rest();try {logger.info(connect to elasticsearch:{} , client.getLowLevelClient().getNodes());MainResponse response client.info(RequestOptions.DEFAULT);MainResponse.Version version response.getVersion();logger.info(elasticsearch version:{},lucene version:{}, version.getNumber(), version.getLuceneVersion());} catch (Exception e) {throw new RuntimeException(e);}return client;}
}文件配置 spring.factories
org.springframework.boot.autoconfigure.EnableAutoConfigurationio.gamioo.core.elasticsearch.config.ElasticSearchConfigDAO层
public interface OperationLogRepository extends ElasticsearchRepositoryOperationLog, String {}操作对象
ApiModel(value operation_log, description 操作日志)
Document(indexName operation_log_*)
public class OperationLog {Idprivate String id;ApiModelProperty(创建时间)Field(name addTime, type FieldType.Date, format DateFormat.custom, pattern yyyy-MM-ddTHH:mm:ssz)private Date addTime;}逻辑操作 Resourceprivate OperationLogRepository repository;Overridepublic PageOperationLog findAll(Pageable pageable) {return repository.findAll(pageable);}Overridepublic PageOperationLog findByAddTimeBetween(LocalDateTime startTime, LocalDateTime endTime, Pageable pageable) {return repository.findByAddTimeBetween(startTime, endTime, pageable);}QA
1.实际使用中一直报错 missing authentication credentials for REST request 经过多方查证最后发现报错原因是配置ES时没添加用户名密码验证
总结
以上就是springboot集成es后的一个简单使用spring封装过后的spring-boot-starter-data-elasticsearch使用起来还是非常方便简单的。