我可以将查询结果用作过滤器或查询参数吗?

时间:2016-03-27 18:55:31

标签: elasticsearch

不确定如何最好地描述我的问题,所以要温柔: - )

我在多语言环境中搜索产品和相应规格的数据。规范都存储为简单的键值对,而不是每次存储翻译(因为它可能会超时),因为我想在一个索引中使用标识符键,而在另一个索引中使用翻译的术语。

因此潜在的情况如下:

  • 使用过滤器对给定产品执行搜索
  • 对于此模型,返回所有规范键值对
  • 对于每个键和一些值,从不同的索引返回翻译

所以,让我们假设我搜索产品ABC-123的规格,系统会找到例如

SpecID1:COLOR_BLACK

SpecID7:123克

最终结果应包含

  • "颜色":"黑色"
  • "重量":"123克"

SpecID1将在哪里"颜色"在英语翻译索引和" Coleur"在法语翻译索引。因此,在我网站的英国部分,所有翻译都来自en_trans索引,法国则来自fr_trans部分,依此类推。

希望这有一定道理。

一次通话中是否可以使用ES?如果做的话,那会是什么方法?

1 个答案:

答案 0 :(得分:0)

在Elasticsearch中有四种管理关系数据的方法:

  1. 应用程序端连接
  2. 数据非规范化
  3. 嵌套对象
  4. 家长/子女关系
  5. 对于你的情况,显而易见的解决方案是1号或2号。我真的建议在内存缓存中预取所有翻译,并在搜索ES中的翻译键后查找它们。