2009-07-15 59 views
2

我有兩個Xapian數據庫,我們稱之爲「EN」和另一個「DE」,假設前者包含一些英文文檔,後者包含一些德文版本。Xapian多語言停用詞搜索?

如果我希望用戶能夠同時搜索兩個,我可以輕鬆加載這兩個數據庫。但是,似乎我只能使用一個詞幹和一組停用詞?

沒有辦法實例化英文詞幹,並且只適用於來自「EN」數據庫的結果?沒有辦法用英文單詞創建Stopper,並且僅適用於來自「EN」數據庫的結果。

這是正確的嗎?

回答

2

詞幹只有在您知道您所描述的文字的語言時纔有用。如果您創建了帶有詞幹的Xapian數據庫(即Xapian數據庫正在存儲原始詞語的詞幹形式),那麼您將指定一種語言。

但是在搜索的時候,您還需要知道正確的語言。如果您的用戶使用英文輸入查詢,則在將查詢應用於英文數據庫之前,必須使用英文。這同樣適用於德語。如果你想搜索每個數據庫,也許你應該從每個用戶請求中創建兩個獨立的,特定於語言的查詢。

但是請記住,最初以德語輸入的查詢,然後是英文詞幹的查詢,可能會產生一些奇怪的結果 - 如果您有任何方法可以查找用戶在查詢時使用的語言,那麼這可以被用來應用正確的詞幹。

HTH - 順便說一句,Xapian討論郵件列表(見www.xapian.org)是一個問這類問題的好地方。

查理