我们正在架构中部署rt索引。但我们需要澄清,在部署过程中遇到一些困难。
索引中定义的架构:
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中-我们没有得到这个结果并得到以下错误。错误1064(42000):索引日志表:无效的架构:查询count(*)或@count,但在架构中不可用。
问题2:
我在conf中将“transactionid”字段声明为字符串属性,但是如果该字段在where条件下使用,则无法检索记录。
Example below,
select * from logtable where TransactionId='TRA23454';
在我发现错误之后,
错误1064(42000):sphinxql:语法错误,意外的$undefined,应为const_int或const_float或“-”靠近“tra23454”
如果知道,请帮助我们解决这些问题。
古玛兰
最佳答案
select * from logtable where TransactionId='TRA23454';
答:
select * from logtable where MATCH('@TransactionId TRA23454')