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:");