これを (0.18.5 を使用して) 複製しようとしましたが、うまくいきませんでした。以下にいくつかの詳細を示します。最初の例は、あなたが説明したことを複製しようとします。2 つ目は、タグを include_in_parent としてマップせず、ファセット リクエストで「ネストされた」フィールドを使用します。ご覧のとおり、どちらの場合もファセットが返されます。
これにより、残りのマッピングに何か問題があるか、問題を引き起こしているドキュメント (提供されたサンプルではありません) があると思われます。
ネストされたアプローチを試したとき、おそらく "nested":"tags" の代わりに "nested":"tags.tag" を使用しましたか?
(Un)成功した試行 #1:
マッピングを使用してインデックスを作成します。
$ curl -XPOST 'http://localhost:9200/testindex/' -d '{
"mappings": {
"element": {
"properties": {
"tags": {
"type": "nested",
"include_in_parent": true,
"properties": {
"id": {
"type": "integer"
},
"tag": {
"type": "string"
}
}
}
}
}
}
}'
索引文書:
$ curl -XPOST 'http://localhost:9200/testindex/element' -d '{
"element_id": 4682,
"parent_id": null,
"wall_id": null,
"username": "John Doe",
"avatar": "56f1bb0a96d02b90e5915ff38ea189ec.jpg",
"title": "Easy Chart is a great easy comparison chart maker for math and...",
"description": "<p>Easy Chart is a great easy comparison chart maker for math and science skills. It even allows you to pick the appropriate chart type.</p>",
"groups": [
{
"id": 6,
"name": "Fourth Grade (All Subjects)",
"name_short": "4th Grade"
},
{
"id": 17,
"name": "Eighth Grade Science",
"name_short": "8th Science"
},
{
"id": 13,
"name": "Seventh Grade Science",
"name_short": "7th Science"
},
{
"id": 9,
"name": "Sixth Grade Science",
"name_short": "6th Science"
}
],
"tags": [
{
"id": 33,
"tag": "iPad"
},
{
"id": 32,
"tag": "iPod"
}
],
"webpages": [],
"videos": [],
"documents": [],
"photos": [],
"reports": [],
"bookmarks": [],
"likes": [],
"dislikes": [],
"element_type": "Post",
"active": true,
"deleted": false,
"updated_at": "2011-11-27T21:37:38-0600",
"created_at": 1322451458000,
"created_at_formatted": "2 weeks ago"
}'
探す:
$ curl -XPOST 'http://localhost:9200/testindex/element/_search' -d '{
"sort":{ "created_at":{ "order":"desc" } },
"query":{
"constant_score":{
"filter":{
"and":[
{ "missing":{ "field":"parent_id" } },
{ "missing":{ "field":"wall_id" } },
{ "term":{ "active":true } }
]
}
}
},
"facets":{
"tags":{ "terms":{ "field":"tags.tag" } }
}
}'
結果:
{
"took": 4,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 1,
"max_score": null,
"hits": [
{
"_index": "testindex",
"_type": "element",
"_id": "RZK41LngTKOhMUS6DXRi7w",
"_score": null,
"_source": {
"element_id": 4682,
"parent_id": null,
"wall_id": null,
"username": "John Doe",
"avatar": "56f1bb0a96d02b90e5915ff38ea189ec.jpg",
"title": "Easy Chart is a great easy comparison chart maker for math and...",
"description": "<p>Easy Chart is a great easy comparison chart maker for math and science skills. It even allows you to pick the appropriate chart type.</p>",
"groups": [
{
"id": 6,
"name": "Fourth Grade (All Subjects)",
"name_short": "4th Grade"
},
{
"id": 17,
"name": "Eighth Grade Science",
"name_short": "8th Science"
},
{
"id": 13,
"name": "Seventh Grade Science",
"name_short": "7th Science"
},
{
"id": 9,
"name": "Sixth Grade Science",
"name_short": "6th Science"
}
],
"tags": [
{
"id": 33,
"tag": "iPad"
},
{
"id": 32,
"tag": "iPod"
}
],
"webpages": [],
"videos": [],
"documents": [],
"photos": [],
"reports": [],
"bookmarks": [],
"likes": [],
"dislikes": [],
"element_type": "Post",
"active": true,
"deleted": false,
"updated_at": "2011-11-27T21:37:38-0600",
"created_at": 1322451458000,
"created_at_formatted": "2 weeks ago"
},
"sort": [
1322451458000
]
}
]
},
"facets": {
"tags": {
"_type": "terms",
"missing": 0,
"total": 2,
"other": 0,
"terms": [
{
"term": "ipod",
"count": 1
},
{
"term": "ipad",
"count": 1
}
]
}
}
}
(Un)成功した試行 #2:
マッピングを使用してインデックスを作成します。
$ curl -XPOST 'http://localhost:9200/testindex2/' -d '{
"mappings": {
"element": {
"properties": {
"tags": {
"type": "nested",
"include_in_parent": false,
"properties": {
"id": {
"type": "integer"
},
"tag": {
"type": "string"
}
}
}
}
}
}
}'
索引文書:
$ curl -XPOST 'http://localhost:9200/testindex2/element' -d '{
"element_id": 4682,
"parent_id": null,
"wall_id": null,
"username": "John Doe",
"avatar": "56f1bb0a96d02b90e5915ff38ea189ec.jpg",
"title": "Easy Chart is a great easy comparison chart maker for math and...",
"description": "<p>Easy Chart is a great easy comparison chart maker for math and science skills. It even allows you to pick the appropriate chart type.</p>",
"groups": [
{
"id": 6,
"name": "Fourth Grade (All Subjects)",
"name_short": "4th Grade"
},
{
"id": 17,
"name": "Eighth Grade Science",
"name_short": "8th Science"
},
{
"id": 13,
"name": "Seventh Grade Science",
"name_short": "7th Science"
},
{
"id": 9,
"name": "Sixth Grade Science",
"name_short": "6th Science"
}
],
"tags": [
{
"id": 33,
"tag": "iPad"
},
{
"id": 32,
"tag": "iPod"
}
],
"webpages": [],
"videos": [],
"documents": [],
"photos": [],
"reports": [],
"bookmarks": [],
"likes": [],
"dislikes": [],
"element_type": "Post",
"active": true,
"deleted": false,
"updated_at": "2011-11-27T21:37:38-0600",
"created_at": 1322451458000,
"created_at_formatted": "2 weeks ago"
}'
探す:
$ curl -XPOST 'http://localhost:9200/testindex2/element/_search' -d '{
"sort":{ "created_at":{ "order":"desc" } },
"query":{
"constant_score":{
"filter":{
"and":[
{ "missing":{ "field":"parent_id" } },
{ "missing":{ "field":"wall_id" } },
{ "term":{ "active":true } }
]
}
}
},
"facets":{
"tags":{ "terms":{ "field":"tags.tag" }, "nested":"tags" }
}
}'
結果:
{
"took": 17,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 1,
"max_score": null,
"hits": [
{
"_index": "testindex2",
"_type": "element",
"_id": "_F1TTGJETOipo8kVR7ZXkQ",
"_score": null,
"_source": {
"element_id": 4682,
"parent_id": null,
"wall_id": null,
"username": "John Doe",
"avatar": "56f1bb0a96d02b90e5915ff38ea189ec.jpg",
"title": "Easy Chart is a great easy comparison chart maker for math and...",
"description": "<p>Easy Chart is a great easy comparison chart maker for math and science skills. It even allows you to pick the appropriate chart type.</p>",
"groups": [
{
"id": 6,
"name": "Fourth Grade (All Subjects)",
"name_short": "4th Grade"
},
{
"id": 17,
"name": "Eighth Grade Science",
"name_short": "8th Science"
},
{
"id": 13,
"name": "Seventh Grade Science",
"name_short": "7th Science"
},
{
"id": 9,
"name": "Sixth Grade Science",
"name_short": "6th Science"
}
],
"tags": [
{
"id": 33,
"tag": "iPad"
},
{
"id": 32,
"tag": "iPod"
}
],
"webpages": [],
"videos": [],
"documents": [],
"photos": [],
"reports": [],
"bookmarks": [],
"likes": [],
"dislikes": [],
"element_type": "Post",
"active": true,
"deleted": false,
"updated_at": "2011-11-27T21:37:38-0600",
"created_at": 1322451458000,
"created_at_formatted": "2 weeks ago"
},
"sort": [
1322451458000
]
}
]
},
"facets": {
"tags": {
"_type": "terms",
"missing": 0,
"total": 2,
"other": 0,
"terms": [
{
"term": "ipod",
"count": 1
},
{
"term": "ipad",
"count": 1
}
]
}
}
}