1

私はこのマッピングを持っています:

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": {}
}

}

ファセットフィルタリングはファセットに影響を与えないようです。何か案は?

4

1 に答える 1

1

フィルタは、ドキュメント(例では親エンティティ)に適用されます。これは、ファセットを作成するドキュメントをでフィルタリングしていることを意味しますtags.tagType。したがって、特定の値を持つすべてのドキュメントがtags.tagTypeファセットの構築に使用されますが、これは私が望んでいることではありません。

これは、ネストされたドキュメントのユースケースです。この素敵な記事もご覧ください。

于 2012-11-05T11:55:20.207 に答える