You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jb...@apache.org on 2019/12/09 19:49:56 UTC

[lucene-solr] 01/02: SOLR-13635: Add basic support for parsing searcher openings and updates

This is an automated email from the ASF dual-hosted git repository.

jbernste pushed a commit to branch SOLR-13635-solrlogstream
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git

commit 3594c785cfc47ca1cb22a0f8fec4d3466f8494a2
Author: Joel Bernstein <jb...@apache.org>
AuthorDate: Wed Dec 4 13:31:31 2019 -0500

    SOLR-13635: Add basic support for parsing searcher openings and updates
---
 .../solr/client/solrj/io/stream/SolrLogStream.java | 36 ++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/SolrLogStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/SolrLogStream.java
index db9ccbc..db5a187 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/SolrLogStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/SolrLogStream.java
@@ -137,6 +137,10 @@ public class SolrLogStream extends TupleStream implements Expressible {
 
         if (line.contains("QTime=")) {
           t = parseQueryRecord(line);
+        } else if(line.contains("Registered new searcher")) {
+          t = parseNewSearch(line);
+        } else if(line.contains("path=/update")) {
+          t = parseUpdate(line);
         } else {
           continue;
         }
@@ -203,6 +207,17 @@ public class SolrLogStream extends TupleStream implements Expressible {
     return tuple;
   }
 
+  private Tuple parseNewSearch(String line) {
+
+    String[] parts = line.split("\\s+");
+    Tuple tuple = new Tuple();
+    tuple.put("date_dt", parts[0]);
+    tuple.put("core_s", parseNewSearcherCollection(line));
+    tuple.put("new_searcher", "true");
+
+    return tuple;
+  }
+
   private String parseCollection(String line) {
     char[] ca = {',', '}'};
     String parts[] = line.split("collection=c:");
@@ -213,6 +228,27 @@ public class SolrLogStream extends TupleStream implements Expressible {
     }
   }
 
+  private Tuple parseUpdate(String line) {
+    String[] parts = line.split("\\s+");
+    Tuple tuple = new Tuple();
+    tuple.put("date_dt", parts[0]);
+    tuple.put("update_s", "true");
+    tuple.put("collection_s", parseCollection(line));
+    tuple.put("core_s", parseCore(line));
+    tuple.put("node_s", parseNode(line));
+    return tuple;
+  }
+
+  private String parseNewSearcherCollection(String line) {
+    char[] ca = {']'};
+    String parts[] = line.split("\\[");
+    if(parts.length > 3) {
+      return readUntil(parts[2], ca);
+    } else {
+      return null;
+    }
+  }
+
   private String parseCore(String line) {
     char[] ca = {',', '}'};
     String parts[] = line.split("core=x:");