我们正在我们的体系结构中部署RT索引。但是我们需要一些澄清和部署过程中遇到的一些困难。Sphinx RT索引和SphinxQL查询
架构中定义的索引:
index logtable
{
type = rt
path = /usr/local/sphinx20/var/data/logtable
rt_attr_string = TransactionId
rt_attr_uint = CustomerId
rt_attr_timestamp = DateOfTransaction
rt_attr_string = CustomerFeedback
rt_field = TransactionType
}
面临的问题
问题1: 我们如何能在SPHINXQL获得计数()查询结果。因为它对我们很重要,根据客户数量,我们必须将其展示在我们的应用程序中。下面
例,
Query - select count(*) from logtable where CustomerId='871';
在SphinxQL - 我们没有得到这样的结果,并得到以下error.ERROR 1064(42000):指数logtable:无效的架构:COUNT(*)或@count查询,但在模式中不可用。
问题2: 我在conf中为“TransactionId”字段声明了一个STRING属性,但是如果该字段在where条件中使用,我无法检索记录。
Example below,
select * from logtable where TransactionId='TRA23454';
继错误我得到, ERROR 1064(42000):sphinxql:语法错误,意想不到的$不确定,预计CONST_INT或CONST_FLOAT或 ' - ' 近 ' “TRA23454”'
请帮助我们如果知道就关闭这些问题。
库马兰
其实字符串属性可以用于排序和分组。但是,没有不适用于条款 – barryhunter
Barry,因此文档不正确?从文档:从1.10-beta开始,字符串只能用于存储和检索。他们不能参与表达式,用于过滤,排序或分组(即在WHERE,ORDER或GROUP子句中)。 –
是的。该文件已过时。请参阅http://sphinxsearch.com/bugs/view.php?id=1138 – barryhunter