~query,根据你的查询条件,去计算文档的匹配度得到一个分数,并且根据分数进行排序,不会做缓存的。
~filter(过滤),根据你的查询条件去查询文档,不去计算分数,而且filter会对经常被过滤的数据进行缓存。
我们知道使用query查询时,查询结果中会有一个"_score" : 2.540445,
分数;这个分数就是匹配度;也就说明query查询是匹配度查询;
当我们不想使用分数匹配来进行查询的话就可以选择filter,filter不计算分数,并且可以对常用的数据做缓存;
#filter查询
POST /book/novel/_search
{
"query": {
"bool": {
"filter": [
{
"term": {
"author": "滔滔"
}
},
{
"range": {
"price": {
"gte": 150,
"lte": 300
}
}
}
]
}
}
}
查询结果:没有分数;
注意:
~这里的range是范围查询,大于150小于300;
~filter :后面可以加中括号;
~采用bool查询;
。。。。。。。。。。。。。
嘻哈的简写笔记
。。。。。。。。。。。。。