2011-02-01 96 views
0

我設法讓獅身人面像運行指標有以下表格: EMP_ID,EMP_NAME,emp_department,emp_gender,emp_join_date,emp_notesSphinx搜索 - 新手

如何使用獅身人面像返回結果,其中emp_gender是「男」?

<?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男性的工作?如預期

+0

php有獅身人面像pecl擴展名。恕我直言 - 它比.php api包裝更快。 http://php.net/manual/en/book.sphinx.php – ThatGuy 2012-01-06 21:21:18

回答

2

它沒有返回結果,您必須使用field search operator這樣的:

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

謝謝,我試過這個,但是 $ cl-> Query(「@emp_gender male」,「sphinx_search」); 和 $ cl-> Query(「male」,「sphinx_search」); 返回相同的結果集。在配置中有什麼我必須做的嗎? – Pasta 2011-02-01 10:52:12

1

這些信息性別更好地存儲在屬性中。 您可以將您的SQL查詢更改爲不適用。像這樣:

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

然後你可以使用 '性別' 字段作爲整數attribuite:

sql_attr_uint = gender 

在你APPP:

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

這種解決方案能夠更快的工作,然後過濾通過現場並且它非常靈活,因爲 過濾器和查詢是分開的。