我有两个必须分开的索引:
// index = `order_item`
{
"ID": 1,
"Name": "Shoes",
"Price": 9.99,
"OrderID": 82
},{
"ID": 1,
"Name": "Hat",
"Price": 19.99,
"OrderID": 82
}
// index = `order`
{
"ID": 82,
"Customer": "John Smith"
}
我将如何在搜索中“联接”这两个表,以使其返回以下内容:
results = {
"ID": 1,
"Name": "Shoes",
"Price": 9.99,
"Order.ID": 82,
"Customer": "John Smith"
},{
"ID": 1,
"Name": "Hat",
"Price": 19.99,
"Order.ID": 82,
"Customer": "John Smith"
}
正如您在其他问题中回答的那样,没有什么可以阻止您在建立索引时将Customer
名称存储在每个order_item
文档中,同时仍然具有orders
包含Customer
数据的专用索引。请记住,这都是关于巧妙地对数据进行规范化,以便每个文档都可以根据需要实现“自包含”。
curl -XPUT localhost:9200/order_items/order_item/1 -d '{
"ID": 1,
"Name": "Shoes",
"Price": 9.99,
"OrderID": 82,
"Customer": "John Smith"
}'
curl -XPUT localhost:9200/order_items/order_item/2 -d '{
"ID": 2,
"Name": "Hat",
"Price": 19.99,
"OrderID": 82,
"Customer": "John Smith"
}
该解决方案的优点是每个订单商品都是完全独立的,您可以对其进行分组/汇总OrderID
以获取给定订单的所有商品。
另外,正如@JohnAment在他的评论中提到的,order/order_item
用例也是使用以下任一方法的理想选择
在第一种情况下,您将有一个order
“父”文档…
curl -XPUT localhost:9200/orders/order/82 -d '{
"ID": 82,
"Customer": "John Smith"
}'
还有几个order_item
您使用其父ID编制索引的“子”文档:
curl -XPUT localhost:9200/order_items/order_item/1?parent=82 -d '{
"ID": 1,
"Name": "Shoes",
"Price": 9.99
}'
curl -XPUT localhost:9200/order_items/order_item/2?parent=82 -d '{
"ID": 2,
"Name": "Hat",
"Price": 19.99
}'
在第二种情况下,您的order
文档将在嵌套OrderItems
属性中包含所有订单商品,并且看起来像这样:
curl -XPUT localhost:9200/orders/order/82 -d '{
"ID": 82,
"Customer": "John Smith"
"OrderItems": [
{
"ID": 1,
"Name": "Shoes",
"Price": 9.99
},{
"ID": 2,
"Name": "Hat",
"Price": 19.99
}
]
}'
我有两张桌子, 我想为changelog实现一个搜索方法,该方法返回字段 如您所见,结果来自两个表的联接。 我发现https://gorm.io/docs/preload.html 但老实说,我不明白我该如何实现我所需要的。 我认为下面的内容可能会有所帮助 问题是,如何从GORM中提到的表格中获得我提到的内容?
问题内容: 我有两个表: 服务 ID 客户 服务 和 客户 ID 名称 电子邮件 如何列出表服务并将客户表的客户名称汇总在一起?该表中的现场客户服务在客户表上具有该客户的ID, 我感谢您的帮助 问题答案:
我知道在elasticsearch中没有连接索引的选项,但我需要找到一种方法来解决这个问题: 我有两个索引,比如A,B IndexA的信息像field d1、field d2、field d3 IndexB有field d4、field d5、field d6 如果我将按查询字段5(在本例中为“test”)进行搜索,我希望树中的所有关系如下: 匹配IndexA中与“field2”(来自IndexA
问题内容: 我有两个表和字段。我想同时参加这两个领域。我试过了 可以,但是非常慢。有一个更好的方法吗? 问题答案:
问题内容: 我开始将DataTables Table插件用于jQuery ,但遇到了一些问题。我从这里使用示例代码。 我有MySQL表女巫看起来像这样: id | 名称| Father_id 是同一表中仅在不同行中的值。因此,如果我想知道父亲的名字,我必须在同一个表中进行搜索。但是DataTable所做的只是按原样显示MySQL表的内容。 在我的数据表中,我想显示如下数据: id | 名称| 父亲
问题内容: 我有两个表: 我想从表1中选择所有具有值A和B的表2行的行。这将是行1和3(不是2行,因为它只有A,没有4行是因为只有B)。我可以在没有子查询的情况下执行此操作吗? (注意:我还需要查询表1中的值,因此我不能只查询表2。) 问题答案: 塔达阿!没有子查询。