本人做项目的时候出现的一个小问题,记录一下
ElasticSearch 查询 match和term的区别
有时候我们需要按条件精确查找,比如sql条件的ItemCode='ABC'
在ElasticSearch中如果使用match的话,会把ItemCode字段包含ABC的内容查出来,而我的需求是只想差等于ABC的内容,这时候我们就可以直接把match用term代替,完美解决了这个问题
{
"query": {
"bool": {
"must": [
{ "term": { "PatientID": "1303954" } },
{ "term": { "TestItemCode.keyword": "ABC" } }
],
"must_not": [
{ "match": { "SampleId": "" } }
]
}
},
"size":10,
"sort":[
{"ResultTime":{"order":"desc"}}
]
}