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

本文共 3676 字,大约阅读时间需要 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/

你可能感兴趣的文章
PCA---主成成分分析
查看>>
PCA和自动编码器:每个人都能理解的算法
查看>>
pca算法
查看>>
PCA降维demo
查看>>
SharePoint 2013 图文开发系列之定义站点模板
查看>>
PCB生产流程详解-ChatGPT4o作答
查看>>
PCB设计十条黄金法则
查看>>
SpringSecurity框架介绍
查看>>
PCI Express学习篇:Power Management(二)
查看>>
pcie握手机制_【博文连载】PCIe扫盲——Ack/Nak 机制详解(一)
查看>>
pcm转wav的方法及代码示例
查看>>
PC史上最悲剧的16次失败
查看>>
PC端恶意代码分析Lab1.1-5.1,从零基础到精通,收藏这篇就够了!
查看>>
PC端稳定性测试探索
查看>>
PC端编辑 但能在PC端模拟移动端预览的富文本编辑器
查看>>
PDB文件:每个开发人员都必须知道的
查看>>
springMVC学习(二)
查看>>
Pdfkit页眉和页脚
查看>>
PDF中的Pandoc语法突出显示不起作用
查看>>
pdf从结构新建书签_在PDF文件中怎样创建书签
查看>>