2012-05-26 36 views
1

SIREn中可能使用SolrDocument中的N-Tuples值(按名称)吗?我想解析查询结果而不用响应字符串的正则表达式。解析需要N元组SIREn N-Tuples结果

//N-Tuple from the IndexQueryNTriple.java file 

private final String[] doc1 = 

{ "http:/example.org/person/jim", 

"<http:/example.org/person/jim> <http:/example.org/schema/type> <http:/example.org 
    /schema/Person> .\n" + 

    "<http:/example.org/person/jim> <http:/example.org/schema/name> \"Jim Maple\" .\n" 
}; 

final SolrInputDocument document1 = new SolrInputDocument(); 

document1.addField("url", doc1[0]); 
document1.addField("ntriple", doc1[1]); 
add(document1); 

final SolrQuery query2 = new SolrQuery(); 
query2.setQueryType("siren"); 
query2.set(SirenParams.NQ, "* <name> 'john AND gartner'"); // ntriple query 
final QueryResponse response2 = server.query(query2); 
for (SolrDocument d : response2.getResults()) { 

///?????? want to get 'name' value from the long N-Triple string with ALL values 
d.getField("ntriple","name"); // get "Jim Maple" value 

} 

回答

0

不幸的是NxParser对它可以解析的三元组格式有一些限制

1

我发现NxParser库:

喜欢的东西:

SolrDocument.getField("ntriple","name"); // get "Jim Maple" value for '<http:/example.org/schema/name> predicate 

更多细节。