summaryrefslogtreecommitdiffstats
path: root/searchcore/util/showschema.pl
diff options
context:
space:
mode:
Diffstat (limited to 'searchcore/util/showschema.pl')
-rw-r--r--searchcore/util/showschema.pl38
1 files changed, 38 insertions, 0 deletions
diff --git a/searchcore/util/showschema.pl b/searchcore/util/showschema.pl
new file mode 100644
index 00000000000..4cd4fb8c310
--- /dev/null
+++ b/searchcore/util/showschema.pl
@@ -0,0 +1,38 @@
+#!/usr/bin/perl
+# Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+while ( <STDIN> ) {
+ if ( m/^indexfield\[(\d+)\]$/ ) {
+ $numfields = $1;
+ print "$numfields fields\n";
+ next;
+ }
+ if ( m/^indexfield\[(\d+)\]\.(\w+) (.*)$/ ) {
+ $ifield[$1]{$2} = $3;
+ next;
+ }
+ if ( m/^fieldcollection\[(\d+)\]$/ ) {
+ $numfc = $1;
+ }
+ if ( m/^fieldcollection\[(\d+)\]\.name (.*)$/ ) {
+ $fieldcoll[$1]{name} = $2;
+ next;
+ }
+ if ( m/^fieldcollection\[(\d+)\]\.field\[\d+\]$/ ) {
+# $fieldcoll[$1]{fields} = [ ];
+ next;
+ }
+ if ( m/^fieldcollection\[(\d+)\]\.field\[\d+\]\.name (.*)$/ ) {
+ push(@{$fieldcoll[$1]{fields}}, $2);
+ next;
+ }
+}
+for ( $f = 0; $f < $numfields; ++$f) {
+ printf "indexfield %s %s %s %s %s %s\n",
+ $ifield[$f]{name}, $ifield[$f]{datatype}, $ifield[$f]{collectiontype},
+ $ifield[$f]{prefix}, $ifield[$f]{phrases}, $ifield[$f]{positions};
+}
+for ($fc = 0; $fc < $numfc; ++$fc) {
+ printf "fieldcoll %s -> %s\n", $fieldcoll[$fc]{name},
+ join(' ', @{$fieldcoll[$fc]{fields}});
+}