0

我需要使用 sphinx 从多个查询中获取结果。只有属性条件没有问题。

例如:

$this->cl->SetSelect ( "*, item_fkprogram=700 OR item_fkuser=350 AS mycond" );
$this->cl->SetFilter ( "mycond", array(1) );
$results=$this->cl->Query("","item");

它工作正常,但有时我需要添加文本查询。例如:获取以下项目:

Have item_fkprogram=700
OR Have item_fkuser=350
OR Have the search string "text1"

可以做到吗?提前致谢

4

1 回答 1

0

如果可以将对减少为数值,则可以使用 mva。

我解释

1° 为每个“参数”选择一个值 - item_fkprogram <- 00 - item_fkuser <- 01 - item_fkfoo <- 02

2 连接

所以像这样索引

select id, CONCAT (item_fkprogram,'00,',item_fkuser,'01,',item_fkfoo,'02') AS orattr FROM table

并添加

sql_attr_multi = 来自字段的 uint orattr;

在那里你可以搜索 filter=sql_attr_multi,70000,35001

另一种方法是转换“单词”中的值并使用扩展搜索

select id, CONCAT ('item_fkprogram',item_fkprogram,' ', 'item_fkuser',item_fkuser,' ', 'item_fkfoo',item_fkfoo) as xx FROM table

搜索@xx“item_fkprogram700”“item_fkuser350”

于 2013-05-10T21:30:42.657 回答