elasticsearch中查询DSL中的must和filter有什么区别?
What is the difference between must and filter in Query DSL in elasticsearch?
我是弹性搜索的新手,我对 must 和 filter 感到困惑。我想在我的条款之间执行一个与操作,所以我这样做了
POST /xyz/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"city": "city1"
}
},
{
"term": {
"saleType": "sale_type1"
}
}
]
}
}
}
这给了我匹配这两个术语的所需结果,并且使用这样的过滤器
POST /xyz/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"city": "city1"
}
}
],
"filter": {
"term": {
"saleType": "sale_type1"
}
}
}
}
}
我得到了相同的结果,那么什么时候应该使用must,什么时候应该使用filter?有什么区别?
我是弹性搜索的新手,我对 must 和 filter 感到困惑。我想在我的条款之间执行一个与操作,所以我这样做了
POST /xyz/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"city": "city1"
}
},
{
"term": {
"saleType": "sale_type1"
}
}
]
}
}
}
这给了我匹配这两个术语的所需结果,并且使用这样的过滤器
POST /xyz/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"city": "city1"
}
}
],
"filter": {
"term": {
"saleType": "sale_type1"
}
}
}
}
}
我得到了相同的结果,那么什么时候应该使用must,什么时候应该使用filter?有什么区别?