是否可以从结果中排除某些字段?我正在使用这样的过滤查询:
{
"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
答案 0 :(得分:1)
请注意,自1.0.0beta起已弃用partial_fields支持 -
我知道你在0.9上,但在某些时候你需要升级,这种方法不会起作用。我建议升级到1.x版本并改为使用源过滤:
答案 1 :(得分:0)
partial_fields可以根据包含和排除模式返回_source的部分表示
所以我猜你应该在exclude中为字段名指定一个通配符模式。如果您的字段名称是DATA,则排除模式应为DAT * ..