如何通过SolrJ客户端触发POST请求以获取语义知识图

时间:2018-08-14 18:37:15

标签: java post solr solrj solrcloud

我正在尝试在基于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构造对语义知识图的请求的文档的指针都将非常有帮助。

谢谢

0 个答案:

没有答案