elasticsearch php权重,elasticsearch学习笔记高级篇(八)——基于boost的细粒度搜索条件权重控制...

这篇博客探讨了如何在搜索中优先展示包含特定关键词如'Java'、'Hadoop'和'Elasticsearch'的帖子。通过调整搜索引擎的boost参数,可以设置'JavaHadoop'优先于'JavaElasticsearch'显示,同时'Hadoop'比'elasticsearch'权重更高,确保相关性更高的内容优先展示。
摘要由CSDN通过智能技术生成

需求:搜索标题中包含java的帖子,同时如果标题中包含hadoop和elasticsearch就优先搜索出来,同时,如果一个帖子包含java hadoop,一个帖子包含java elasticsearch,包含hadoop的帖子要比elasticsearch优先搜索出来。

搜索条件的权重,boost,可以将某个搜索条件的权重加大,此时当匹配这个搜索条件和匹配另一个搜索条件的document,计算relevance score时,匹配权重更大的搜索条件的document, relevance score会更高,当然也就会优先被返回回来。

在默认的情况下,搜索条件的权重都是一样的,都是1

GET /forum/_search

{

"query": {

"bool": {

"must": [

{

"match": {

"title": "java"

}

}

],

"should": [

{

"match": {

"title": "hadoop"

}

},

{

"match": {

"title": "elasticsearch"

}

},

{

"match": {

"title": "spark"

}

}

]

}

}

}

这个测试不好复现,在出现的结果中如果不是我们想要的,我们可以根据上面的需求调节一下boost,来让最后的返回结果达到我们的预期。

GET /forum/_search

{

"query": {

"bool": {

"must": [

{

"match": {

"title": "java"

}

}

],

"should": [

{

"match": {

"title": {

"query": "hadoop",

"boost": 5

}

}

},

{

"match": {

"title": {

"query": "elasticsearch",

"boost": 3

}

}

},

{

"match": {

"title": {

"query": "spark",

"boost": 1

}

}

}

]

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值