狮身人面像搜索字段权重

时间:2014-11-25 22:01:45

标签: mysql sql database indexing sphinx

我的.conf文件中的查询出现语法错误 在我添加OPTION field_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)

}

1 个答案:

答案 0 :(得分:1)

sql_query是一个SQL查询,索引器针对您的实际数据库运行。所以它需要是一个有效的 MySQL查询。它由MySQL代表并执行,以返回您的实际数据,然后索引器变成一个sphinx索引。

另一方面,OPTION field_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)

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