1

再会,

我想知道是否有可能实现以下。例如,我们有 2 个索引:

1:Id、A、B、C、f1、f2。2:标识,f3。

其中: fn - rt_field。A、B、C - 要返回的属性。第二个索引中的 id 是第一个索引中的 id 的子集。

目标是查询两个索引并以以下形式获取结果:“Id,A,B,C”(!),这将包括来自两个索引的匹配但不重复。

因此,要点是用属性 A、B、C 来填充第二个索引的结果,这些属性来自第一个索引中具有相同 id 的相应文档。可以在 Sphinx 层上完成吗?

如果不是,那么另一个问题。例如,我们有 2 个索引:

1:Id、A、B、C、f1、f2。2:Id,A,B,C,f3。

其中: fn - rt_field。A、B、C - 要返回的属性。第二个索引中的 id 是第一个索引中的 id 的子集。

我们可以查询两个索引并以这种形式获取结果:“Id,A,B,C”(!),这将包括来自两个索引的匹配但没有重复?

据我所知,我们可以查询多个索引,最后一个索引的结果将覆盖以前索引中具有相同 id 的结果,但是如果索引具有不同的结构,它会起作用吗?

4

1 回答 1

0

您可以做的(如果您必须这样做,并且如果您在表 1 和表 2 之间没有关系)是您可以将查询构建为您正在寻找的一个合并数据集,然后从中建立一个索引。

换句话说,您可以执行以下操作:

给定 1:Id、A、B、C、f1、f2。2:标识,f3。

SELECT Id, A, B, C, f1, f2, null AS "f3"
FROM 1
UNION
SELECT Id, null AS "A", null AS "B", null AS "C", null AS "f1", null AS "f2", f3

然后在你的 sphinx conf 文件中设置你sql_query的那个查询。

于 2013-09-03T21:28:17.117 回答