SpringBoot操作ES进行各种高级查询(值得收藏)

本文详细介绍了如何使用SpringBoot操作Elasticsearch进行高级查询,包括DSL搜索、精确查询TermQuery、全文检索MatchQuery、JavaAPI、多字段联合搜索MultiQuery、提升boost、布尔查询BoolQuery、过滤器和排序。通过示例代码展示了如何构建和执行各种查询,是后端开发者的重要参考资料。
摘要由CSDN通过智能技术生成

CreateIndexRequest request = new CreateIndexRequest(“ysx_course”);

request.settings(Settings.builder().put(“number_of_shards”, “1”).put(“number_of_replicas”, “0”));

// 创建映射

request.mapping(“doc”, “{\n” +

"                “properties”: {\n" +

"                    “description”: {\n" +

"                        “type”: “text”,\n" +

"                        “analyzer”: “ik_max_word”,\n" +

"                        “search_analyzer”: “ik_smart”\n" +

"                    },\n" +

"                    “name”: {\n" +

"                        “type”: “text”,\n" +

"                        “analyzer”: “ik_max_word”,\n" +

"                        “search_analyzer”: “ik_smart”\n" +

"                    },\n" +

““pic”:{                    \n” +

““type”:“text”,                        \n” +

““index”:false                        \n” +

“},                    \n” +

"                    “price”: {\n" +

"                        “type”: “float”\n" +

"                    },\n" +

"                    “studymodel”: {\n" +

"                        “type”: “keyword”\n" +

"                    },\n" +

"                    “timestamp”: {\n" +

"                        “type”: “date”,\n" +

"                        “format”: “yyyy-MM‐dd HH:mm:ss||yyyy‐MM‐dd||epoch_millis”\n" +

"                    }\n" +

"                }\n" +

"            }", XContentType.JSON);

// 执行创建操作

CreateIndexResponse response = indices.create(request);

// 得到响应

boolean b = response.isAcknowledged();

System.out.println(b);

}

Java API操作ES


准备数据环境

创建索引:ysx_course

创建映射:

PUT http://localhost:9200/ysx_course/doc/_mapping

{

“properties”: {

“description”: { // 课程描述

“type”: “text”, // String text 类型

“analyzer”: “ik_max_word”, // 存入的分词模式:细粒度

“search_analyzer”: “ik_smart” // 查询的分词模式:粗粒度

},

“name”: { // 课程名称

“type”: “text”,

“analyzer”: “ik_max_word”,

“search_analyzer”: “ik_smart”

},

“pic”:{ // 图片地址

“type”:“text”,

“index”:false // 地址不用来搜索,因此不为它构建索引

},

“price”: { // 价格

“type”: “scaled_float”, // 有比例浮点

“scaling_factor”: 100 // 比例因子 100

},

“studymodel”: {

“type”: “keyword” // 不分词,全关键字匹配

},

“timestamp”: {

“type”: “date”,

“format”: “yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis”

}

}

}

加入原始数据:

POST http://localhost:9200/ysx_course/doc/1

{

“name”: “Bootstrap开发”,

“description”: “Bootstrap是由Twitter推出的一个前台页面开发框架,是一个非常流行的开发框架,此框架集成了多种页面效果。此开发框架包含了大量的CSS、JS程序代码,可以帮助开发者(尤其是不擅长页面开发的程序人员)轻松的实现一个不受浏览器限制的精美界面效果。”,

“studymodel”: “201002”,

“price”:38.6,

“timestamp”:“2018-04-25 19:11:35”,

“pic”:“group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg”

}

DSL搜索

DSL(Domain S

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值