Sphinx:JSON元属性停止工作

时间:2013-09-13 10:59:16

标签: sphinx

我目前正在尝试使用sphinx实时索引。我插入了450万份文件。

一切正常,而我的json meta属性是这样的:

{"result_type":"publications","publication_type":"essay"}

但昨天,我想在'publication_type'键和json中添加另一个值 结果:

{"result_type":"publications","publication_type":["essay","big_text"]}

现在我找不到'论文'的文件,也找不到'big_text'的文件。

我正在使用的sphinxql查询是这样的:

select * from url where meta.publication_type='essay';

Sphinx版本是在Debian上运行的服务器版本:2.1.1-beta(rel21-r3701)。

希望你能帮助我。我的json字符串错了吗?我的错误在哪里?

提前致谢。

2 个答案:

答案 0 :(得分:2)

SELECT *,ANY(x ='论文'FOR x IN meta.publication_type)为p FROM url WHERE p = 1;

自r4217以来在2.2.1-dev中受支持。

答案 1 :(得分:0)

狮身人面像论坛上回答了这个问题: http://sphinxsearch.com/forum/view.html?id=11486

存储数组时,可以按索引访问值。

所以可以做到

select * from url where meta.publication_type[0]='essay';

在任何位置搜索都不容易。因此,如果论文不是第一个索引,它就行不通。

请注意,我不能因为弄清楚这一点而声称信用,只是传递这些信息。