如何在 GraphDB lucene 索引之上计算 lucene FuzzyQuery?
How compute lucene FuzzyQuery on top GraphDB lucene index?
GraphDB 支持 FTS Lucene 插件来构建 RDF 'molecule' 以高效地索引文本。但是,当您正在搜索的单词中出现拼写错误(拼写错误)时,Lucene 将不会检索结果。我想知道是否有可能在 FTS 的 GraphDB 中的 Lucene 索引之上实现基于 Damerau-Levenshtein 算法的 FuzzyQuery。这样,即使单词拼写不正确,您也可以根据编辑距离相似性获得更多 'closed' 个单词的列表。
这是我为索引 WordNet RDF 中的 NounSynset 标签而创建的索引。
PREFIX wn20schema: <http://www.w3.org/2006/03/wn/wn20/schema/>
INSERT DATA {
luc:index luc:setParam "uris" .
luc:include luc:setParam "literals" .
luc:moleculeSize luc:setParam "1" .
luc:includePredicates luc:setParam "http://www.w3.org/2000/01/rdf-schema#label" .
luc:includeEntities luc:setParam wn20schema:NounSynset.
luc:nounIndex luc:createIndex "true".
}
当运行查询时
select * where {
{?id luc:nounIndex "credict"}
?id luc:score ?score.
}
结果为空,我想至少得到单词"credit",因为编辑距离是1。
谢谢!!!
如果您使用 ~
,它应该会给您一个模糊匹配。
GraphDB 支持 FTS Lucene 插件来构建 RDF 'molecule' 以高效地索引文本。但是,当您正在搜索的单词中出现拼写错误(拼写错误)时,Lucene 将不会检索结果。我想知道是否有可能在 FTS 的 GraphDB 中的 Lucene 索引之上实现基于 Damerau-Levenshtein 算法的 FuzzyQuery。这样,即使单词拼写不正确,您也可以根据编辑距离相似性获得更多 'closed' 个单词的列表。
这是我为索引 WordNet RDF 中的 NounSynset 标签而创建的索引。
PREFIX wn20schema: <http://www.w3.org/2006/03/wn/wn20/schema/>
INSERT DATA {
luc:index luc:setParam "uris" .
luc:include luc:setParam "literals" .
luc:moleculeSize luc:setParam "1" .
luc:includePredicates luc:setParam "http://www.w3.org/2000/01/rdf-schema#label" .
luc:includeEntities luc:setParam wn20schema:NounSynset.
luc:nounIndex luc:createIndex "true".
}
当运行查询时
select * where {
{?id luc:nounIndex "credict"}
?id luc:score ?score.
}
结果为空,我想至少得到单词"credit",因为编辑距离是1。
谢谢!!!
如果您使用 ~
,它应该会给您一个模糊匹配。