bool查询原理 es_es的布尔查询

1.说明

2.must (查找名字叫做displayAffiliation有Washington的球员)

POST /nba/_search

{

"query": {

"bool": {

"must": [

{

"match": {

"displayAffiliation": "Washington"

}

}

]

}

}

}

3.filter

效果同must,但是不打分(查找名字叫做James的球员)

4.must_not

POST /nba/_search

{

"query": {

"bool": {

"must_not": [

{

"match": {

"displayAffiliation": "Washington"

}

}

]

}

}

}

4.should(查找名字叫做James的打球时间应该在11到20年⻄部球员)

发现should有些问题,有些不是想要的。

POST /nba/_search

{

"query": {

"bool": {

"must": [{

"match": {

"displayNameEn": "james"

}

}

],

"must_not": [{

"term": {

"teamConferenceEn": {

"value": "Eastern"

}

}

}],

"should": [{

"range": {

"playYear": {

"gte": 11,

"lte": 20

}

}

}]

}

}

}

效果:

{

"took" : 1,

"timed_out" : false,

"_shards" : {

"total" : 1,

"successful" : 1,

"skipped" : 0,

"failed" : 0

},

"hits" : {

"total" : {

"value" : 3,

"relation" : "eq"

},

"max_score" : 5.699642,

"hits" : [

{

"_index" : "nba",

"_type" : "_doc",

"_id" : "267",

"_score" : 5.699642,

"_source" : {

"countryEn" : "United States",

"teamName" : "湖人",

"birthDay" : 473230800000,

"country" : "美国",

"teamCityEn" : "Los Angeles",

"code" : "lebron_james",

"displayAffiliation" : "No College/United States",

"displayName" : "勒布朗 詹姆斯",

"schoolType" : "High School",

"teamConference" : "西部",

"teamConferenceEn" : "Western",

"weight" : "113.4 公斤",

"teamCity" : "洛杉矶",

"playYear" : 16,

"jerseyNo" : "23",

"teamNameEn" : "Lakers",

"draft" : 2003,

"displayNameEn" : "LeBron James",

"heightValue" : 2.03,

"birthDayStr" : "1984-12-30",

"position" : "前锋",

"age" : 35,

"playerId" : "2544"

}

},

{

"_index" : "nba",

"_type" : "_doc",

"_id" : "214",

"_score" : 4.699642,

"_source" : {

"countryEn" : "United States",

"teamName" : "火箭",

"birthDay" : 620107200000,

"country" : "美国",

"teamCityEn" : "Houston",

"code" : "james_harden",

"displayAffiliation" : "Arizona State/United States",

"displayName" : "詹姆斯 哈登",

"schoolType" : "College",

"teamConference" : "西部",

"teamConferenceEn" : "Western",

"weight" : "99.8 公斤",

"teamCity" : "休斯顿",

"playYear" : 10,

"jerseyNo" : "13",

"teamNameEn" : "Rockets",

"draft" : 2009,

"displayNameEn" : "James Harden",

"heightValue" : 1.96,

"birthDayStr" : "1989-08-26",

"position" : "后卫",

"age" : 30,

"playerId" : "201935"

}

},

{

"_index" : "nba",

"_type" : "_doc",

"_id" : "266",

"_score" : 4.699642,

"_source" : {

"countryEn" : "United States",

"teamName" : "国王",

"birthDay" : 854082000000,

"country" : "美国",

"teamCityEn" : "Sacramento",

"code" : "justin_james",

"displayAffiliation" : "United States",

"displayName" : "贾斯汀 詹姆斯",

"schoolType" : "College",

"teamConference" : "西部",

"teamConferenceEn" : "Western",

"weight" : "86.2 公斤",

"teamCity" : "萨克拉门托",

"playYear" : 0,

"jerseyNo" : "",

"teamNameEn" : "Kings",

"draft" : 2019,

"displayNameEn" : "Justin James",

"heightValue" : 2.01,

"birthDayStr" : "1997-01-24",

"position" : "后卫-前锋",

"age" : 22,

"playerId" : "1629713"

}

}

]

}

}

5.提高精度

"minimum_should_match": 1,表示至少有一个条件需要满足

POST /nba/_search

{

"query": {

"bool": {

"must": [{

"match": {

"displayNameEn": "james"

}

}

],

"must_not": [{

"term": {

"teamConferenceEn": {

"value": "Eastern"

}

}

}],

"should": [{

"range": {

"playYear": {

"gte": 11,

"lte": 20

}

}

}],

"minimum_should_match": 1

}

}

}

效果:

{

"took" : 11,

"timed_out" : false,

"_shards" : {

"total" : 1,

"successful" : 1,

"skipped" : 0,

"failed" : 0

},

"hits" : {

"total" : {

"value" : 1,

"relation" : "eq"

},

"max_score" : 5.699642,

"hits" : [

{

"_index" : "nba",

"_type" : "_doc",

"_id" : "267",

"_score" : 5.699642,

"_source" : {

"countryEn" : "United States",

"teamName" : "湖人",

"birthDay" : 473230800000,

"country" : "美国",

"teamCityEn" : "Los Angeles",

"code" : "lebron_james",

"displayAffiliation" : "No College/United States",

"displayName" : "勒布朗 詹姆斯",

"schoolType" : "High School",

"teamConference" : "西部",

"teamConferenceEn" : "Western",

"weight" : "113.4 公斤",

"teamCity" : "洛杉矶",

"playYear" : 16,

"jerseyNo" : "23",

"teamNameEn" : "Lakers",

"draft" : 2003,

"displayNameEn" : "LeBron James",

"heightValue" : 2.03,

"birthDayStr" : "1984-12-30",

"position" : "前锋",

"age" : 35,

"playerId" : "2544"

}

}

]

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值