我正在尝试在基于Java的应用程序中使用语义知识图。
我有一个语义知识图查询,如果我使用restlet客户端通过浏览器触发它,该查询就可以正常工作。以下是查询。
{
"queries": [
"foo:\"5a6127a7234e76473a816f1c\""
],
"compare": [
{
"type": "bar",
"limit": 30
}
]
}
现在,我想通过SolrJ客户端触发相同的查询。我尝试了下面的代码,但它给了我一个错误
{"error":{"msg":"KnowledgeGraphHandler requires POST data","code":400}}
java中的代码是
SolrQuery request = new SolrQuery();
request.setRequestHandler("/skg");
request.setShowDebugInfo(true);
request.setParam("wt", "json");
request.setParam("json", "{\"queries\":[\"foo:\\\"5a6127a7234e76473a816f1c\\\"\"],\"compare\":[{\"type\":\"bar\",\"limit\":30}]}");
request.set("rows", 10);
request.setParam("qf", "conceptname^10 tags^3 textproperty^2 file_text^4");
try {
QueryResponse response = getStore().getEnvironment().getSolr().query(request, SolrRequest.METHOD.POST);
NamedList<Object> rsp = response.getResponse();
ArrayList<SimpleOrderedMap<Object>> skg_resp = (ArrayList<SimpleOrderedMap<Object>>) rsp.get("clusters");
if (skg_resp != null) {
}
}
有什么想法吗?任何有关如何通过solrJ构造对语义知识图的请求的文档的指针都将非常有帮助。
谢谢