単純なブログインデックスがあり、ブログとコメントの2種類があるとします。 1つのブログは複数のコメントを持つことができます。インデックスは、インデックス%3Cblog-%7Bnow%2Fd%7D-000001%3E
この弾性検索:ロールオーバー後の親子関係
curl -X PUT \
'http://localhost:9200/%3Cblog-%7Bnow%2Fd%7D-000001%3E?pretty=' \
-H 'content-type: application/json' \
-d '{
"mappings": {
"comment": {
"_parent": { "type": "blog" },
"properties": {
"name": { "type": "keyword" },
"comment": { "type": "text" }
}
},
"blog": {
"properties": {
"author": { "type": "keyword" },
"subject": { "type": "text" },
"content": { "type": "text" }
}
}
}
}'
ように作成された(日付の計算に関する詳細についてhereを参照)<blog-{now/d}-000001>
に等しいです。 このインデックスに 'blog-active'エイリアスを追加します。このエイリアスはデータの格納に使用されます。
curl -X POST 'http://localhost:9200/_aliases?pretty=' \
-H 'content-type: application/json' \
-d '{ "actions" : [ { "add" : { "index" : "blog-*", "alias" : "blog-active" } } ] }'
今、私たちは、次の操作を行う場合:
1.Add blog-active
別名
curl -X POST http://localhost:9200/blog-active/blog/1 \
-H 'content-type: application/json' \
-d '{
"author": "author1",
"subject": "subject1",
"content": "content1"
}'
2.Addブログ
curl -X POST \
'http://localhost:9200/blog-active/comment/1?parent=1' \
-H 'content-type: application/json' \
-d '{
"name": "commenter1",
"comment": "new comment1"
}'
3へのコメントを使ってブログを。max_docs = 2のロールオーバーを行う
私たちが持つ「author1のブログ上のすべてのコメントのためのすべてのブログのインデックスを検索する場合curl -X POST \
http://localhost:9200/blog-active/_rollover \
-H 'content-type: application/json' \
-d '{
"conditions": {
"max_docs": 2
},
"mappings": {
"comment": {
"_parent": { "type": "blog" },
"properties": {
"name": { "type": "keyword" },
"comment": { "type": "text" }
}
},
"blog": {
"properties": {
"author": { "type": "keyword" },
"subject": { "type": "text" },
"content": { "type": "text" }
}
}
}
}'
4.And(blog-%2A
がblog-*
ある)
curl -X POST \
'http://localhost:9200/blog-active/comment/1?parent=1' \
-H 'content-type: application/json' \
-d '{
"name": "commenter2",
"comment": "new comment2"
}'
今すぐブログへ
curl -X POST \
http://localhost:9200/blog-%2A/comment/_search \
-H 'content-type: application/json' \
-d '{
"query": {
"has_parent" : {
"query" : {
"match" : { "author" : { "query" : "author1" } }
},
"parent_type" : "blog"
}
}
}'
別のコメントを追加結果には最初のコメントのみが含まれます。
これは、2番目のコメントが親ブログ文書を持たない2番目のインデックスにあるためです。だから、それはブログの作者については知らない。
だから、私の質問は、ロールオーバーを使用する場合、私は親子関係に近づく行う方法ですか?
この場合でも関係はありますか?
同様の質問:親子関係の一部を形成ElasticSearch parent/child on different indexes