我是狮身人面像的新手,我有一个小问题。我有sphinx.conf文件如下
sql_query = \
SELECT id, user_id, title \
FROM table
sql_attr_uint = user_id
sql_query_info = SELECT * FROM table WHERE id=$id
我有一个使用sphinxapi.php的php文件,其中包含以下代码
// connect to mysql database //
require_once('sphinxapi.php');
$s = new SphinxClient;
$s->setServer("127.0.0.1", 9312);
$s->setMatchMode(SPH_MATCH_ANY);
$s->SetLimits(0, 2);
$result = $s->Query('test words');
如果我打印$ result它有user_id字段但不包含id或title字段。有没有办法检索它们?
答案 0 :(得分:2)
它将拥有id。它的jsut不在'attrs'数组中,它是'matches'数组的关键。
字段的“文本”未存储,因此sphinx无法返回。要获得标题,请返回原始数据库。这将是一个非常快速的查询,因为它只能使用IN(..)查询中的id列表。
(尽管你可以选择将文本放在一个字符串属性中,然后sphinx将存储并返回到attrs数组中。可以使用sql_field_string,创建一个列,一个字段和一个属性)
答案 1 :(得分:0)
试试这个
sql_query = \
SELECT id, user_id, title, title as title_str \
FROM table
sql_field_string = title_str