2

我有两个 Xapian 数据库,我们称一个为“EN”,另一个为“DE”,假设前者包含一些英文文档,而后者包含一些德文文档。

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

没有办法实例化一个英语词干分析器并让它只应用于那些来自“EN”数据库的结果?没有办法用英文单词创建一个 Stopper,并且只适用于来自“EN”数据库的那些结果?

这可能是对的吗?

4

1 回答 1

2

仅当您知道要提取的文本的语言时,词干才有用。如果您使用词干创建了 Xapian 数据库(即,Xapian 数据库存储原始单词的词干形式),那么您将指定一种语言。

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

但是请记住,最初以德语输入的查询,但随后使用英语词干分析器进行词干处理,可能会产生一些奇怪的结果 - 如果您有任何方法可以找出用户在查询时使用的语言,那么这可以用于应用正确的词干分析器。

HTH - 顺便说一下,Xapian-discuss 邮件列表(参见 www.xapian.org)是提出此类问题的好地方。

查理

于 2009-08-05T09:50:13.203 回答