elasticsearch,Join,elasticsearch" /> elasticsearch,Join,elasticsearch" />

Join 加入弹性搜索

Join 加入弹性搜索,join,elasticsearch,Join,elasticsearch,目前,我需要使用弹性搜索实现一个连接,下面是一个场景: 假设弹性搜索中的每个条目都有三个字段:id、姓名和爱好。给出两个名字(例如“约翰”和“玛丽”),基本上我想得到所有有相同爱好的约翰和玛丽(可能不同) 以下是可能的结果: [{id: 1, name: 'john', hobby: 'singing'}, {id: 2, name: 'mary', hobby: 'singing'}, {id: 3, name: 'mary', hobby: 'singing'}, {id: 4, na

目前,我需要使用弹性搜索实现一个连接,下面是一个场景:

假设弹性搜索中的每个条目都有三个字段:id、姓名和爱好。给出两个名字(例如“约翰”和“玛丽”),基本上我想得到所有有相同爱好的约翰和玛丽(可能不同)

以下是可能的结果:

[{id: 1, name: 'john', hobby: 'singing'},
 {id: 2, name: 'mary', hobby: 'singing'},
 {id: 3, name: 'mary', hobby: 'singing'},
 {id: 4, name: 'john', hobby: 'cycling'},
 {id: 5, name: 'john', hobby: 'cycling'},
 {id: 6, name: 'mary', hobby: 'cycling'}
]
我知道我可以在本地执行多个查询和连接,但我想知道弹性搜索是否可以在内部处理这种情况

我正在设计一个从零开始支持此功能的映射,因此任何建议都将不胜感激


提前谢谢

如果不能将搜索词组合到单个查询中,可以使用函数创建子查询的联合

{
    "dis_max" : {
        "tie_breaker" : 0.7,
        "boost" : 1.2,
        "queries" : [
            {
                "term" : { "name" : "john" }
            },
            {
                "term" : { "name" : "mary" }
            }
        ]
    }
}