elasticsearch缺少查询过滤器

时间:2012-10-09 11:32:22

标签: lucene elasticsearch

这是我第一次使用'缺失'参数,我不确定我做错了什么,因为我没有得到我所期望的。

有人可以告诉我这个查询中是否正确整合了缺失的条件?它应该创建5个方面,仅计算每个方面的小数位数字段未在索引中设置的出现次数。或者它的值为null。

curl -XGET http://my_url:9200/idx_occurrence/Occurrene/_search?pretty=true -d '{
    "filter": {
        "missing": {
            "field": "decimallatitude",
            "existence": true,
            "null_value": true
        }
    },
    "query": {
        "query_string": {
            "fields": ["dataset"],
            "query": "3",
            "default_operator": "AND"
        }
    },
    "facets": {
        "test": {
            "terms": {
                "field": ["kingdom_interpreted"],
                "size": 5
            }
        }
    }
}
'

1 个答案:

答案 0 :(得分:1)

正如您在Search API - Filter页面上看到的那样,过滤器已应用于 查询结果 ,但未应用于 facets < /强> 的。要使其适用于方面,请尝试使用Filtered Query代替

curl -XGET http://my_url:9200/idx_occurrence/Occurrene/_search?pretty=true -d '{
    "query": {
        "filtered": {
            "filter": {
                "missing": {
                    "field": "decimallatitude",
                    "existence": true,
                    "null_value": true
                }
            },
            "query": {
                "query_string": {
                    "fields": ["dataset"],
                    "query": "3",
                    "default_operator": "AND"
                }
            }
        }
    },
    "facets": {
        "test": {
            "terms": {
                "field": ["kingdom_interpreted"],
                "size": 5
            }
        }
    }
}
'