Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 斯芬克斯搜索字段权重_Mysql_Sql_Database_Indexing_Sphinx - Fatal编程技术网

Mysql 斯芬克斯搜索字段权重

Mysql 斯芬克斯搜索字段权重,mysql,sql,database,indexing,sphinx,Mysql,Sql,Database,Indexing,Sphinx,我的.conf文件中的查询出现语法错误 在我添加选项字段_weights之前,一切都很顺利。定义场权重时我做错了什么 下面是对我的斯芬克斯索引的查询 source tx3nh_users : src { sql_query_range = SELECT MIN(id), MAX(id) FROM tx3nh_users sql_query = SELECT u.id, p.fullname, p.email, s.staff_title, s.bio FROM tx3nh_us

我的.conf文件中的查询出现语法错误 在我添加选项字段_weights之前,一切都很顺利。定义场权重时我做错了什么

下面是对我的斯芬克斯索引的查询

source tx3nh_users : src {

    sql_query_range = SELECT MIN(id), MAX(id) FROM tx3nh_users
    sql_query = SELECT u.id, p.fullname, p.email, s.staff_title, s.bio FROM tx3nh_users AS u LEFT JOIN tx3nh_user_attributes AS p ON u.id=p.internalKey LEFT JOIN oxv5v_su_staff AS s ON u.id=s.user_id WHERE u.id>=$start AND u.id<=$end OPTION field_weights=(p.fullname=3, s.staff_title=2, s.bio=1)

}
源tx3nh\u用户:src{
sql\u query\u range=从tx3nh\u用户中选择最小(id)、最大(id)

sql\u query=从tx3nhu用户中选择u.id、p.fullname、p.email、s.staff\u title、s.bio作为u LEFT JOIN tx3nh\u user\u属性作为p ON u.id=p.internalKey LEFT JOIN oxv5v\u su\u staff作为s ON u.id=s.user\u id,其中u.id>=$start和u.id
sql\u query
是索引器针对实际数据库运行的sql查询。因此它需要是一个有效的MySQL query。它由MySQL勇敢地描述和执行,以返回您的实际数据,然后索引器将其转换为sphinx索引

另一方面,
选项字段\u weights
来自sphinxQL。因此,在对索引进行actaul查询时,可以将其添加到sphinxQL查询中

sphinxQL> SELECT id FROM tx3nh_users WHERE MATCH('keyword1') 
             OPTION field_weights=(p.fullname=3, s.staff_title=2, s.bio=1)

因为这是一个查询时间参数,权重不会写入索引,因此您可以在每个查询的基础上选择权重,而不是在所有查询中选择相同的权重。

非常感谢!这是一个非常清楚的解释