Search in sources :

Example 11 with JsonLoader

use of org.apache.solr.handler.loader.JsonLoader in project lucene-solr by apache.

the class JsonLoaderTest method testSimpleFormatInAdd.

public void testSimpleFormatInAdd() throws Exception {
    String str = "{'add':[{'id':'1'},{'id':'2'}]}".replace('\'', '"');
    SolrQueryRequest req = req();
    SolrQueryResponse rsp = new SolrQueryResponse();
    BufferingRequestProcessor p = new BufferingRequestProcessor(null);
    JsonLoader loader = new JsonLoader();
    loader.load(req, rsp, new ContentStreamBase.StringStream(str), p);
    assertEquals(2, p.addCommands.size());
    AddUpdateCommand add = p.addCommands.get(0);
    SolrInputDocument d = add.solrDoc;
    SolrInputField f = d.getField("id");
    assertEquals("1", f.getValue());
    assertEquals(add.commitWithin, -1);
    assertEquals(add.overwrite, true);
    add = p.addCommands.get(1);
    d = add.solrDoc;
    f = d.getField("id");
    assertEquals("2", f.getValue());
    assertEquals(add.commitWithin, -1);
    assertEquals(add.overwrite, true);
    req.close();
}
Also used : SolrQueryRequest(org.apache.solr.request.SolrQueryRequest) SolrQueryResponse(org.apache.solr.response.SolrQueryResponse) SolrInputDocument(org.apache.solr.common.SolrInputDocument) BufferingRequestProcessor(org.apache.solr.update.processor.BufferingRequestProcessor) SolrInputField(org.apache.solr.common.SolrInputField) JsonLoader(org.apache.solr.handler.loader.JsonLoader) AddUpdateCommand(org.apache.solr.update.AddUpdateCommand) ContentStreamBase(org.apache.solr.common.util.ContentStreamBase)

Example 12 with JsonLoader

use of org.apache.solr.handler.loader.JsonLoader in project lucene-solr by apache.

the class JsonLoaderTest method testJsonDocFormat.

public void testJsonDocFormat() throws Exception {
    String doc = "\n" + "\n" + "{\"bool\": true,\n" + " \"f0\": \"v0\",\n" + " \"f2\": {\n" + "    \t  \"boost\": 2.3,\n" + "    \t  \"value\": \"test\"\n" + "    \t   },\n" + "\"array\": [ \"aaa\", \"bbb\" ],\n" + "\"boosted\": {\n" + "    \t      \"boost\": 6.7,\n" + "    \t      \"value\": [ \"aaa\", \"bbb\" ]\n" + "    \t    }\n" + " }\n" + "\n" + "\n" + " {\"f1\": \"v1\",\n" + "  \"f1\": \"v2\",\n" + "   \"f2\": null\n" + "  }\n";
    SolrQueryRequest req = req("srcField", "_src_");
    req.getContext().put("path", "/update/json/docs");
    SolrQueryResponse rsp = new SolrQueryResponse();
    BufferingRequestProcessor p = new BufferingRequestProcessor(null);
    JsonLoader loader = new JsonLoader();
    loader.load(req, rsp, new ContentStreamBase.StringStream(doc), p);
    assertEquals(2, p.addCommands.size());
    doc = "\n" + "\n" + "{\"bool\": true,\n" + " \"f0\": \"v0\",\n" + " \"f2\": {\n" + "    \t  \"boost\": 2.3,\n" + "    \t  \"value\": \"test\"\n" + "    \t   },\n" + "\"array\": [ \"aaa\", \"bbb\" ],\n" + "\"boosted\": {\n" + "    \t      \"boost\": 6.7,\n" + "    \t      \"value\": [ \"aaa\", \"bbb\" ]\n" + "    \t    }\n" + " }\n" + "\n" + "\n" + " {\"f1\": \"v1\",\n" + "  \"f2\": \"v2\",\n" + "   \"f3\": null\n" + "  }\n";
    req = req("srcField", "_src_");
    req.getContext().put("path", "/update/json/docs");
    rsp = new SolrQueryResponse();
    p = new BufferingRequestProcessor(null);
    loader = new JsonLoader();
    loader.load(req, rsp, new ContentStreamBase.StringStream(doc), p);
    assertEquals(2, p.addCommands.size());
    String content = (String) p.addCommands.get(0).solrDoc.getFieldValue("_src_");
    assertNotNull(content);
    Map obj = (Map) ObjectBuilder.fromJSON(content);
    assertEquals(Boolean.TRUE, obj.get("bool"));
    assertEquals("v0", obj.get("f0"));
    assertNotNull(obj.get("f0"));
    assertNotNull(obj.get("array"));
    assertNotNull(obj.get("boosted"));
    content = (String) p.addCommands.get(1).solrDoc.getFieldValue("_src_");
    assertNotNull(content);
    obj = (Map) ObjectBuilder.fromJSON(content);
    assertEquals("v1", obj.get("f1"));
    assertEquals("v2", obj.get("f2"));
    assertTrue(obj.containsKey("f3"));
    doc = "[{'id':'1'},{'id':'2'}]".replace('\'', '"');
    req = req("srcField", "_src_");
    req.getContext().put("path", "/update/json/docs");
    rsp = new SolrQueryResponse();
    p = new BufferingRequestProcessor(null);
    loader = new JsonLoader();
    loader.load(req, rsp, new ContentStreamBase.StringStream(doc), p);
    assertEquals(2, p.addCommands.size());
    content = (String) p.addCommands.get(0).solrDoc.getFieldValue("_src_");
    assertNotNull(content);
    obj = (Map) ObjectBuilder.fromJSON(content);
    assertEquals("1", obj.get("id"));
    content = (String) p.addCommands.get(1).solrDoc.getFieldValue("_src_");
    assertNotNull(content);
    obj = (Map) ObjectBuilder.fromJSON(content);
    assertEquals("2", obj.get("id"));
    String json = "{a:{" + "b:[{c:c1, e:e1},{c:c2, e :e2, d:{p:q}}]," + "x:y" + "}}";
    req = req("split", "/|/a/b");
    req.getContext().put("path", "/update/json/docs");
    rsp = new SolrQueryResponse();
    p = new BufferingRequestProcessor(null);
    loader = new JsonLoader();
    loader.load(req, rsp, new ContentStreamBase.StringStream(json), p);
    assertEquals(1, p.addCommands.size());
    assertEquals("y", p.addCommands.get(0).solrDoc.getFieldValue("a.x"));
    List<SolrInputDocument> children = p.addCommands.get(0).solrDoc.getChildDocuments();
    assertEquals(2, children.size());
    SolrInputDocument d = children.get(0);
    assertEquals(d.getFieldValue("c"), "c1");
    assertEquals(d.getFieldValue("e"), "e1");
    d = children.get(1);
    assertEquals(d.getFieldValue("c"), "c2");
    assertEquals(d.getFieldValue("e"), "e2");
    assertEquals(d.getFieldValue("d.p"), "q");
    req = req(PARENT_TWO_CHILDREN_PARAMS);
    req.getContext().put("path", "/update/json/docs");
    rsp = new SolrQueryResponse();
    p = new BufferingRequestProcessor(null);
    loader = new JsonLoader();
    loader.load(req, rsp, new ContentStreamBase.StringStream(PARENT_TWO_CHILDREN_JSON), p);
    assertEquals(2, p.addCommands.get(0).solrDoc.getChildDocuments().size());
    assertEquals(1, p.addCommands.get(0).solrDoc.getChildDocuments().get(1).getChildDocuments().size());
}
Also used : SolrQueryRequest(org.apache.solr.request.SolrQueryRequest) SolrQueryResponse(org.apache.solr.response.SolrQueryResponse) SolrInputDocument(org.apache.solr.common.SolrInputDocument) BufferingRequestProcessor(org.apache.solr.update.processor.BufferingRequestProcessor) JsonLoader(org.apache.solr.handler.loader.JsonLoader) Map(java.util.Map) ContentStreamBase(org.apache.solr.common.util.ContentStreamBase)

Example 13 with JsonLoader

use of org.apache.solr.handler.loader.JsonLoader in project lucene-solr by apache.

the class JsonLoaderTest method testEmptyChildDocs.

@Test
public void testEmptyChildDocs() throws Exception {
    String str = "{\n" + "    \"add\": {\n" + "        \"doc\": {\n" + "            \"id\": \"1\",\n" + "            \"_childDocuments_\": []\n" + "        }\n" + "    }\n" + "}";
    SolrQueryRequest req = req("commit", "true");
    SolrQueryResponse rsp = new SolrQueryResponse();
    BufferingRequestProcessor p = new BufferingRequestProcessor(null);
    JsonLoader loader = new JsonLoader();
    loader.load(req, rsp, new ContentStreamBase.StringStream(str), p);
    assertEquals(1, p.addCommands.size());
    AddUpdateCommand add = p.addCommands.get(0);
    SolrInputDocument d = add.solrDoc;
    SolrInputField f = d.getField("id");
    assertEquals("1", f.getValue());
    List<SolrInputDocument> cd = d.getChildDocuments();
    assertNull(cd);
    req.close();
}
Also used : SolrQueryRequest(org.apache.solr.request.SolrQueryRequest) SolrQueryResponse(org.apache.solr.response.SolrQueryResponse) SolrInputDocument(org.apache.solr.common.SolrInputDocument) BufferingRequestProcessor(org.apache.solr.update.processor.BufferingRequestProcessor) SolrInputField(org.apache.solr.common.SolrInputField) JsonLoader(org.apache.solr.handler.loader.JsonLoader) AddUpdateCommand(org.apache.solr.update.AddUpdateCommand) ContentStreamBase(org.apache.solr.common.util.ContentStreamBase) Test(org.junit.Test)

Example 14 with JsonLoader

use of org.apache.solr.handler.loader.JsonLoader in project lucene-solr by apache.

the class MetricsCollectorHandler method init.

@Override
public void init(NamedList initArgs) {
    super.init(initArgs);
    if (initArgs != null) {
        params = SolrParams.toSolrParams(initArgs);
    } else {
        params = new ModifiableSolrParams();
    }
    loaders.put("application/xml", new XMLLoader().init(params));
    loaders.put("application/json", new JsonLoader().init(params));
    loaders.put("application/csv", new CSVLoader().init(params));
    loaders.put("application/javabin", new JavabinLoader().init(params));
    loaders.put("text/csv", loaders.get("application/csv"));
    loaders.put("text/xml", loaders.get("application/xml"));
    loaders.put("text/json", loaders.get("application/json"));
}
Also used : CSVLoader(org.apache.solr.handler.loader.CSVLoader) JsonLoader(org.apache.solr.handler.loader.JsonLoader) JavabinLoader(org.apache.solr.handler.loader.JavabinLoader) ModifiableSolrParams(org.apache.solr.common.params.ModifiableSolrParams) XMLLoader(org.apache.solr.handler.loader.XMLLoader)

Example 15 with JsonLoader

use of org.apache.solr.handler.loader.JsonLoader in project lucene-solr by apache.

the class JsonLoaderTest method testDeleteSyntax.

// The delete syntax was both extended for simplification in 4.0
@Test
public void testDeleteSyntax() throws Exception {
    String str = "{'delete':10" + "\n ,'delete':'20'" + "\n ,'delete':['30','40']" + "\n ,'delete':{'id':50, '_version_':12345}" + "\n ,'delete':[{'id':60, '_version_':67890}, {'id':70, '_version_':77777}, {'query':'id:80', '_version_':88888}]" + "\n ,'delete':{'id':90, '_route_':'shard1', '_version_':88888}" + "\n}\n";
    str = str.replace('\'', '"');
    SolrQueryRequest req = req();
    SolrQueryResponse rsp = new SolrQueryResponse();
    BufferingRequestProcessor p = new BufferingRequestProcessor(null);
    JsonLoader loader = new JsonLoader();
    loader.load(req, rsp, new ContentStreamBase.StringStream(str), p);
    // DELETE COMMANDS
    assertEquals(9, p.deleteCommands.size());
    DeleteUpdateCommand delete = p.deleteCommands.get(0);
    assertEquals(delete.id, "10");
    assertEquals(delete.query, null);
    assertEquals(delete.commitWithin, -1);
    delete = p.deleteCommands.get(1);
    assertEquals(delete.id, "20");
    assertEquals(delete.query, null);
    assertEquals(delete.commitWithin, -1);
    delete = p.deleteCommands.get(2);
    assertEquals(delete.id, "30");
    assertEquals(delete.query, null);
    assertEquals(delete.commitWithin, -1);
    delete = p.deleteCommands.get(3);
    assertEquals(delete.id, "40");
    assertEquals(delete.query, null);
    assertEquals(delete.commitWithin, -1);
    delete = p.deleteCommands.get(4);
    assertEquals(delete.id, "50");
    assertEquals(delete.query, null);
    assertEquals(delete.getVersion(), 12345L);
    delete = p.deleteCommands.get(5);
    assertEquals(delete.id, "60");
    assertEquals(delete.query, null);
    assertEquals(delete.getVersion(), 67890L);
    delete = p.deleteCommands.get(6);
    assertEquals(delete.id, "70");
    assertEquals(delete.query, null);
    assertEquals(delete.getVersion(), 77777L);
    delete = p.deleteCommands.get(7);
    assertEquals(delete.id, null);
    assertEquals(delete.query, "id:80");
    assertEquals(delete.getVersion(), 88888L);
    delete = p.deleteCommands.get(8);
    assertEquals(delete.id, "90");
    assertEquals(delete.query, null);
    assertEquals(delete.getRoute(), "shard1");
    assertEquals(delete.getVersion(), 88888L);
    req.close();
}
Also used : SolrQueryRequest(org.apache.solr.request.SolrQueryRequest) SolrQueryResponse(org.apache.solr.response.SolrQueryResponse) BufferingRequestProcessor(org.apache.solr.update.processor.BufferingRequestProcessor) JsonLoader(org.apache.solr.handler.loader.JsonLoader) DeleteUpdateCommand(org.apache.solr.update.DeleteUpdateCommand) ContentStreamBase(org.apache.solr.common.util.ContentStreamBase) Test(org.junit.Test)

Aggregations

JsonLoader (org.apache.solr.handler.loader.JsonLoader)19 SolrQueryRequest (org.apache.solr.request.SolrQueryRequest)17 SolrQueryResponse (org.apache.solr.response.SolrQueryResponse)17 BufferingRequestProcessor (org.apache.solr.update.processor.BufferingRequestProcessor)17 ContentStreamBase (org.apache.solr.common.util.ContentStreamBase)16 SolrInputDocument (org.apache.solr.common.SolrInputDocument)15 AddUpdateCommand (org.apache.solr.update.AddUpdateCommand)12 SolrInputField (org.apache.solr.common.SolrInputField)11 Test (org.junit.Test)9 Map (java.util.Map)2 ModifiableSolrParams (org.apache.solr.common.params.ModifiableSolrParams)2 CSVLoader (org.apache.solr.handler.loader.CSVLoader)2 JavabinLoader (org.apache.solr.handler.loader.JavabinLoader)2 XMLLoader (org.apache.solr.handler.loader.XMLLoader)2 DeleteUpdateCommand (org.apache.solr.update.DeleteUpdateCommand)2 HashMap (java.util.HashMap)1 UnaryOperator (java.util.function.UnaryOperator)1 SolrException (org.apache.solr.common.SolrException)1 MapSolrParams (org.apache.solr.common.params.MapSolrParams)1 SolrParams (org.apache.solr.common.params.SolrParams)1