我目前正在使用lucene索引网页.目的是能够快速提取哪个页面包含某个表达式(通常为1,2或3个单词),以及其他单词(或其中1到3个组)也在页面中.这将用于构建/丰富/改变同义词库(固定词汇表).
从我发现的文章来看,问题似乎是找到n-gram(或shingle).
Lucene的有ShingleFilter,一个ShingleMatrixFilter和ShingleAnalyzerWrapper,这似乎与此相关的任务.
从这个演示文稿中,我了解到Lucene还可以搜索由固定数量的单词(称为slops)分隔的术语.这里提供了一个例子.
但是,我不明白这些方法之间的区别?它们是根本不同的,还是您必须做出的性能/索引大小选择?
ShingleMatrixFilter和ShingleFilter有什么区别?
希望Lucene大师能找到这个问题,然后回答;-)!
我想执行更新以删除RDF存储中两个节点之间的链接(谓词).链接是双向的(skos:narrower,skos:wide).我想做一个独特的查询,以确保在一个独特的操作中删除这两个链接.
目前,我正在使用这两个查询(两个?term和?parentTerm将在执行时绑定特定的URI):
PREFIX skos:<http://www.w3.org/2004/02/skos/core#>
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
DELETE
WHERE{
GRAPH ?graph {
?term skos:broader ?parentTerm
}
}
PREFIX skos:<http://www.w3.org/2004/02/skos/core#>
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
DELETE
WHERE{
GRAPH ?graph {
?parentTerm skos:narrower ?term
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法建立一个唯一的查询,而不是改变谓词之间可能存在的其他链接(又名:谓词)?
我厌倦了; 分离查询,并将其作为单个命令发送到芝麻存储(正如您有时在SQL中所做的那样),但它不起作用.