我目前正在尝试使用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字符串错了吗?我的错误在哪里?提前致谢。
答案 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';
在任何位置搜索都不容易。因此,如果论文不是第一个索引,它就行不通。
请注意,我不能因为弄清楚这一点而声称信用,只是传递这些信息。