0

我对 UpdateAttributes 有疑问,它似乎对我不起作用。当我发出:

$ret = $sphinx->UpdateAttributes ( "products", array ("status"), array(506607786 => array(10)) );

它返回 1,但搜索仍将状态作为旧值返回。

当我尝试

$ret = $sphinx->UpdateAttributes ( "products", array ("status", "image_id"), array(506607786 => array(10, 6666)) );

它返回 0(假)

这个功能还能用吗?

好的,我发现(sphinx 文档很难看)当从 PHP 应用程序发出 updateAtrributes() 时,我不会在搜索命令行中看到结果。然而,一个问题仍然存在 - 我无法在一个 updateAtrributes() 中更新 2 个属性 - 单独它们很好 - 任何线索为什么?

4

1 回答 1

0

UpdateAttributes返回0(不是假的)时,它并不意味着它没有工作,这意味着它没有找到任何要更新的东西,基本上没有提交更新。的返回-1实际上意味着此功能不起作用。

确保它506607786实际上是id您的 Sphinx 索引中的一个,并且那products是您的索引的名称。

为了使问题更有帮助,您可以提供表格中的示例行,最好是在此函数中使用的定义为506607786. 您还可以提供一整套代码以使其更容易。

附带说明:UpdateAttributes不像实时索引。您需要在查询中专门过滤这些属性,以便 sphinx 考虑它们的新值。

于 2012-08-20T13:03:02.640 回答