这是我的第一个问题,请原谅我的错误:)。 作为一个框架,我正在使用Yii2,在任何请求的开头,我都有一个问题,就是通过命令在sphinx中接收分布式索引代理的答案:
DESCRIBE `10.0.0.22:9312:indexName`;
我明白了:
ERROR 1064 (42000): sphinxql: syntax error, unexpected $undefined, expecting IDENT (or 49 other tokens) near '`10.0.0.22:9312:indexName`'
我的分布式conf:
index indexName {
type = distributed
agent = 10.0.13.24:9312|10.0.0.22:9312:indexName
ha_strategy = noerrors
}
其他conf:
index indexName
{
type = rt
path = /var/lib/sphinxsearch/data/indexName
rt_field = code
rt_field = title
rt_field = article
rt_field = docket
rt_attr_uint = code
rt_attr_string = title
rt_attr_string = article
rt_attr_string = docket
morphology = lemmatize_ru, stem_enru
charset_table = 0..9, U+410..U+42F->U+430..U+44F, U+430..U+44F, _
blend_chars = +, &, @
dict = keywords
min_word_len = 1
min_prefix_len = 1
}
我的搜索内容是默认设置。
此外,我还有一个查询问题,其中字段名称带有反引号,例如:
SELECT `id`, weight() as relevance from indexName where match('asus');
我明白了:
ERROR 1064 (42000): index indexName: agent 10.0.0.22:9312: remote error: select: syntax error, unexpected '`', expecting $end near '`, weight() as relevance'
我也在控制台中尝试过此查询,并显示相同的错误。但是,如果我进行简单的查询,如“SELECT * FROM indexName WHERE MATCH('asus')”,一切正常。
答案 0 :(得分:0)
唉,非常确定狮身人面像不能代理'虽然' DESCRIBE'要求。您只能描述本地索引和分布式索引本身(以获取其组件)。
无法获取远程索引的feilds / attributes,客户端必须直接连接到远程代理才能获取设置。 (虽然当然可以通过运行查询来获取属性列表(SELECT * FROM dist LIMIT 1)
关于引号的问题,它是一个已知的错误,但不知道修复它的状态。在没有反引号的情况下运行查询通常效果更好。