Elasticsearch7

时间: 2023-08-21 13:09:39 浏览: 28
Elasticsearch7是一个开源的分布式搜索和分析引擎,它使用Lucene作为底层引擎,并通过JSON和Java API提供其所有特性。它支持facetting和percolating,可以用于通知。另一个特性是“网关”,它处理索引的长期持久性,可以在服务器崩溃的情况下恢复索引。Elasticsearch支持实时GET请求,适合作为NoSQL数据存储,但缺少分布式事务。\[3\] 要搭建Elasticsearch7环境,你可以按照以下步骤进行操作: 1. 将elasticsearch程序包、数据文件夹以及日志文件夹设置为elasticsearch用户,只有elasticsearch用户才能启动elasticsearch服务。可以使用以下命令设置权限: ``` $ chown -R elasticsearch:elasticsearch /opt/es/elasticsearch-7.12.0/ $ chown -R elasticsearch:elasticsearch /opt/es/data $ chown -R elasticsearch:elasticsearch /opt/es/logs ``` 2. 下载Elasticsearch程序包到当前路径下。可以使用以下命令下载: ``` $ curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.0-linux-x86_64.tar.gz ``` 以上是搭建Elasticsearch7环境的基本步骤。你可以根据实际需求进行配置和使用。 #### 引用[.reference_title] - *1* *2* [ElasticSearch 7 入门使用教程](https://blog.csdn.net/qq_40874285/article/details/130183656)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [ElasticSearch 7 入门](https://blog.csdn.net/qq_44102261/article/details/116655425)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

相关推荐

Elasticsearch 7 是一个开源的分布式搜索和分析引擎,用于处理大规模数据集。它是一个基于Lucene的搜索引擎,具有快速、可扩展和高度可靠的特点。Elasticsearch 7 教程提供了一些关于如何使用和配置Elasticsearch 7 的指导和实践。 Elasticsearch 7 教程主要包括以下几个方面的内容: 1. Elasticsearch 7 的介绍:了解Elasticsearch 7 的基本概念、体系结构和用途,并了解它与传统数据库的区别和优势。 2. 安装和配置Elasticsearch 7:详细介绍如何安装和配置Elasticsearch 7,包括软件要求、依赖项和参数设置等。 3. 数据索引和搜索:学习如何通过Elasticsearch 7 对数据进行索引和搜索,包括字段映射、分析器和索引操作等。 4. 查询和过滤:掌握使用Elasticsearch 7 进行查询和过滤数据的方法,包括基本查询、聚合查询和过滤器等。 5. 高级特性和优化:学习一些高级特性和优化技巧,如分布式搜索、复制和分片、集群管理等。 6. 相关工具和插件:了解一些常用的工具和插件,如Kibana、Logstash、Beats等,以及它们与Elasticsearch 7 的集成和使用。 Elasticsearch 7 教程 PDF 提供了完整的指南和示例,以帮助用户更好地理解和应用Elasticsearch 7。通过学习这些内容,用户可以轻松地开始使用Elasticsearch 7 进行数据分析和搜索,并最大限度地发挥其性能和功能。无论是数据工程师、开发人员还是数据分析师,都可以从中获益,提高他们在数据处理和搜索领域的技能和知识。
Spring Boot集成Elasticsearch 7需要进行以下步骤: 1. 添加Elasticsearch依赖 在pom.xml文件中添加以下依赖: <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.0.0</version> </dependency> 2. 创建Elasticsearch配置文件 在application.yml或application.properties文件中添加以下配置: spring.data.elasticsearch.cluster-nodes: localhost:9200 spring.data.elasticsearch.cluster-name: elasticsearch 其中,spring.data.elasticsearch.cluster-nodes指定Elasticsearch的主机名和端口号,spring.data.elasticsearch.cluster-name指定集群名称。 3. 创建Elasticsearch客户端 可以使用以下代码创建Elasticsearch客户端: @Configuration public class ElasticSearchConfig { @Bean public RestHighLevelClient restHighLevelClient() { RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http")); RestHighLevelClient client = new RestHighLevelClient(builder); return client; } } 4. 创建Elasticsearch存储库 可以使用Spring Data Elasticsearch来创建Elasticsearch存储库。在创建存储库时,需要继承ElasticsearchRepository接口并指定实体类和实体类的ID类型,例如: @Repository public interface BookRepository extends ElasticsearchRepository<Book, Long> { } 其中,Book是实体类,Long是实体类的ID类型。 5. 在应用程序中使用Elasticsearch存储库 现在可以在应用程序中使用Elasticsearch存储库来执行CRUD操作,例如: @Service public class BookService { @Autowired private BookRepository bookRepository; public Book save(Book book) { return bookRepository.save(book); } public void delete(Book book) { bookRepository.delete(book); } public Optional<Book> findById(Long id) { return bookRepository.findById(id); } public Iterable<Book> findAll() { return bookRepository.findAll(); } // 其他自定义方法 } 以上就是Spring Boot集成Elasticsearch 7的基本步骤。当然,在实际开发中,还需要根据具体需求进行一些配置和定制化。
好的,下面是 CentOS 7.9 编译安装 Elasticsearch 7 的步骤: 1. 安装 Java Elasticsearch 是基于 Java 开发的,因此需要先安装 Java。可以执行以下命令来安装 OpenJDK: sudo yum install java-1.8.0-openjdk-devel 2. 下载 Elasticsearch 从 Elasticsearch 官网下载最新版本的 Elasticsearch,下载地址为:https://www.elastic.co/downloads/elasticsearch。 可以使用 wget 命令来下载,例如: wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.1-linux-x86_64.tar.gz 3. 解压 Elasticsearch 将下载的 Elasticsearch 压缩包解压到指定的目录: tar -zxvf elasticsearch-7.12.1-linux-x86_64.tar.gz -C /opt/ 4. 配置 Elasticsearch 进入 Elasticsearch 安装目录,编辑 config/elasticsearch.yml 文件,设置以下配置项: cluster.name: my_cluster node.name: my_node network.host: 0.0.0.0 其中,cluster.name 和 node.name 可以根据自己的需求修改,network.host 设置为 0.0.0.0 表示允许外部访问。 5. 启动 Elasticsearch 在 Elasticsearch 安装目录下执行以下命令启动 Elasticsearch: ./bin/elasticsearch 6. 验证 Elasticsearch 使用 curl 命令验证 Elasticsearch 是否正常运行: curl http://localhost:9200/ 如果返回以下信息,则表示 Elasticsearch 已经正常运行: { "name" : "my_node", "cluster_name" : "my_cluster", "cluster_uuid" : "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx", "version" : { "number" : "7.12.1", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "xxxxxxx", "build_date" : "2021-04-20T20:56:39.040728659Z", "build_snapshot" : false, "lucene_version" : "8.8.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" } 以上就是 CentOS 7.9 编译安装 Elasticsearch 7 的步骤,希望能对你有所帮助。
在使用Spring集成Elasticsearch7时,可以通过设置索引的映射和查询时使用的分析器来实现忽略大小写的功能。 首先,在创建索引时,可以使用字段的映射设置来指定对应字段的分析器。通过设置分析器为"keyword_lowercase",可以将字段设置为忽略大小写。例如,以下代码片段演示了如何创建一个忽略大小写的索引: java CreateIndexRequest createIndexRequest = new CreateIndexRequest("my_index"); createIndexRequest.settings(Settings.builder() .put("index.analysis.analyzer.default.type", "custom") .put("index.analysis.analyzer.default.tokenizer", "keyword") .put("index.analysis.analyzer.default.filter", "lowercase") .build()); Mapping mapping = new Mapping.Builder() .field(new StringField("my_field") .analyzer("keyword_lowercase")) .build(); createIndexRequest.mapping(mapping); CreateIndexResponse response = restHighLevelClient.indices().create(createIndexRequest, RequestOptions.DEFAULT); 在查询时,我们可以使用Spring Data Elasticsearch来构造查询请求。通过使用QueryBuilders类提供的matchQuery方法,并指定字段为忽略大小写的分析器,可以实现忽略大小写的查询。例如,以下代码片段演示了如何使用忽略大小写的方式进行查询: java QueryBuilder queryBuilder = QueryBuilders.matchQuery("my_field", "value") .analyzer("keyword_lowercase"); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.query(queryBuilder); SearchRequest searchRequest = new SearchRequest("my_index"); searchRequest.source(searchSourceBuilder); SearchResponse response = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT); 通过以上的设置和方法,我们可以在Spring集成Elasticsearch7中实现忽略大小写的功能。这样,无论字段的大小写如何,都可以正确地进行索引和查询操作。
好的,我可以为您提供相关的信息和代码示例。首先,您需要确保您的Spring Boot项目中包含以下依赖项: xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.0.0</version> </dependency> 接下来,您需要在application.properties文件中添加以下配置: properties spring.data.elasticsearch.cluster-name=my-application spring.data.elasticsearch.cluster-nodes=localhost:9300 然后,您可以编写Elasticsearch工具类来执行一些常见的操作,例如索引文档、搜索文档等。以下是一个示例工具类: java import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.bulk.BulkRequest; import org.elasticsearch.action.bulk.BulkResponse; import org.elasticsearch.action.get.GetRequest; import org.elasticsearch.action.index.IndexRequest; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.update.UpdateRequest; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchHits; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.io.IOException; import java.util.Map; @Component public class ElasticsearchUtil { @Autowired private RestHighLevelClient restHighLevelClient; /** * 索引文档 * @param indexName 索引名称 * @param id 文档ID * @param sourceMap 文档内容 * @throws IOException */ public void indexDocument(String indexName, String id, Map<String, Object> sourceMap) throws IOException { IndexRequest request = new IndexRequest(indexName); if (id != null) { request.id(id); } request.source(sourceMap); restHighLevelClient.index(request, RequestOptions.DEFAULT); } /** * 更新文档 * @param indexName 索引名称 * @param id 文档ID * @param sourceMap 文档内容 * @throws IOException */ public void updateDocument(String indexName, String id, Map<String, Object> sourceMap) throws IOException { UpdateRequest request = new UpdateRequest(indexName, id); request.doc(sourceMap); restHighLevelClient.update(request, RequestOptions.DEFAULT); } /** * 批量索引文档 * @param indexName 索引名称 * @param sourceMaps 文档内容列表 * @throws IOException */ public void bulkIndexDocuments(String indexName, Map<String, Object>[] sourceMaps) throws IOException { BulkRequest request = new BulkRequest(); for (Map<String, Object> sourceMap : sourceMaps) { IndexRequest indexRequest = new IndexRequest(indexName); indexRequest.source(sourceMap); request.add(indexRequest); } restHighLevelClient.bulk(request, RequestOptions.DEFAULT); } /** * 批量更新文档 * @param indexName 索引名称 * @param idList 文档ID列表 * @param sourceMap 文档内容 * @throws IOException */ public void bulkUpdateDocuments(String indexName, String[] idList, Map<String, Object> sourceMap) throws IOException { BulkRequest request = new BulkRequest(); for (String id : idList) { UpdateRequest updateRequest = new UpdateRequest(indexName, id); updateRequest.doc(sourceMap); request.add(updateRequest); } restHighLevelClient.bulk(request, RequestOptions.DEFAULT); } /** * 获取文档 * @param indexName 索引名称 * @param id 文档ID * @return * @throws IOException */ public Map<String, Object> getDocument(String indexName, String id) throws IOException { GetRequest request = new GetRequest(indexName, id); return restHighLevelClient.get(request, RequestOptions.DEFAULT).getSourceAsMap(); } /** * 搜索文档 * @param indexName 索引名称 * @param keyword 关键词 * @param size 每页数量 * @param from 起始位置 * @return * @throws IOException */ public SearchHits searchDocuments(String indexName, String keyword, int size, int from) throws IOException { SearchRequest searchRequest = new SearchRequest(indexName); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.query(QueryBuilders.matchQuery("content", keyword)); searchSourceBuilder.from(from); searchSourceBuilder.size(size); searchSourceBuilder.timeout(TimeValue.timeValueSeconds(60)); searchRequest.source(searchSourceBuilder); SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT); return searchResponse.getHits(); } } 最后,您可以在您的代码中使用ElasticsearchUtil类,并根据您的需求调用它的方法来执行所需的操作。以下是一个示例调用: java import org.elasticsearch.search.SearchHits; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.io.IOException; import java.util.HashMap; import java.util.Map; @RestController public class DemoController { @Autowired private ElasticsearchUtil elasticsearchUtil; @GetMapping("/index") public String index() throws IOException { Map<String, Object> sourceMap = new HashMap<>(); sourceMap.put("title", "Elasticsearch 7 教程"); sourceMap.put("content", "Elasticsearch 7 入门教程"); elasticsearchUtil.indexDocument("my_index", null, sourceMap); return "索引文档成功!"; } @GetMapping("/search") public String search(@RequestParam("keyword") String keyword, @RequestParam("size") int size, @RequestParam("from") int from) throws IOException { SearchHits searchHits = elasticsearchUtil.searchDocuments("my_index", keyword, size, from); return searchHits.toString(); } } 希望这些代码示例可以帮助您整合Elasticsearch 7到您的Spring Boot项目中,并提供了一些常见的操作示例。

最新推荐

CentOS 7 部署 Elasticsearch7.4 集群并进行安全认证.docx

CentOS 7 部署 Elasticsearch7.4 集群并进行安全认证.docx

Elasticsearch 开机自启脚本

Elasticsearch 开机自启脚本,方便用户自动启动Elasticsearch,也可以直接用systemctl启动或是关闭

es(elasticsearch)整合SpringCloud(SpringBoot)搭建教程详解

主要介绍了es(elasticsearch)整合SpringCloud(SpringBoot)搭建教程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

skywalking+es+kafka部署文档.docx

详细介绍了skywalking8.4 + kafka + es7配置搭建过程

elasticsearch中term与match的区别讲解

今天小编就为大家分享一篇关于elasticsearch中term与match的区别讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

分布式高并发.pdf

分布式高并发

基于多峰先验分布的深度生成模型的分布外检测

基于多峰先验分布的深度生成模型的似然估计的分布外检测鸭井亮、小林圭日本庆应义塾大学鹿井亮st@keio.jp,kei@math.keio.ac.jp摘要现代机器学习系统可能会表现出不期望的和不可预测的行为,以响应分布外的输入。因此,应用分布外检测来解决这个问题是安全AI的一个活跃子领域概率密度估计是一种流行的低维数据分布外检测方法。然而,对于高维数据,最近的工作报告称,深度生成模型可以将更高的可能性分配给分布外数据,而不是训练数据。我们提出了一种新的方法来检测分布外的输入,使用具有多峰先验分布的深度生成模型。我们的实验结果表明,我们在Fashion-MNIST上训练的模型成功地将较低的可能性分配给MNIST,并成功地用作分布外检测器。1介绍机器学习领域在包括计算机视觉和自然语言处理的各个领域中然而,现代机器学习系统即使对于分

阿里云服务器下载安装jq

根据提供的引用内容,没有找到与阿里云服务器下载安装jq相关的信息。不过,如果您想在阿里云服务器上安装jq,可以按照以下步骤进行操作: 1.使用wget命令下载jq二进制文件: ```shell wget https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 -O jq ``` 2.将下载的jq文件移动到/usr/local/bin目录下,并添加可执行权限: ```shell sudo mv jq /usr/local/bin/ sudo chmod +x /usr/local/bin/jq ``` 3.检查j

毕业论文java vue springboot mysql 4S店车辆管理系统.docx

包括摘要,背景意义,论文结构安排,开发技术介绍,需求分析,可行性分析,功能分析,业务流程分析,数据库设计,er图,数据字典,数据流图,详细设计,系统截图,测试,总结,致谢,参考文献。

"结构化语言约束下的安全强化学习框架"

使用结构化语言约束指导安全强化学习Bharat Prakash1,Nicholas Waytowich2,Ashwinkumar Ganesan1,Tim Oates1,TinooshMohsenin11马里兰大学,巴尔的摩县(UMBC),2美国陆军研究实验室,摘要强化学习(RL)已经在解决复杂的顺序决策任务中取得了成功,当一个定义良好的奖励函数可用时。对于在现实世界中行动的代理,这些奖励函数需要非常仔细地设计,以确保代理以安全的方式行动。当这些智能体需要与人类互动并在这种环境中执行任务时,尤其如此。然而,手工制作这样的奖励函数通常需要专门的专业知识,并且很难随着任务复杂性而扩展。这导致了强化学习中长期存在的问题,即奖励稀疏性,其中稀疏或不明确的奖励函数会减慢学习过程,并导致次优策略和不安全行为。 更糟糕的是,对于RL代理必须执行的每个任务,通常需要调整或重新指定奖励函数。另一�