当我想要在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)
感谢您的一些想法:)
答案 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,你根本不能使用磁盘索引。