sphinxql php,Sphinxql – 在PHP中使用Sphinxql时如何使用具有顺序的查询,而不使用sphinxapi.php...

我一直在使用

mysql FTS,但最近切换到sphinx进行测试.

在centos 7上安装狮身人面像

Linux production 3.10.0-123.8.1.el7.x86_64 #1 GNU/Linux

的sphinx.conf

source content_src1

{

type = mysql

sql_host = localhost

sql_user =

sql_pass =

sql_db = t_prod2

sql_port = 3306 # optional, default is 3306

sql_query = \

SELECT content.record_num, \

content.title, \

content.category, \

content.upload_date, \

content.comments_count, \

content.verified, \

content.uploader, \

content.size \

FROM content WHERE enabled = 1

sql_attr_uint = record_num

sql_attr_string = title

}

index content_index1

{

source = content_src1

path = /var/lib/sphinx/content_index1

morphology = stem_en

min_word_len = 1

min_prefix_len = 0

min_infix_len = 1

docinfo = extern

}

我正在使用php连接sphinxql并运行查询,像这样

$sphinxql = @mysqli_connect($sphinxql_host.':'.$sphinxql_port,'','');

$sphinxql_query = "SELECT id FROM $sphinx_index WHERE MATCH('".mysqli_real_escape_string($prod1,$q)."') LIMIT $from,$max_results";

简单的查询工作正常,即没有按条件排序的查询.

但是当我试图运行具有顺序的sql查询时,sphinx会抛出错误.

查询及其错误.

SELECT id FROM $sphinx_index WHERE MATCH('".mysqli_real_escape_string($prod1,$q)."') ORDER BY title DESC LIMIT $from,$max_results

index content_index1: sort-by attribute 'title' not found

另一个尝试,我用@field名称替换字段名称

SELECT id FROM $sphinx_index WHERE MATCH('".mysqli_real_escape_string($prod1,$q)."') ORDER BY @title DESC LIMIT $from,$max_results

sphinxql: syntax error, unexpected USERVAR, expecting IDENT (or 55 other tokens) near '@title DESC LIMIT 0,25'

表格按照标题,类别,upload_date,大小,验证等字段排序

那么我怎么可以在我的sphinxql查询中使用顺序

更新1

我已经设法运行查询“没有顺序”,但是具有“order by”的查询不能正常工作,没有给出错误,给出结果集,但是如果我改变按属性排序的方向,结果集不会改变.

更新的字段和属性如下.

sql_field_string = title

sql_field_string = og_name

sql_field_string = hash

sql_field_string = keywords

sql_attr_timestamp = upload_date_timestamp

sql_attr_uint = category

sql_attr_uint = comments_count

sql_attr_bool = verified

sql_attr_bigint = size

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值