【发布时间】:2014-06-27 09:58:06
【问题描述】:
你好朋友请帮帮我...
我对弹性搜索中的关系有一些疑问。
我会用下面的例子来解释我的疑惑
第 1 步: 我在弹性搜索中创建了一个名为“books”的索引
example.com:9200/books/
第 2 步: 然后我创建了一个名为“作者”的类型并插入了数据
POST example.com:9200/books/author/1 { “fname”:“大卫”,“lname”:“托马斯” }
POST example.com:9200/books/author/2 { “fname”:“Hamton”,“lname”:“Vergo” }
第 3 步: 然后为另一个类型“authorbook”创建了一个映射,它是“author”的子类型
POST example.com:9200/books/authorbook/_mapping
{"authorbook":{"_parent":{"type":"author"}}}
第 4 步: 然后我为 authorbook 插入数据
发布 example.com:9200/books/authorbook/100?parent=1 { “书名”:“书名1” }
发布 example.com:9200/books/authorbook/200?parent=1 { “书名”:“书名2” }
POST example.com:9200/books/authorbook/300?parent=2 { “书名”:“书名3” }
步骤:5 然后我为另一个名为 'publisher' 的类型创建了一个映射,它是 authorbook 的子类
POST example.com:9200/books/publisher/_mapping
{"publisher":{"_parent":{"type":"authorbook"}}}
**第 6 步: 然后我为发布者插入数据
POST example.com:9200/books/publisher/50?parent=200 { “publname”:“publisher1” }
POST example.com:9200/books/publisher/51?parent=200 { “publname”:“publisher2” }
POST example.com:9200/books/publisher/52?parent=100 { “publname”:“publisher3” }
第 7 步 现在我已经通过使用带有以下正文的发布请求来获取“作者书”的详细信息
{
"query": {
"has_parent": {
"type": "author",
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"or": [
{
"term": {
"fname": "Hamton"
}
},
{
"term": {
"fname": "David"
}
}
]
}
}
}
}
}
}
我的要求是还获得发布者详细信息..如何实现?请帮忙..
【问题讨论】:
-
我认为不可能在 ES 上进行递归请求。您可能应该执行第一个请求并将返回的答案用作第二个请求的输入。
标签: elasticsearch