public static void addDoc(String doc, String updateRequestProcessorChain) throws Exception { Map<String, String[]> params = new HashMap<>(); MultiMapSolrParams mmparams = new MultiMapSolrParams(params); params.put(UpdateParams.UPDATE_CHAIN, new String[]{updateRequestProcessorChain}); SolrQueryRequestBase req = new SolrQueryRequestBase(h.getCore(), (SolrParams) mmparams) { }; UpdateRequestHandler handler = new UpdateRequestHandler(); handler.init(null); ArrayList<ContentStream> streams = new ArrayList<>(2); streams.add(new ContentStreamBase.StringStream(doc)); req.setContentStreams(streams); handler.handleRequestBody(req, new SolrQueryResponse()); req.close(); }
/** * Create a TestHarness using a specific config * @param config the ConfigSolr to use */ public TestHarness(NodeConfig config, CoresLocator coresLocator) { container = new CoreContainer(config, new Properties(), coresLocator); container.load(); updater = new UpdateRequestHandler(); updater.init(null); }
@Override public void init(final NamedList args) { super.init(args); // ID mapper FieldMapper idMapper = new IdFieldMapper(); fieldMappers.add(idMapper); // JSON mapper FieldMapper jsonMapper = this.parseJsonMapping(args); if (jsonMapper != null) { jsonMapper.setRequired(true); fieldMappers.add(jsonMapper); } // Required mappers for (FieldMapper mapper : this.parseMappings(args, REQUIRED_PARAM)) { mapper.setRequired(true); fieldMappers.add(mapper); } // Optional mappers for (FieldMapper mapper : this.parseMappings(args, OPTIONAL_PARAM)) { fieldMappers.add(mapper); } // Default mapper FieldMapper defaultMapper = this.parseDefaultMapping(args); if (defaultMapper != null) { fieldMappers.setDefaultMapper(defaultMapper); } }
/** Send JSON update commands */ public static String updateJ(String json, SolrParams args) throws Exception { SolrCore core = h.getCore(); if (args == null) { args = params("wt","json","indent","true"); } else { ModifiableSolrParams newArgs = new ModifiableSolrParams(args); if (newArgs.get("wt") == null) newArgs.set("wt","json"); if (newArgs.get("indent") == null) newArgs.set("indent","true"); args = newArgs; } DirectSolrConnection connection = new DirectSolrConnection(core); SolrRequestHandler handler = core.getRequestHandler("/update/json"); if (handler == null) { handler = new UpdateRequestHandler(); handler.init(null); } return connection.request(handler, args, json); }