博客
关于我
ES DSL搜索 - multi_match、boost和布尔查询
阅读量:286 次
发布时间:2019-03-01

本文共 3818 字,大约阅读时间需要 12 分钟。

Elasticsearch搜索API入门介绍

搜索API基础

Elasticsearch的搜索API提供了强大的文档搜索功能,以下是常用的操作方法。请通过Postman等工具进行测试,接口请求的前缀地址统一为Elasticsearch部署IP地址+端口号(如http://192.168.51.4:9200)。

请求地址示例

POST /search_demo/_doc/_search

multi_match多字段匹配

multi_match用于在多个字段中进行全文匹配,可以灵活配置匹配字段。

请求示例

{
"query": {
"multi_match": {
"query": "组合",
"fields": ["desc", "nickname"]
}
},
"_source": ["id", "nickname", "desc"]
}

返回结果示例

{
"took": 3,
"timed_out": false,
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 2.2874916,
"hits": [
{
"_index": "search_demo",
"_type": "_doc",
"_id": "1007",
"_score": 2.2874916,
"_source": {
"nickname": "老男孩",
"id": 1007,
"desc": "确实是个很好的组合,筷子 筷子"
}
}
]
}
}

boost字段权重设置

boost用于为特定字段设置权重,提升相关性得分。常用于搜索商品名称或关键词时。

请求示例

{
"query": {
"multi_match": {
"query": "好的",
"fields": ["desc", "nickname*10"]
}
},
"_source": ["id", "nickname", "desc"]
}

返回结果示例

{
"took": 4,
"hits": {
"total": {
"value": 9,
"relation": "eq"
},
"max_score": 3.1980762,
"hits": [
{
"_index": "search_demo",
"_type": "_doc",
"_id": "1004",
"_score": 3.1980762,
"_source": {
"nickname": "红帽子",
"id": 1004,
"desc": "好的系统必须拥有稳定的系统结构"
}
},
// 其他结果...
]
}
}

布尔查询

bool查询用于复杂的文本组合查询,支持mustshouldmust_not等布尔逻辑。

单个查询示例

{
"query": {
"bool": {
"must": [
{
"multi_match": {
"query": "好的",
"fields": ["desc", "nickname"]
}
},
{
"term": {
"sex": 0
}
},
{
"term": {
"birthday": "1992-12-24"
}
}
]
}
},
"_source": ["id", "sex", "nickname", "desc", "birthday"]
}

组合查询示例

{
"query": {
"bool": {
"must": [
{
"match": {
"desc": "好的"
}
},
{
"match": {
"nickname": "好的"
}
}
],
"should": [
{
"match": {
"sex": 1
}
}
],
"must_not": [
{
"term": {
"birthday": "1993-01-24"
}
}
]
}
},
"_source": ["id", "sex", "nickname", "desc", "birthday"]
}

加权字段查询

{
"query": {
"bool": {
"should": [
{
"match": {
"desc": {
"query": "好的",
"boost": 2
}
}
},
{
"match": {
"desc": {
"query": "男孩",
"boost": 20
}
}
}
]
}
},
"_source": ["id", "sex", "nickname", "desc", "birthday"]
}

相关信息

  • 博文不易,辛苦各位猿友点个关注和赞,感谢!

转载地址:http://sjhx.baihongyu.com/

你可能感兴趣的文章
NFS网络文件系统
查看>>
nft文件传输_利用remoting实现文件传输-.NET教程,远程及网络应用
查看>>
NFV商用可行新华三vBRAS方案实践验证
查看>>
ng build --aot --prod生成文件报错
查看>>
ng 指令的自定义、使用
查看>>
nghttp3使用指南
查看>>
Nginx
查看>>
nginx + etcd 动态负载均衡实践(三)—— 基于nginx-upsync-module实现
查看>>
nginx + etcd 动态负载均衡实践(二)—— 组件安装
查看>>
nginx + etcd 动态负载均衡实践(四)—— 基于confd实现
查看>>
Nginx + Spring Boot 实现负载均衡
查看>>
Nginx + uWSGI + Flask + Vhost
查看>>
Nginx - Header详解
查看>>
Nginx - 反向代理、负载均衡、动静分离、底层原理(案例实战分析)
查看>>
nginx 1.24.0 安装nginx最新稳定版
查看>>
nginx 301 永久重定向
查看>>
nginx css,js合并插件,淘宝nginx合并js,css插件
查看>>
Nginx gateway集群和动态网关
查看>>
Nginx Location配置总结
查看>>
Nginx log文件写入失败?log文件权限设置问题
查看>>