我的.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)
}
答案 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)
因为它是查询时间参数,所以权重不会写入索引,因此您可以在每个查询的基础上选择权重,而不是为所有查询选择相同的权重。