0

我目前正在试验狮身人面像实时索引。我插入了 450 万份文档。

一切正常,而我的 json 元属性如下所示:

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

但是昨天,我想在“publication_type”键中添加另一个值,json 结果为:

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

现在我既找不到“论文”的文档,也找不到“大文本”的文档。

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

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

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

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

提前致谢。

4

2 回答 2

2

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

自 r4217 起在 2.2.1-dev 中受支持。

于 2013-10-13T18:52:13.770 回答
0

这是在狮身人面像论坛上回答的: http ://sphinxsearch.com/forum/view.html?id=11486

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

可以这样做

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

搜索“任何位置”似乎并不容易。所以如果essay不是第一个索引,它就行不通。

请注意,我不能声称自己弄清楚了这一点,只是传递了这些信息。

于 2013-09-15T16:43:07.497 回答