use of org.apache.solr.handler.loader.JsonLoader in project lucene-solr by apache.
the class UpdateRequestHandler method createDefaultLoaders.
protected Map<String, ContentStreamLoader> createDefaultLoaders(NamedList args) {
SolrParams p = null;
if (args != null) {
p = SolrParams.toSolrParams(args);
}
Map<String, ContentStreamLoader> registry = new HashMap<>();
registry.put("application/xml", new XMLLoader().init(p));
registry.put("application/json", new JsonLoader().init(p));
registry.put("application/csv", new CSVLoader().init(p));
registry.put("application/javabin", new JavabinLoader().init(p));
registry.put("text/csv", registry.get("application/csv"));
registry.put("text/xml", registry.get("application/xml"));
registry.put("text/json", registry.get("application/json"));
pathVsLoaders.put(JSON_PATH, registry.get("application/json"));
pathVsLoaders.put(DOC_PATH, registry.get("application/json"));
pathVsLoaders.put(CSV_PATH, registry.get("application/csv"));
pathVsLoaders.put(BIN_PATH, registry.get("application/javabin"));
return registry;
}
use of org.apache.solr.handler.loader.JsonLoader in project lucene-solr by apache.
the class JsonLoaderTest method testSimpleFormat.
public void testSimpleFormat() throws Exception {
String str = "[{'id':'1'},{'id':'2'}]".replace('\'', '"');
SolrQueryRequest req = req("commitWithin", "100", "overwrite", "false");
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, 100);
assertEquals(add.overwrite, false);
add = p.addCommands.get(1);
d = add.solrDoc;
f = d.getField("id");
assertEquals("2", f.getValue());
assertEquals(add.commitWithin, 100);
assertEquals(add.overwrite, false);
req.close();
}
use of org.apache.solr.handler.loader.JsonLoader in project lucene-solr by apache.
the class JsonLoaderTest method testExtendedFieldValues.
public void testExtendedFieldValues() throws Exception {
String str = "[{'id':'1', 'val_s':{'add':'foo'}}]".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(1, p.addCommands.size());
AddUpdateCommand add = p.addCommands.get(0);
assertEquals(add.commitWithin, -1);
assertEquals(add.overwrite, true);
SolrInputDocument d = add.solrDoc;
SolrInputField f = d.getField("id");
assertEquals("1", f.getValue());
f = d.getField("val_s");
Map<String, Object> map = (Map<String, Object>) f.getValue();
assertEquals("foo", map.get("add"));
req.close();
}
use of org.apache.solr.handler.loader.JsonLoader in project lucene-solr by apache.
the class JsonLoaderTest method testGrandChildDocs.
@Test
public void testGrandChildDocs() throws Exception {
String str = "{\n" + " \"add\": {\n" + " \"doc\": {\n" + " \"id\": \"1\",\n" + " \"_childDocuments_\": [\n" + " {\n" + " \"id\": \"2\",\n" + " \"_childDocuments_\": [\n" + " {\n" + " \"id\": \"4\",\n" + " \"foo_s\": \"Baz\"\n" + " }\n" + " ],\n" + " \"foo_s\": \"Yaz\"\n" + " },\n" + " {\n" + " \"id\": \"3\",\n" + " \"foo_s\": \"Bar\"\n" + " }\n" + " ]\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 one = add.solrDoc;
assertEquals("1", one.getFieldValue("id"));
SolrInputDocument two = one.getChildDocuments().get(0);
assertEquals("2", two.getFieldValue("id"));
assertEquals("Yaz", two.getFieldValue("foo_s"));
SolrInputDocument four = two.getChildDocuments().get(0);
assertEquals("4", four.getFieldValue("id"));
assertEquals("Baz", four.getFieldValue("foo_s"));
SolrInputDocument three = one.getChildDocuments().get(1);
assertEquals("3", three.getFieldValue("id"));
assertEquals("Bar", three.getFieldValue("foo_s"));
req.close();
}
use of org.apache.solr.handler.loader.JsonLoader in project lucene-solr by apache.
the class JsonLoaderTest method testParsing.
public void testParsing() throws Exception {
SolrQueryRequest req = req();
SolrQueryResponse rsp = new SolrQueryResponse();
BufferingRequestProcessor p = new BufferingRequestProcessor(null);
JsonLoader loader = new JsonLoader();
loader.load(req, rsp, new ContentStreamBase.StringStream(input), p);
assertEquals(2, p.addCommands.size());
AddUpdateCommand add = p.addCommands.get(0);
SolrInputDocument d = add.solrDoc;
SolrInputField f = d.getField("boosted");
assertEquals(2, f.getValues().size());
//
add = p.addCommands.get(1);
d = add.solrDoc;
f = d.getField("f1");
assertEquals(2, f.getValues().size());
assertEquals(false, add.overwrite);
assertEquals(0, d.getField("f2").getValueCount());
// parse the commit commands
assertEquals(2, p.commitCommands.size());
CommitUpdateCommand commit = p.commitCommands.get(0);
assertFalse(commit.optimize);
assertTrue(commit.waitSearcher);
assertTrue(commit.openSearcher);
commit = p.commitCommands.get(1);
assertTrue(commit.optimize);
assertFalse(commit.waitSearcher);
assertFalse(commit.openSearcher);
// DELETE COMMANDS
assertEquals(4, p.deleteCommands.size());
DeleteUpdateCommand delete = p.deleteCommands.get(0);
assertEquals(delete.id, "ID");
assertEquals(delete.query, null);
assertEquals(delete.commitWithin, -1);
delete = p.deleteCommands.get(1);
assertEquals(delete.id, "ID");
assertEquals(delete.query, null);
assertEquals(delete.commitWithin, 500);
delete = p.deleteCommands.get(2);
assertEquals(delete.id, null);
assertEquals(delete.query, "QUERY");
assertEquals(delete.commitWithin, -1);
delete = p.deleteCommands.get(3);
assertEquals(delete.id, null);
assertEquals(delete.query, "QUERY");
assertEquals(delete.commitWithin, 500);
// ROLLBACK COMMANDS
assertEquals(1, p.rollbackCommands.size());
req.close();
}
Aggregations