1.Elasticsearch
Elasticsearch提供了两种连接方式:
transport:通过TCP方式访问ES。(已废弃)
rest:通过HTTP API 方式访问ES。
描述: Spring Data Elasticsearch 项目提供了与Elasticsearch 搜索引擎的集成。Spring Data ElasticSearch 的关键功能领域是以POJO为中心的模型,用于与Elastichsearch 文档交互并轻松编写Repository样式的数据访问层。
实例:
1.添加配置到application文件:
spring:
data:
jest:
uri: http://127.0.0.1:9200(ES默认端口为9200)
创建相应的接收类(类似于与数据库相对应的实体类):
@Document(indexName = "product", // 索引名
type = "product", // 类型。未来的版本即将废弃
shards = 1, // 默认索引分区数
replicas = 0, // 每个分区的备份数
refreshInterval = "-1" // 刷新间隔
)
public class ESProductDO {
/**
* ID 主键
*/
@Id
private Integer id;
/**
* SPU 名字
*/
@Field(analyzer = FieldAnalyzer.IK_MAX_WORD, type = FieldType.Text)
private String name;
/**
* 卖点
*/
@Field(analyzer = FieldAnalyzer.IK_MAX_WORD, type = FieldType.Text)
private String sellPoint;
/**
* 描述
*/
@Field(analyzer = FieldAnalyzer.IK_MAX_WORD, type = FieldType.Text)
private String description;
/**
* 分类编号
*/
private Integer cid;
/**
* 分类名
*/
@Field(analyzer = FieldAnalyzer.IK_MAX_WORD, type = FieldType.Text)
private String categoryName;
其中字段上的 @Field 注解的 FieldAnalyzer ,是定义的枚举类。
FieldAnalyzer.IK_MAX_WORD — 会将文本做最细粒度的拆分。
FieldAnalyzer.IK_SMART ---- 会做最粗粒度的拆分。
public interface ProductRepository extends ElasticsearchRepository<ESProductDO, Integer> {
}
ElasticsearchRepository 方法命名规则如下: