前言:
如今兄弟们对“基于es的搜索引擎有哪些方法”都比较关切,看官们都想要了解一些“基于es的搜索引擎有哪些方法”的相关知识。那么小编在网摘上汇集了一些有关“基于es的搜索引擎有哪些方法””的相关文章,希望大家能喜欢,各位老铁们一起来学习一下吧!ElasticSearch是一款分布式、RestApi风格、开源的全文本搜索引擎。我们可以基于它做数据存储、数据分析、数据查询。
为啥要用它,为啥它会流行呢?
开源,我们可以拥有自己的搜索引擎支持各种部署方式,从单机,集群,linux,windows,docker,k8s等,满足了各种场景应用需求,向后兼容,与时俱进提供了restapi供用户使用已经有spring-elasticsearch集成支持,不用直接面对es自己的语法即插即用,配置简单es插件丰富配合elastic公司套件,快速提供常用分析系统基础社区活跃,已与阿里巴巴/腾讯达成战略合作
废话少说,开整!
下载安装启动验证
下载地址:
解压后即可启动。
linux启动
试运行,es运行需要jvm,支持的最低版本为jdk1.8
#elasticsearch
以后台模式运行
#elasticsearch -d
#检查是否安装成功
docker启动
docker镜像拉取
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.6.2
运行es容器
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.6.2常用配置修改
配置文件:elasticsearch.yml
绑定服务地址或域名:#network.host: 133.128.41.153
端口:#http.port: 9200
搜索引擎的数据存储,最好单独存到一个数据盘,因为会越来越大
存储位置配置:#path.data: /elasticsearch/data1,/elasticsearch/data2
支持配置多个目录
插件安装
#查询目前安装的插件列表:
elasticsearch-plugin list
#安装es插件
elasticsearch-plugin install实用插件推荐:elasticsearch-sql
使用您的 SQL 技能在 Elasticsearch 内搜索数据,通过您熟悉的语言驾驭 Elastic 的巨大威力。通过 CLI、REST 端点、ODBC或 JDBC 发送 SQL 查询,以全新速度获得结果。
elasticsearch-sql插件安装
先从github上下载master源码
然后解压,在本地用mvn编译:
#mvn clean package assembly:single -DskipTests
编译成功后会在本目录下生成target文件夹,
其中的elasticsearch.zip为目标插件
测试插件:
* from logstash-index1 limit 10常用es接口
#查询ES中所有索引:
curl 'localhost:9200/_cat/indices?v'
#删除索引,支持通配符
curl -XDELETE localhost:9200/logstash-2017*
#已有索引新增字段并赋值
curl -POST localhost:9200/my_index/_update_by_query -d '{ "script":{ "lang":"painless", "inline":"if (ctx._source.status == null) {ctx._source.status= '02'}" }}'
#根据条件获取记录:
host:port/indexName/${_type}/${_id}/curl localhost:9200/logstash-2020.04.19/log/AV2lr6B97SJZqxwZjhpG/创建索引别名,这是个很有用的骚操作
比如一批索引想拿一个index查询,可以用别名
curl -XPOST 'localhost:9200/_aliases -d '{"actions":[{"add":{"index":"indexName","alias":"aliasName"}}]}'springboot集成elasticsearch
引入maven依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency>
es配置
spring: data: elasticsearch: cluster-nodes: localhost:9200 cluster-name: test repositories: enabled: true
调用查询接口:
// 构造分页类 Pageable pageable = PageRequest.of(page, size);// 构造查询 NativeSearchQueryBuilder NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder() .withPageable(pageable) ; if (!StringUtils.isEmpty(keyword)) { // keyword must not null searchQueryBuilder.withQuery(QueryBuilders.queryStringQuery(keyword)); } SearchQuery searchQuery = searchQueryBuilder.build(); // page search Page<JSONObject> resultPage = elasticsearchTemplate.queryForPage(searchQuery, JSONObject.class);
如果使用elasticsearch-sql插件,那我们的查询就是写sql了。
这为我们分析纷繁复杂的日志数据提供了强大的能力。
下讲可以说说数据采集与接入了:各种Beat和Logstash。
Just Beat It
Just Beat It
Just Beat It
标签: #基于es的搜索引擎有哪些方法