搜索服务
需求
实现整个系统的全站搜索
主要是实现商品相关搜索
分析
技术站:ElasticSearch Spring Data Elasticsearch
索引:
商品信息:micro:products
文档:
商品id 商品名称 商品的关键字 商品的类型
1.数据一致性的保证:
a.采用定时任务实现ES数据的维护
从Redis获取数据:
1个:新增的内容
1个:修改的内容
1个:删除的内容
批处理
b.MQ
后台系统上架商品、下架、修改的时候分别发送MQ消息到队列,消息监听器监听队列的消息变化,更新ES
二、代码实现
public class SystemConfig {
/*
ES用来存储商品信息的索引名称
*/
public static final String ES_PRODUCTS="micro:es:product";
}
package com.lxm.searchservice.model;
import com.lxm.common.config.SystemConfig;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
/**
* @Author LXM
* @Date 2020/7/16 0016
*/
@Data
@Document(indexName = SystemConfig.ES_PRODUCTS)
public class ProductModel {
@Id //唯一标记
private Integer id;
@Field(index = true,name = "esname")//设置字段信息,比如分词规则
private String name;
private String type;
private String keywords;
}
package com.lxm.search