我使用Stardog作为语义图数据库。我的数据库包含,例如,“apple”但不包含“apples”,所以如果我查询“apples”,它就找不到任何东西。
解决此问题的一种可能方法是将所有标签的干版本添加到数据库,但这样做效率很低。
由于Stardog使用SPARQL查询语言和Lucene,我怎样才能让Stardog在搜索中使用词干?
答案 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的完全限定类名。