0

我对狮身人面像很陌生,我有一个小问题。我有 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 字段。有没有办法找回那些呢?

4

2 回答 2

2

它将具有 id。它的jsut不在'attrs'数组中,它是'matches'数组的键。

不存储字段的“文本”,因此 sphinx 无法返回它。要获得标题,请返回您的原始数据库。这将是一个非常快速的查询,因为它可以只使用 IN(..) 查询中的 id 列表。

(尽管您可以选择将文本放入字符串属性中,然后 sphinx 将存储并返回 attrs 数组。可以使用 sql_field_string 来创建列,既是字段又是属性)

于 2013-05-30T15:58:45.107 回答
0

试试这个

sql_query       = \
    SELECT id, user_id, title, title as title_str \
    FROM table

sql_field_string = title_str
于 2013-05-30T20:51:36.267 回答