2009-07-15 57 views
2

我有两个Xapian数据库,我们称之为“EN”和另一个“DE”,假设前者包含一些英文文档,后者包含一些德文版本。Xapian多语言停用词搜索?

如果我希望用户能够同时搜索两个,我可以轻松加载这两个数据库。但是,似乎我只能使用一个词干和一组停用词?

没有办法实例化英文词干,并且只适用于来自“EN”数据库的结果?没有办法用英文单词创建Stopper,并且仅适用于来自“EN”数据库的结果。

这是正确的吗?

回答

2

词干只有在您知道您所描述的文字的语言时才有用。如果您创建了带有词干的Xapian数据库(即Xapian数据库正在存储原始词语的词干形式),那么您将指定一种语言。

但是在搜索的时候,您还需要知道正确的语言。如果您的用户使用英文输入查询,则在将查询应用于英文数据库之前,必须使用英文。这同样适用于德语。如果你想搜索每个数据库,也许你应该从每个用户请求中创建两个独立的,特定于语言的查询。

但是请记住,最初以德语输入的查询,然后是英文词干的查询,可能会产生一些奇怪的结果 - 如果您有任何方法可以查找用户在查询时使用的语言,那么这可以被用来应用正确的词干。

HTH - 顺便说一句,Xapian讨论邮件列表(见www.xapian.org)是一个问这类问题的好地方。

查理