存储过程搜索弹性搜索

时间:2016-06-30 16:24:01

标签: elasticsearch


我试图用弹性脚本进行递归搜索。 我知道有搜索模板,但我没有找到如下情景

的例子
 `ex:-father= neo
  1.search in person-index documents for father attribute
  2.if father=neo return direct,else(here father=ted)
  3.search for ted now and check if father=neo return indirect 
  or repeat step 3 till script find's ancestor if not found return not related when reached father = some constant like (pre-genator or ancient)
  ` 

如果我只有一个关系,这就省去了图形数据库。  另一个场景,比如找到所有“neo”的死者

1 个答案:

答案 0 :(得分:2)

目前没有任何设施可以完全按照您在弹性搜索中所描述的内容进行操作。

如果祖先世代的数量有限且可以表示为1对多关系,则可以使用多个has_parent查询。

或者,如果可能,您可以在单个字段中对给定记录的所有祖先的数据进行非规范化并存储名称。所以记录看起来像这样:

{
  "father": "neo",
  "ancestors": ["neo", "ted", ... ]
}

否则,您需要在elasticsearch之外进行这些搜索。