我开始研究elasticsearch,我想知道这个操作是否可以完成它:(我做了一些搜索,但我承认我不知道该找什么)。elasticsearch的多领域操作
我有这样的两个联系人数据:
{
"id" : "id1",
"name" : "Roger",
"phone1" : "123",
"phone2" : "",
"phone3" : "980"
}
{
"id" : "id2",
"name" : "Lucas",
"phone1" : "789",
"phone2" : "123",
"phone3" : ""
}
!我想知道,如果elasticsearch可以帮我找到的电话号码复制,即使它们在不同的手机领域(“123”这里是存在于记录)。 我已经看到我可以在多个字段中搜索一个字符串,所以如果我搜索123,我可以得到这两个记录作为结果。不过,我想问题,它可以返回我像这样的请求的能力:
{
"phones" : {
"123" : ["id1", "id2"],
"980" : ["id1"],
"789" : ["id2"]
}
}
甚至这将是有益的(与多个触点数量):
{
"phones" : {
"123" : 2,
"980" : 1,
"789" : 1
}
}
任何想法如果这是可能的?如果可以的话,那将会很棒。
我不知道你能做到这一点!太好了! – DrTech 2012-07-20 08:29:39
太好了!既然你们都建议改变模式,那么你的建议有什么缺点/性能问题?我宁愿保留字段的标签(实际上更像modile_phone,home_phone等...) – Schmurfy 2012-07-20 11:37:04
我只是在想,从架构设计的角度来看,如果您使用手机字段作为数组,它可能是最好在elasticsearch中将其表示为一个数组。我无法想象您的架构中与DrTech提出的任何重大性能问题相比。在一种情况下,elasticsearch必须读取3个字段并合并结果,并在另一个字段中大小等于3个字段。与阅读和保存存储器中的字段值相比,合并不应该很昂贵。 – imotov 2012-07-20 13:57:55