如何通过sql查询更新sphinx搜索索引中的记录?

时间:2014-05-13 22:15:16

标签: sphinx

当我想要在sphinx搜索索引

中更新记录时,我遇到了问题
mysql> UPDATE indexname SET field = 'value' where id = 295;

ERROR 1064 (42000): sphinxql: syntax error, unexpected QUOTED_STRING, expecting CONST_INT (or 3 other tokens) near ''value' where id = 295'

是否可以更新磁盘索引(非RT)中的某些文本字段

我的狮身人面像版本是:2.1.7-id64-release(rel21-r4638)

感谢您的一些想法:)

1 个答案:

答案 0 :(得分:3)

没有。您可以 更新RT索引中的Field

要更新' a Field,您需要删除整行,然后重新插入。有一个REPLACE INTO命令可以一步完成。


只能更新attributes。 (早期版本的sphinx无法更新 string 属性,即只更新数字属性,但我认为最新版本已获得更新甚至字符串属性的能力。)


编辑,实际注意现在提到磁盘索引,而不是RT索引。仍然无法更新Field(即无论是RT还是磁盘索引)

您可以再次更新某些属性,但有一些限制,请参阅http://sphinxsearch.com/docs/current.html#api-func-updateatttributes (不确定最新支持更新RT索引上的字符串属性,甚至扩展到磁盘索引)

...简而言之,UPDATE在磁盘和RT索引上的工作方式基本相同。 RT索引只有INSERT / REPLACE / DELETE,你根本不能使用磁盘索引。