2011-09-18 89 views
0

我做了一個動態CMS,因此CMS的每個實例都將其表格放在一個MYSQL數據庫中。到目前爲止,所有的工作。Sphinx搜索乘法索引和來源

的Envorioment:

  • 8個不同的站點與不同的內容。他們只共享數據庫的名字,但都differenttables($ sitename_posts)

  • 搜索enigne SPHINX

現在即時通訊卡在此:例如當用戶對網站1搜索我想要搜索的所有表$ sitename_posts並返回最佳結果。

作爲搜索引擎我使用獅身人面像。我已經嘗試了兩個來源和兩個索引,但是當我搜索例如:

$sphinx = new SphinxClient; 
$sphinx->setServer($sphinx_host, $sphinx_port); 
$sphinx->setMatchMode(SPH_MATCH_ANY); 
$sphinx->setMaxQueryTime(10000); 
$sphinx->SetSortMode(SPH_SORT_EXTENDED, '@relevance DESC'); 
$sphinx->SetLimits(0, 100, 300); 
$result = $sphinx->query("Hello World", (index1 index2); 

我沒有得到任何結果。但是,如果我只建立一個INDEX和多個來源我得到的結果,但我不能確定從哪個來源我得到的數據,所以我不能判斷內容屬於哪個網站。

還有一個問題是,當我搜索索引,是否有可能,獅身人面像返回,ID和ID屬於哪個索引?因爲我需要確定哪個索引屬於哪個結果。

感謝您的幫助!

回答

1

如果我沒有理解這個問題正確我這是值得你尋找到下面的獅身人面像特點:

分佈式索引 - 這將讓你有一個索引每個站點,也有一個「虛擬」的分佈式索引其當你想獲取數據時,你可以從應用程序中進行搜索。

索引合併 - 這比分佈式索引選項更持久,但索引器能夠將多個索引合併到單個索引中。我通常更喜歡使用分佈式索引。

屬性 - 這將讓你在每個資源索引(例如siteId),這將允許您以確定哪些索引的搜索結果來自於一個恆定值。它還可以允許您在從單個分佈式索引搜索時過濾結果。

獅身人面像的文檔 - http://sphinxsearch.com/docs/2.0.1/

分佈式索引解釋 - http://sphinxsearch.com/docs/2.0.1/distributed.html

配置分佈式索引 - http://sphinxsearch.com/docs/2.0.1/confgroup-index.html

+0

謝謝你,如果使用了與 0 AS SOURCE_ID,識別源! :) sql_attr_uint = source_id – mamamia