我使用SPHINXSE而且我查询了很多索引(就像Barryhunter在Joining on Multiple SphinxSE Tables In Single Query解释的那样)
我的问题是
在每个索引中,我都有同名的列。
在我的sphinxSe表中,我的字段名称就像这些属性一样。
当我只对一个索引运行查询时,会填充这些字段,但不会在我使用多个索引时填充。
我有一个问题,因为我会使用id来简单地从哪个索引中找到该行。
因为它可能与来源相关,所以在我的conf下面找到并查询
在我的sphinx.conf中
source src_article_tv : article_base {
sql_query_pre = SET NAMES utf8
sql_query = \
SELECT /* sphinx index search article_tv_base */ \
concat (id,'40'), \
id AS ressource_id, \
'article' AS ressource_type, \ (...)
sql_attr_uint = ressource_id
sql_attr_string = ressource_type
(...)
source src_media_tv : media_base
{
sql_query_pre = SET NAMES utf8
sql_query = \
SELECT /* sphinx index search full media */ \
concat (o.id,'20'), \
o.id AS ressource_id, \
'media_tv' AS ressource_type, \
(...)
sql_attr_uint = ressource_id
sql_attr_string = ressource_type
delimiter $$
CREATE TABLE `tv_generic` (
`id` bigint(20) unsigned NOT NULL,
`weight` int(11) NOT NULL,
`query` varchar(3072) COLLATE utf8_unicode_ci NOT NULL,
`ressource_id` bigint(20) unsigned NOT NULL,
`ressource_type` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
KEY `query` (`query`(1024))
) ENGINE=SPHINX DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
CONNECTION='sphinx://127.0.0.1:9312/idx_tv'$$
所以 与
SELECT * FROM search.tv_generic where query = 'mons;index=idx_article_tv';
或
SELECT * FROM search.tv_generic where query = 'mons;index=idx_media_tv';
字段ressource_id& ressource_type被填充(具有良好的值)
但是
SELECT * FROM search.tv_generic where query = 'mons;index=idx_article_tv,idx_media_tv';
字段ressource_id& ressource_type为'0'
答案 0 :(得分:0)
我发现了一个“脏”的解决方案。
compat_sphinxql_magics = 1
这是工作。
它仍然很脏,因为