为什么sphinx不返回属性名称?
我在Sphinx中使用两个索引进行搜索:为什么sphinx不返回属性名称?,sphinx,Sphinx,我在Sphinx中使用两个索引进行搜索: #users source users : lsParentSource { sql_query_range = SELECT MIN(idDetailToUsers), MAX(idDetailToUsers) FROM detailtousers sql_query = SELECT idDetailToUsers as id, 1000 as type, UsersTypeAccount, idDetailTo
#users
source users : lsParentSource
{
sql_query_range = SELECT MIN(idDetailToUsers), MAX(idDetailToUsers) FROM detailtousers
sql_query = SELECT idDetailToUsers as id, 1000 as type, UsersTypeAccount, idDetailToUsers, SpecializationName, DetailToUsersName, DetailToUsersPhoto, city, country FROM detailtousers join users ON users.idUsers = detailtousers.idDetailToUsers left join usersspecialization ON usersspecialization.UsersSpecializationIdUser = detailtousers.idDetailToUsers left join specializationtousers ON specializationtousers.idSpecialization = usersspecialization.UsersSpecializationIdSpecialization WHERE idDetailToUsers >= $start AND idDetailToUsers <= $end GROUP BY idDetailToUsers
sql_attr_uint = type
sql_attr_uint = idDetailToUsers
sql_attr_uint = UsersTypeAccount
sql_field_string = SpecializationName
sql_field_string = DetailToUsersName
sql_field_string = DetailToUsersPhoto
sql_attr_uint = city
sql_attr_uint = country
sql_query_info = SELECT idDetailToUsers, DetailToUsersName, UsersTypeAccount, SpecializationName, DetailToUsersPhoto, city, country \
FROM detailtousers WHERE idDetailToUsers = $id
sql_ranged_throttle = 0
}
#medical
source medical : lsParentSource
{
sql_query_range = SELECT MIN(idMedicalFacilities), MAX(idMedicalFacilities) FROM medicalfacilities
sql_query = SELECT idMedicalFacilities as id, 2000 as type, idMedicalFacilities, MedicalFacilitiesName, MedicalFacilitiesPhoto, city, country FROM medicalfacilities WHERE idMedicalFacilities >= $start AND idMedicalFacilities <= $end
sql_attr_uint = type
sql_attr_uint = MedicalFacilitiesIdUser
sql_attr_uint = idMedicalFacilities
sql_field_string = MedicalFacilitiesName
sql_field_string = MedicalFacilitiesPhoto
sql_attr_uint = city
sql_attr_uint = country
sql_query_info = SELECT MedicalFacilitiesIdUser, MedicalFacilitiesName, MedicalFacilitiesPhoto FROM medicalfacilities WHERE idMedicalFacilities = $id
sql_ranged_throttle = 0
}
医疗指数结果:
Sphinx只返回查询中索引的公共属性。你有不同的名字 您可能可以在SetSelect中使用sphinxQL中的EXISTS函数,但从未尝试过
最简单的方法就是使用相同的属性名。但是当我在sphinx.conf中使用一个索引时,它会返回带有名称和值的属性,然后返回哪些属性?它还必须至少返回一个带有表名的属性,您可以使用->setSelect'type';但我不确定。Sphinx确实希望多索引查询使用相同的模式。我会尝试,所以对于每个索引,我必须对表执行单独的查询?如果您希望具有不同的属性,请选择“是”。像mysql UNION一样思考-结果中的每一行必须具有相同的列。
array(1) {
[533]=>
array(2) {
["weight"]=>
int(1)
["attrs"]=>
array(0) {
}
}
}
array(5) {
[451]=>
array(2) {
["weight"]=>
int(2)
["attrs"]=>
array(0) {
}
}
[444]=>
array(2) {
["weight"]=>
int(1)
["attrs"]=>
array(0) {
}
}