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 主键*/@Idprivate 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 ---- 会做最粗粒度的拆分。
- Repository类(类似与数据库的Dao层),继承ElasticsearchRepository<ESProductDO, Integer>,已经存在了CRUD的操作(与jpa类似)。
public interface ProductRepository extends ElasticsearchRepository<ESProductDO, Integer> {}
ElasticsearchRepository 方法命名规则如下: