Java Code Examples for org.apache.solr.client.solrj.io.Tuple#getStrings()
The following examples show how to use
org.apache.solr.client.solrj.io.Tuple#getStrings() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: StreamingTest.java From lucene-solr with Apache License 2.0 | 4 votes |
@Test public void testTuple() throws Exception { new UpdateRequest() .add(id, "0", "a_s", "hello0", "a_i", "0", "a_f", "5.1", "s_multi", "a", "s_multi", "b", "i_multi", "1", "i_multi", "2", "f_multi", "1.2", "f_multi", "1.3") .commit(cluster.getSolrClient(), COLLECTIONORALIAS); StreamContext streamContext = new StreamContext(); SolrClientCache solrClientCache = new SolrClientCache(); streamContext.setSolrClientCache(solrClientCache); try { SolrParams sParams = mapParams("q", "*:*", "fl", "id,a_s,a_i,a_f,s_multi,i_multi,f_multi", "sort", "a_s asc"); CloudSolrStream stream = new CloudSolrStream(zkHost, COLLECTIONORALIAS, sParams); stream.setStreamContext(streamContext); List<Tuple> tuples = getTuples(stream); Tuple tuple = tuples.get(0); String s = tuple.getString("a_s"); assertEquals("hello0", s); long l = tuple.getLong("a_i"); assertEquals(0, l); double d = tuple.getDouble("a_f"); assertEquals(5.1, d, 0.001); List<String> stringList = tuple.getStrings("s_multi"); assertEquals("a", stringList.get(0)); assertEquals("b", stringList.get(1)); List<Long> longList = tuple.getLongs("i_multi"); assertEquals(1, longList.get(0).longValue()); assertEquals(2, longList.get(1).longValue()); List<Double> doubleList = tuple.getDoubles("f_multi"); assertEquals(1.2, doubleList.get(0).doubleValue(), 0.001); assertEquals(1.3, doubleList.get(1).doubleValue(), 0.001); } finally { solrClientCache.close(); } }
Example 2
Source File: StreamExpressionTest.java From lucene-solr with Apache License 2.0 | 4 votes |
@Test public void testNulls() throws Exception { new UpdateRequest() .add(id, "0", "a_i", "1", "a_f", "0", "s_multi", "aaa", "s_multi", "bbb", "i_multi", "100", "i_multi", "200") .add(id, "2", "a_s", "hello2", "a_i", "3", "a_f", "0") .add(id, "3", "a_s", "hello3", "a_i", "4", "a_f", "3") .add(id, "4", "a_s", "hello4", "a_f", "4") .add(id, "1", "a_s", "hello1", "a_i", "2", "a_f", "1") .commit(cluster.getSolrClient(), COLLECTIONORALIAS); StreamExpression expression; TupleStream stream; List<Tuple> tuples; Tuple tuple; StreamContext streamContext = new StreamContext(); SolrClientCache solrClientCache = new SolrClientCache(); streamContext.setSolrClientCache(solrClientCache); StreamFactory factory = new StreamFactory() .withCollectionZkHost(COLLECTIONORALIAS, cluster.getZkServer().getZkAddress()) .withFunctionName("search", CloudSolrStream.class); try { // Basic test expression = StreamExpressionParser.parse("search(" + COLLECTIONORALIAS + ", q=*:*, fl=\"id,a_s,a_i,a_f, s_multi, i_multi\", qt=\"/export\", sort=\"a_i asc\")"); stream = new CloudSolrStream(expression, factory); stream.setStreamContext(streamContext); tuples = getTuples(stream); assert (tuples.size() == 5); assertOrder(tuples, 4, 0, 1, 2, 3); tuple = tuples.get(0); assertTrue("hello4".equals(tuple.getString("a_s"))); assertNull(tuple.get("s_multi")); assertNull(tuple.get("i_multi")); assertNull(tuple.getLong("a_i")); tuple = tuples.get(1); assertNull(tuple.get("a_s")); List<String> strings = tuple.getStrings("s_multi"); assertNotNull(strings); assertEquals("aaa", strings.get(0)); assertEquals("bbb", strings.get(1)); List<Long> longs = tuple.getLongs("i_multi"); assertNotNull(longs); //test sort (asc) with null string field. Null should sort to the top. expression = StreamExpressionParser.parse("search(" + COLLECTIONORALIAS + ", q=*:*, fl=\"id,a_s,a_i,a_f, s_multi, i_multi\", qt=\"/export\", sort=\"a_s asc\")"); stream = new CloudSolrStream(expression, factory); stream.setStreamContext(streamContext); tuples = getTuples(stream); assert (tuples.size() == 5); assertOrder(tuples, 0, 1, 2, 3, 4); //test sort(desc) with null string field. Null should sort to the bottom. expression = StreamExpressionParser.parse("search(" + COLLECTIONORALIAS + ", q=*:*, fl=\"id,a_s,a_i,a_f, s_multi, i_multi\", qt=\"/export\", sort=\"a_s desc\")"); stream = new CloudSolrStream(expression, factory); stream.setStreamContext(streamContext); tuples = getTuples(stream); assert (tuples.size() == 5); assertOrder(tuples, 4, 3, 2, 1, 0); } finally { solrClientCache.close(); } }
Example 3
Source File: GraphMLResponseWriter.java From lucene-solr with Apache License 2.0 | 4 votes |
public void write(Writer writer, SolrQueryRequest req, SolrQueryResponse res) throws IOException { Exception e1 = res.getException(); if(e1 != null) { e1.printStackTrace(new PrintWriter(writer)); return; } TupleStream stream = (TupleStream)req.getContext().get("stream"); if(stream instanceof GraphHandler.DummyErrorStream) { GraphHandler.DummyErrorStream d = (GraphHandler.DummyErrorStream)stream; Exception e = d.getException(); e.printStackTrace(new PrintWriter(writer)); return; } Traversal traversal = (Traversal)req.getContext().get("traversal"); PrintWriter printWriter = new PrintWriter(writer); try { stream.open(); Tuple tuple = null; int edgeCount = 0; printWriter.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); printWriter.println("<graphml xmlns=\"http://graphml.graphdrawing.org/xmlns\" "); printWriter.println("xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "); printWriter.print("xsi:schemaLocation=\"http://graphml.graphdrawing.org/xmlns "); printWriter.println("http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd\">"); printWriter.println("<graph id=\"G\" edgedefault=\"directed\">"); while (true) { //Output the graph tuple = stream.read(); if (tuple.EOF) { break; } String id = tuple.getString("node"); if (traversal.isMultiCollection()) { id = tuple.getString("collection") + "." + id; } printWriter.write("<node id=\""+ xmlEscape(id)+"\""); List<String> outfields = new ArrayList<>(); Iterator<Object> keys = tuple.getFields().keySet().iterator(); while(keys.hasNext()) { String key = String.valueOf(keys.next()); if(key.equals("node") || key.equals("ancestors") || key.equals("collection")) { continue; } else { outfields.add(key); } } if (outfields.size() > 0) { printWriter.println(">"); for (String nodeAttribute : outfields) { Object o = tuple.get(nodeAttribute); if (o != null) { printWriter.println("<data key=\"" + xmlEscape(nodeAttribute) + "\">" + xmlEscape(o.toString()) + "</data>"); } } printWriter.println("</node>"); } else { printWriter.println("/>"); } List<String> ancestors = tuple.getStrings("ancestors"); if(ancestors != null) { for (String ancestor : ancestors) { ++edgeCount; printWriter.write("<edge id=\"" + edgeCount + "\" "); printWriter.write(" source=\"" + xmlEscape(ancestor) + "\" "); printWriter.println(" target=\"" + xmlEscape(id) + "\"/>"); } } } printWriter.write("</graph></graphml>"); } finally { stream.close(); } }