我一直在使用 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
你试过使用该列作为sql_attr_string吗?

http://sphinxsearch.com/docs/current.html#conf-sql-attr-string

您至少需要版本2.0.1才能在此类属性上使用ORDER BY子句:

Starting from 2.0.1-beta string attributes can be used for sorting and grouping(ORDER BY,GROUP BY,WITHIN GROUP ORDER BY).

Sphinxql – 在PHP中使用Sphinxql时如何使用具有顺序的查询,而不使用sphinxapi.php的更多相关文章

  1. AmazeUI 折叠面板的实现代码

    这篇文章主要介绍了AmazeUI 折叠面板的实例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. 有关HTML5页面在iPhoneX适配问题

    这篇文章主要介绍了有关HTML5页面在iPhoneX适配问题,需要的朋友可以参考下

  3. HTML5 WebSocket实现点对点聊天的示例代码

    这篇文章主要介绍了HTML5 WebSocket实现点对点聊天的示例代码的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  4. Html5百叶窗效果的示例代码

    本篇文章主要介绍了Html5百叶窗效果的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  5. html5中使用hotcss.js实现手机端自适配的方法

    这篇文章主要介绍了html5中使用hotcss.js实现手机端自适配的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  6. ios – 在Swift的UIView中找到UILabel

    我正在尝试在我的UIViewControllers的超级视图中找到我的UILabels.这是我的代码:这是在Objective-C中推荐的方式,但是在Swift中我只得到UIViews和CALayer.我肯定在提供给这个方法的视图中有UILabel.我错过了什么?我的UIViewController中的调用:解决方法使用函数式编程概念可以更轻松地实现这一目标.

  7. ios – 在Swift中将输入字段字符串转换为Int

    所以我非常擅长制作APP广告Swift,我试图在文本字段中做一些非常简单的输入,取值,然后将它们用作Int进行某些计算.但是’vardistance’有些东西不正确它是导致错误的最后一行代码.它说致命错误:无法解开Optional.None解决方法在你的例子中,距离是一个Int?否则称为可选的Int..toInt()返回Int?因为从String到Int的转换可能失败.请参阅以下示例:

  8. 如何在iOS中检测文本(字符串)语言?

    例如,给定以下字符串:我想检测每个声明的字符串中使用的语言.让我们假设已实现函数的签名是:如果没有检测到语言,则返回可选字符串.因此,适当的结果将是:有一个简单的方法来实现它吗?

  9. xamarin – 崩溃在AccountStore.Create().保存(e.Account,“);

    在Xamarin.Forms示例TodoAwsAuth中https://developer.xamarin.com/guides/xamarin-forms/web-services/authentication/oauth/成功登录后,在aOnAuthenticationCompleted事件中,应用程序在尝试保存到Xamarin.Auth时崩溃错误说不能对钥匙串说期待着寻求帮助.解决方法看看你

  10. ios – 将视频分享到Facebook

    我正在编写一个简单的测试应用程序,用于将视频从iOS上传到Facebook.由于FacebookSDK的所有文档都在Objective-C中,因此我发现很难在线找到有关如何使用Swift执行此操作的示例/教程.到目前为止我有这个在我的UI上放置一个共享按钮,但它看起来已禁用,从我读到的这是因为没有内容设置,但我看不出这是怎么可能的.我的getVideoURL()函数返回一个NSURL,它肯定包含视

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部