2012-11-04 37 views
1

嵌套元素我有這樣的映射:過濾面導致具有ElasticSearch

products: { 
    product: { 
     properties: { 
      id: { 
       type: "long" 
      }, 
      name: { 
       type: "string" 
      }, 
      tags: { 
       dynamic: "true", 
       properties: { 
        tagId: { 
         type: "long" 
        }, 
        tagType: { 
         type: "long" 
        } 
       } 
      } 
     } 
    } 
} 

我想創建上標籤ID的小平面,但與標籤式過濾。 我需要篩選器才適用於構面而不​​是查詢結果。 因此,這裏是我的要求:

{ 
"from": 0, 
"size": 10, 
"facets": { 
    "tags": { 
     "terms": { 
      "field": "tags.tagId", 
      "size": 10 
     }, 
     "facet_filter": { 
      "terms": { 
       "tags.tagType": [ 
        "11", 
        "19" 
       ] 
      } 
     } 
    } 
}, 
"query": { 
    "match_all": {} 
} 

}

所述的小濾波似乎並沒有影響到小面。 任何想法?

回答

1

該過濾器應用於文檔中,您的示例中的父實體。這意味着您要過濾由tags.tagType組成的文檔。因此,所有具有特定tags.tagType值的文檔都用於構建構面,這不是我想要的。

這是nested文檔的用例。你也可以看看this nice article