2012-01-16 104 views
0

我試圖爲我正在開發的Web應用程序實現多語言索引。目前,記錄以幾種語言存在,英文,馬來語&阿拉伯文(但它們沒有分隔成不同的列)。目前僅啓用英文詞幹分析器。獅身人面像返回不一致的結果集取決於排序

只建立了兩個索引,用於詞幹和非詞幹索引。由於返回的結果集不一致,這取決於排序列,所以我遇到了干擾索引的問題。

這兩個查詢(來自詞幹索引)每個都返回不同數量的總結果,儘管它們之間的差異僅僅是排序順序。

SELECT * FROM test1stemmed WHERE MATCH('@institution universiti') GROUP BY art_id ORDER BY art_title_ord ASC; 

SELECT * FROM test1stemmed WHERE MATCH('@institution universiti') GROUP BY art_id ORDER BY art_title_ord DESC; 

但是,如果在非詞幹索引上運行相同的查詢,則結果數是相等的。

我也有與獅身人面像PHP API同樣的問題:

$sp = new SphinxClient(); 
$sp->SetServer('localhost', 9312); 
$sp->SetMatchMode(SPH_MATCH_EXTENDED); 
$sp->SetGroupBy('art_id', SPH_GROUPBY_ATTR, "$sp_sort_column $sort"); 
$sp->SetLimits($offset, $rows_per_page, 1000); 
$sp->Query("$q", 'test1stemmed'); 

我缺少什麼?

回答

0

東西從我的文檔錯過這裏http://sphinxsearch.com/docs/2.0.2/clustering.html

警告:分組在固定的內存中執行,因此,其結果只是近似的;因此total_found中可能會有更多的組報告實際存在。 @count也可能被低估。爲了減少錯誤,應該提高max_matches。如果max_matches允許存儲所有找到的組,結果將100%正確。

所以我可以通過增加max_matches中的值來解決這個問題,但是由於放入非常大的值是絕對不可取的,我將修復查詢。