前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot电商项目实战 — ElasticSearch接入实现

SpringBoot电商项目实战 — ElasticSearch接入实现

作者头像
攻城狮的那点事
发布2019-08-15 17:32:52
1.6K0
发布2019-08-15 17:32:52
举报

如今在一些中大型网站中,搜索引擎已是必不可少的内容了。首先我们看看搜索引擎到底是什么呢?搜索引擎,就是根据用户需求与一定算法,运用特定策略从互联网检索出制定信息反馈给用户的一门检索技术。搜索引擎依托于多种技术,如网络爬虫技术、检索排序技术、网页处理技术、大数据处理技术、自然语言处理技术等,为信息检索用户提供快速、高相关性的信息服务。搜索引擎技术的核心模块一般包括爬虫、索引、检索和排序等,同时可添加其他一系列辅助模块,以为用户创造更好的网络使用环境。

基于Java的搜索引擎框架,目前市面上很多。如:Lucene、Nutch、Solandra、Solr、ElasticSearch、Compass等,这里具体不一一对比讨论。今天主要说的是ElasticSearch搜索引擎的实现。

ElasticSearch接入实现

ElasticSearch简称es,它是一款基于Lucene框架的分布式搜索引擎,也是一个高度可扩展的开源全文搜索和分析引擎,可以快速的、近实时地对大数据进行存储、搜索和分析,用来支撑复杂的数据搜索需求和企业级应用。并且也是一款为数不多的基于JSON进行索引的搜索引擎。它特别适合在云计算平台上使用。

一、ElasticSearch的安装

我们先进入Linux服务器,然后在/usr/local/下创建elasticsearch,命令如下:

cd /usr/local/
mkdir elasticsearch

然后进入elasticsearch目录,下载es。

cd elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.1.tar.gz

解压es

tar -zxvf elasticsearch-6.8.1.tar.gz

修改配置文件:

vim elasticsearch-6.8.1/config/elasticsearch.yml
##修改内容
network.host: 192.168.1.101
http.port: 9200

修改/etc/sysctl.conf

vim /etc/sysctl.conf
##添加一下内容
vm.max_map_count=262144

使用非root账号启动es服务

cd elasticsearch-6.8.1
./bin/elasticsearch -d

测试:

二、ElasticSearch接入实现

pom文件,版本号:2.1.4.RELEASE

<!-- 版本号 -->
<spring-elasticsearch.version>2.1.4.RELEASE</spring-elasticsearch.version>
<elasticsearch-client.version>6.6.2</elasticsearch-client.version>
<!-- elasticsearch -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
    <version>${spring-elasticsearch.version}</version>
</dependency>
<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
    <version>${elasticsearch-client.version}</version>
</dependency>

application.properties配置

##ES
spring.data.elasticsearch.cluster-name=my_application
spring.data.elasticsearch.cluster-nodes=192.168.1.101:9300
spring.data.elasticsearch.repositories.enabled=true

ES的泛型实体,具体根据自己的业务和所需字段定义

ElasticsearchRepository类

package com.lyn.web.elastic;

import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Component;

@Component
public interface GoodsEsRepository extends ElasticsearchRepository<GoodsVo,Long> {
}

‍启动类添加如下代码,解决与Netty冲突异常。

System.setProperty("es.set.netty.runtime.available.processors", "false");

ES同步及查询接口

启动项目,测试结果:

项目启动成功后先执行save接口,同步数据库数据到es。然后调用search接口查询。

此刻,Springboot集成ElasticSearch的索引接入已经完成。代码也已同步上传到github,有需要的小伙伴可根据下面获取方式获取源码。

推荐阅读:

SpringBoot电商项目实战 — 商品的SPU/SKU实现

SpringBoot电商项目实战 — 数据库服务化切分

SpringBoot电商项目实战 — Zookeeper的分布式锁实现

SpringBoot电商项目实战 — Redis实现分布式锁

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 攻城狮的那点事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、ElasticSearch的安装
  • 二、ElasticSearch接入实现
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档