ElasticSearch使用流程

这篇博客详细介绍了如何使用Spring Data Elasticsearch进行Elasticsearch的索引建立、映射配置以及CRUD操作。通过@Document和@Id注解定义索引和主键,@Field注解设置字段属性。此外,还探讨了CurdRepository、PagingAndSortingRepository以及ElasticsearchRepository中的各种查询方法,如TermQuery、WildcardQuery、FuzzyQuery和BooleanQuery。
摘要由CSDN通过智能技术生成

建立索引对象 — 建立映射 — 存储数据【文档】 — 指定文档类型进行搜索数
据【文档】

建立索引及映射:— 基于 spring data elasticsearch 注解
在使用 spring data elasticsearch 开发, 需要将索引和映射信息 配置实体类上面
@Document 文档对象 (索引信息indexName、文档类型type )
@Document(indexName = “bos”, type = “waybill”)
@Id 文档主键 唯一标识
@org.springframework.data.annotation.Id
@Field(index = FieldIndex.not_analyzed, store = true, type = FieldType.Integer)
private Integer id;
@Field 每个文档的字段配置(类型type、索引是否分词FieldIndex.analyzed、是否存储 store 、分词器analyzer )
@Field(index = FieldIndex.analyzed, analyzer = “ik”, searchAnalyzer = “ik”, store = true, type = FieldType.String)

Spring data Search CRUD 操作
CurdRepository 提供增删改查 save、delete、findAll 、findOne
PagingAndSortingRepository 提供分页和排序
ElasticsearchRepository 条件查询 (分页)

TermQuery 词条查询
WildcardQuery 模糊查询
FuzzyQuery 相似度查询
BooleanQuery 布尔查询
must(QueryBuilders) : AND
mustNot(QueryBuilders): NOT
should: : OR

// 情况一:输入地址是词条一部分WildcardQueryBuilder("sendAddress", "*" + wayBill.getSendAddress() + "*");
            //词条sendAddressz中包含wayBill.getSendAddress()
            BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();
            QueryBuilder queryBuilder1 = new WildcardQueryBuilder("sendAddress", "*" + wayBill.getSendAddress() + "*");
            boolQueryBuilder.should(queryBuilder1);

// 情况二:输入地址是词条组合,将输入地址分词(wayBill.getSendAddress()).field("sendAddress")),取and(.defaultOperator(Operator.AND);)
            QueryBuilder queryBuilder2 = new QueryStringQueryBuilder(wayBill.getSendAddress()).field("sendAddress")
                    .defaultOperator(Operator.AND);
            boolQueryBuilder.should(queryBuilder2);

xml配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:elasticsearch="http://www.springframework.org/schema/data/elasticsearch"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/data/elasticsearch
        http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1.0.xsd">

    <!-- 扫描dao包 自动创建实现 -->
    <elasticsearch:repositories base-package="cn.itcast.bos.index"/>    
    <!-- 配置 applicationContext.xml  连接  elasticsearch -->
    <!-- 配置elasticsearch链接 -->
    <elasticsearch:transport-client id="client" cluster-nodes="127.0.0.1:9300"/>
    <!-- spring data elasticsearch DAO 依赖 elasticsearchTemplate -->
    <bean id="elasticsearchTemplate" 
        class="org.springframework.data.elasticsearch.core.ElasticsearchTemplate">
        <constructor-arg name="client" ref="client"/>   
    </bean>
</beans>

queryBuilders常用查询

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值