Elasticsearch简单问题小结
♠ ♥ ♦ ♣ 该文章仅为平时的笔记,非商用,如有侵权请联系博主删除 ♣ ♦ ♥ ♠
1、terms 和term 的区别
在查询的字段只有一个值的时候,使用term,在查询字段包含多个的时候才使用terms。
"term":{
"lang":1
}
"terms":{
"domain":[
"dailymasala.co",
"goldenmob.com"
]
}
2、filter 和query的区别
(1)在query(查询)中,查询操作不仅仅会进行查询,还会计算分值,用于确定相关度;在filter(过滤器)中,查询操作仅判断是否满足查询条件。
(2)filter(过滤器)中,查询的结果可以被缓存。
(3)filter(过滤器)查询速度快(不需要计分。还有可以缓存)
(4)全文检索以及任何使用相关性评分的场景使用query检索,除此之外的其他使用filter过滤器过滤。
(5)一般用法:使用query进行全文检索后,对全文检索的结果用filter检索。
(6)例子:
GET /_search
{
"query": {
"bool": {
"must": [
{ "match": { "name": "albert" }},
{ "match": { "content": "science" }}
],
"filter": [
{ "term": { "country": "cn" }},
{ "range": { "date": { "gte": "2200-10-08" }}}
]
}
}
}
参考:https://blog.youkuaiyun.com/laoyang360/article/details/80468757
仅作为日常笔记使用,有点简单,大家有什么想法也可以交流哟~