由于我可以在两个表之间进行查询,因此我有以下表格
Company:
- id
- name
- domain
- timestamp
Target:
- id
- name
- domain
- company
- website
- company_id
- timestamp
User:
- id
- firstName
- lastName
- email
- company_id
- timestamp
我需要在目标域和属于该公司的用户邮件之间进行匹配。
我正在使用带有python 2.7的elasticsearch-py库来处理ElasticSearch 2.3
答案 0 :(得分:0)
Elasticsearch中的类型不能像SQL一样相互连接。但是你可以使用父子关系让类型相互关联。
在这种情况下,您可以将[目标]和[用户]表格设置为[公司]的子项,并查询如下:
"query": {
"bool": {
"must": [
{
"has_child": {
"query": {
"match": {
"domain": "test domain"
}
},
"child_type" : "Target"
}
},
{
"has_child": {
"query": {
"match": {
"email": "test email"
}
},
"child_type" : "User"
}
}
],
"filter" : {
"term": {
"_type": "Company"
}
}
}
}