狮身人面像搜索 - 新手

时间:2011-02-01 10:15:04

标签: php sphinx

我设法让Sphinx运行以使用以下内容索引表: emp_id,emp_name,emp_department,emp_gender,emp_join_date,emp_notes

如何使用Sphinx返回emp_gender为“male”的结果?

<?php
include ('sphinxapi.php');
$cl = new SphinxClient();
$cl->SetServer( "SPHINX2", 3312 );
$cl->SetMatchMode( SPH_MATCH_EXTENDED);
$result = $cl->Query( "male","sphinx_search");
?>

以上返回男性的任何地方,包括emp_notes字段和emp_gender字段。请告知我如何定位列。像@emp_gender男性会工作吗?它没有按预期返回结果

2 个答案:

答案 0 :(得分:2)

你必须像这样使用field search operator

$cl->Query( "@emp_gender male", "sphinx_search" );

答案 1 :(得分:1)

性别等信息可以更好地存储在属性中。 您可以将SQL查询更改为smth。像这样:

select if(emp_getnder = 'male', 1, 0) as gender,..... 

然后你可以使用'gender'字段作为整数属性:

sql_attr_uint = gender

在你的appp中:

$cl->setFilter('gender', array(1)); //select only male
$cl->Query("", "sphinx_search");

这个解决方案的工作速度比按字段过滤要快得多,而且非常灵活,因为 过滤器和查询是分开的。