我已经设法让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");
?>上面的代码返回male anywhere,包括emp_notes字段和emp_gender字段。请建议我如何可以针对列。像@emp_gender male这样的东西会起作用吗?它不会按预期返回结果
发布于 2011-02-01 18:46:38
您必须像这样使用field search operator:
$cl->Query( "@emp_gender male", "sphinx_search" );发布于 2011-08-07 16:47:51
性别等信息最好存储在属性中。您可以将SQL查询更改为smth。如下所示:
select if(emp_getnder = 'male', 1, 0) as gender,..... 然后你可以使用‘性别’字段作为整型属性:
sql_attr_uint = gender在您的appp中:
$cl->setFilter('gender', array(1)); //select only male
$cl->Query("", "sphinx_search");这种解决方案比按字段过滤要快得多,而且非常灵活,因为过滤器和查询是分开的。
https://stackoverflow.com/questions/4861300
复制相似问题