您的位置:首页 > 娱乐 > 八卦 > 推广普通话主题班会ppt_电商小程序名称_湖北网站seo策划_友情链接模板

推广普通话主题班会ppt_电商小程序名称_湖北网站seo策划_友情链接模板

2024/10/5 10:39:45 来源:https://blog.csdn.net/weixin_41989626/article/details/142650598  浏览:    关键词:推广普通话主题班会ppt_电商小程序名称_湖北网站seo策划_友情链接模板
推广普通话主题班会ppt_电商小程序名称_湖北网站seo策划_友情链接模板

lasticsearch 作为一个分布式搜索和分析引擎,已经被广泛应用于日志处理、数据搜索、实时分析等场景。本文将带你了解 Elasticsearch 的基本概念,并通过一个实际案例展示如何将其集成到项目中。

一、Elasticsearch 简介

1.1 什么是 Elasticsearch?

Elasticsearch 是一个基于 Apache Lucene 的分布式搜索引擎。它提供了强大的全文搜索、近实时的索引和搜索功能,广泛应用于日志分析、数据监控、数据分析等场景。

1.2 核心概念

在使用 Elasticsearch 之前,理解以下几个核心概念至关重要:

  • 索引 (Index):类似于关系型数据库中的“数据库”,是 Elasticsearch 存储和查询数据的地方。
  • 文档 (Document):Elasticsearch 中的数据单位,相当于关系型数据库中的一行数据。
  • 类型 (Type):文档的分类,虽然在 Elasticsearch 7.x 版本以后逐步被移除,但它在早期版本中用于对不同文档进行区分。
  • 节点 (Node):集群中的一个运行实例,集群可以包含多个节点,每个节点存储数据并参与索引和查询处理。

1.3 使用场景

Elasticsearch 可以用于以下场景:

  • 日志分析:结合 Logstash 和 Kibana,形成 ELK 堆栈,用于收集、分析和可视化日志数据。
  • 全文搜索:为网站或应用提供搜索功能,支持模糊搜索、近似匹配等功能。
  • 实时分析:利用 Elasticsearch 的强大分析功能,快速处理大量数据,实现实时监控和分析。

二、安装与配置

2.1 安装 Elasticsearch

在开始项目之前,首先需要在本地或服务器上安装 Elasticsearch。

使用 Docker 安装
docker pull elasticsearch:7.10.0
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.10.0
本地安装

可以从Elasticsearch官网下载最新版本的安装包,并根据操作系统选择适合的版本进行安装。

2.2 基本配置

Elasticsearch 的默认配置文件位于 config/elasticsearch.yml。其中几个关键的配置项包括:

cluster.name: my-cluster
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
  • cluster.name:定义集群的名称。
  • node.name:定义节点的名称。
  • network.host:指定网络绑定的地址。
  • http.port:指定 HTTP 服务的端口,默认是9200。

配置完毕后,启动 Elasticsearch: 

./bin/elasticsearch

三、实战案例:商品搜索功能

3.1 场景描述

在一个电商网站中,我们需要为用户提供商品的搜索功能,要求支持关键字匹配、模糊查询和结果分页。为此,我们将利用 Elasticsearch 的全文搜索功能实现这个需求。

3.2 数据建模

首先,我们需要为商品数据建立索引。在 Elasticsearch 中,我们可以使用 JSON 格式来定义索引的结构。

创建索引
PUT /products
{"mappings": {"properties": {"name": {"type": "text"},"description": {"type": "text"},"price": {"type": "float"},"in_stock": {"type": "boolean"}}}
}
这里定义了一个 products索引,包含以下字段:
  • name:商品名称,使用 text 类型进行全文检索。
  • description:商品描述,使用 text 类型。
  • price:商品价格,使用 float 类型。
  • in_stock:库存状态,使用 boolean 类型。

3.3 数据导入

接下来我们导入一些商品数据到 Elasticsearch。

POST /products/_doc/1
{"name": "iPhone 12","description": "Apple iPhone 12 with 64GB storage","price": 799.99,"in_stock": true
}POST /products/_doc/2
{"name": "Samsung Galaxy S21","description": "Samsung Galaxy S21 with 128GB storage","price": 999.99,"in_stock": true
}

3.4 搜索功能实现

接下来实现关键字搜索功能。用户可以根据商品名称或描述进行搜索,我们通过 Elasticsearch 的 match 查询实现。

GET /products/_search
{"query": {"match": {"name": "iPhone"}}
}

上面的查询将返回包含“iPhone”关键字的商品列表。

模糊查询

假设用户输入了拼写错误的关键字,例如“iPohne”,我们可以使用 fuzziness 参数进行模糊搜索。

GET /products/_search
{"query": {"match": {"name": {"query": "iPohne","fuzziness": "AUTO"}}}
}
分页查询

为了实现结果分页,我们可以在搜索请求中添加 fromsize 参数:

GET /products/_search
{"query": {"match": {"name": "Galaxy"}},"from": 0,"size": 10
}

这将返回从第0个文档开始的10条记录。

3.5 结合Java项目使用

为了在Java项目中集成 Elasticsearch,我们可以使用官方提供的 Elasticsearch Java REST 客户端。

Maven依赖

pom.xml 中添加如下依赖:

<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.10.0</version>
</dependency>
代码示例

使用 Java 进行商品搜索的示例代码如下:

import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.builder.SearchSourceBuilder;public class ProductSearchService {private RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http")));public SearchResponse searchProducts(String keyword) throws IOException {SearchRequest searchRequest = new SearchRequest("products");SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();sourceBuilder.query(QueryBuilders.matchQuery("name", keyword));searchRequest.source(sourceBuilder);return client.search(searchRequest, RequestOptions.DEFAULT);}
}

四、总结

通过本文的实战案例,我们展示了如何从零开始使用 Elasticsearch 构建一个商品搜索功能。Elasticsearch 强大的全文搜索能力、灵活的数据建模和快速的查询响应,使其成为开发者处理大规模数据时的首选工具。

在实际项目中,Elasticsearch 还可以用于日志监控、实时分析、推荐系统等多种场景。希望通过这个案例,能帮助你更好地理解 Elasticsearch 的应用,并将其融入到实际项目中。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com