怎么能让Stardog在搜索中使用词干?

时间:2015-05-05 14:17:47

标签: lucene sparql stardog

我使用Stardog作为语义图数据库。我的数据库包含,例如,“apple”但不包含“apples”,所以如果我查询“apples”,它就找不到任何东西。

解决此问题的一种可能方法是将所有标签的干版本添加到数据库,但这样做效率很低。

由于Stardog使用SPARQL查询语言和Lucene,我怎样才能让Stardog在搜索中使用词干?

1 个答案:

答案 0 :(得分:1)

假设您希望使用英语语言,那么使用的正确分析器将是EnglishAnalyzer

Stardog允许您根据their documentation更改分析仪。您需要实现AnalyzerFactory,例如:

public final class EnglishAnalyzerFactory implements AnalyzerFactory {
    @Override
    public Analyzer get() {
        return new EnglishAnalyzer(Version.LUCENE_47);
    }
}

然后:

  

在META-INF / services目录中创建一个名为com.complexible.stardog.search.AnalyzerFactory的文件。此文件的内容应该是AnalyzerFactory的完全限定类名。