Elasticsearch。可以使用partial_fields过滤查询吗?

时间:2014-05-05 10:15:18

标签: elasticsearch

是否可以从结果中排除某些字段?我正在使用这样的过滤查询:

{
    "size": 10,
    "query": {
        "filtered": {
            "query": {
                "bool": {
                    "should": [
                        {
                            "text": {
                                "name": {
                                    "query": "list",
                                    "operator": "or",
                                    "boost": 30
                                }
                            }
                        },
                        {
                            "text": {
                                "field2": {
                                    "query": "list",
                                    "operator": "or",
                                    "boost": 0.2
                                }
                            }
                        },
                        {
                            "text": {
                                "field1": {
                                    "query": "list",
                                    "operator": "or",
                                    "boost": 0.02
                                }
                            }
                        }
                    ]
                }
            },
            "filter": {
                "and": [
                    {
                        "term": {
                            "_type": "product"
                        }
                    }
                ]
            }
        },
        "filter": {
            "partial_fields": {
                "exclude": "field3"
            }
        }
    },
    "sort": [
        {
            "_score": "desc"
        }
    ]
}

我添加了过滤器partial_fields ,但它似乎没有任何效果。我正在使用 ES 0.9

2 个答案:

答案 0 :(得分:1)

请注意,自1.0.0beta起已弃用partial_fields支持 -

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-fields.html#partial

我知道你在0.9上,但在某些时候你需要升级,这种方法不会起作用。我建议升级到1.x版本并改为使用源过滤:

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-source-filtering.html

答案 1 :(得分:0)

partial_fields可以根据包含和排除模式返回_source的部分表示

所以我猜你应该在exclude中为字段名指定一个通配符模式。如果您的字段名称是DATA,则排除模式应为DAT * ..