You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sa...@apache.org on 2018/07/17 21:12:38 UTC

[03/48] lucene-solr:jira/lucene-2562: Add luke as a sub-module.

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/dc72c4a0/lucene/luke/src/resources/fxml/dialog/menubar/checkindex.fxml
----------------------------------------------------------------------
diff --git a/lucene/luke/src/resources/fxml/dialog/menubar/checkindex.fxml b/lucene/luke/src/resources/fxml/dialog/menubar/checkindex.fxml
new file mode 100644
index 0000000..6c1b768
--- /dev/null
+++ b/lucene/luke/src/resources/fxml/dialog/menubar/checkindex.fxml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.scene.image.*?>
+<?import javafx.geometry.*?>
+<?import javafx.scene.control.*?>
+<?import javafx.scene.layout.*?>
+
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<AnchorPane prefHeight="600.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
+            fx:controller="org.apache.lucene.luke.app.controllers.dialog.menubar.CheckIndexController">
+  <children>
+    <Label layoutX="14.0" layoutY="14.0" text="%checkidx.label.index_path" AnchorPane.leftAnchor="10.0"
+           AnchorPane.topAnchor="10.0"/>
+    <Label fx:id="dirPath" layoutX="200.0" layoutY="10.0" AnchorPane.leftAnchor="200.0" AnchorPane.topAnchor="10.0"/>
+    <Label layoutX="14.0" layoutY="14.0" text="%checkidx.label.results" AnchorPane.leftAnchor="10.0"
+           AnchorPane.topAnchor="40.0"/>
+    <Label fx:id="results" layoutX="200.0" layoutY="10.0" text="?" AnchorPane.leftAnchor="30.0"
+           AnchorPane.topAnchor="60.0"/>
+
+    <Button fx:id="check" layoutX="10.0" layoutY="10.0" mnemonicParsing="false" text="%checkidx.button.check"
+            AnchorPane.rightAnchor="80.0" AnchorPane.topAnchor="80.0">
+      <graphic>
+        <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+          <image>
+            <Image url="@/img/icon_search_alt.png"/>
+          </image>
+        </ImageView>
+      </graphic>
+    </Button>
+    <Button fx:id="close" mnemonicParsing="false" text="%button.close" AnchorPane.rightAnchor="20.0"
+            AnchorPane.topAnchor="80.0"/>
+    <Button fx:id="repair" layoutX="9.0" layoutY="179.0" mnemonicParsing="false" text="%checkidx.button.fix"
+            AnchorPane.topAnchor="140.0">
+      <graphic>
+        <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+          <image>
+            <Image url="@/img/icon_tool.png"/>
+          </image>
+        </ImageView>
+      </graphic>
+    </Button>
+    <Label fx:id="repairWarn" layoutX="167.0" layoutY="165.0" prefHeight="60.0" prefWidth="400.0"
+           text="%checkidx.label.warn" wrapText="true" AnchorPane.topAnchor="130.0"/>
+    <Separator prefWidth="200.0" AnchorPane.leftAnchor="10.0" AnchorPane.rightAnchor="10.0"
+               AnchorPane.topAnchor="120.0"/>
+    <Label text="%checkidx.label.note" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="200.0"/>
+    <FlowPane layoutX="13.0" layoutY="168.0" prefHeight="30.0" prefWidth="200.0" AnchorPane.leftAnchor="0.0"
+              AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="220.0">
+      <children>
+        <Label text="%label.status">
+          <FlowPane.margin>
+            <Insets left="10.0"/>
+          </FlowPane.margin>
+        </Label>
+        <Label fx:id="status" text="Idle">
+          <FlowPane.margin>
+            <Insets left="10.0"/>
+          </FlowPane.margin>
+        </Label>
+        <Pane fx:id="indicatorPane">
+          <children>
+          </children>
+          <FlowPane.margin>
+            <Insets left="10.0"/>
+          </FlowPane.margin>
+        </Pane>
+      </children>
+    </FlowPane>
+    <TextArea fx:id="info" editable="false" layoutX="7.0" layoutY="197.0" prefHeight="200.0" prefWidth="200.0"
+              AnchorPane.bottomAnchor="10.0" AnchorPane.leftAnchor="10.0" AnchorPane.rightAnchor="10.0"
+              AnchorPane.topAnchor="250.0"/>
+
+
+  </children>
+</AnchorPane>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/dc72c4a0/lucene/luke/src/resources/fxml/dialog/menubar/openindex.fxml
----------------------------------------------------------------------
diff --git a/lucene/luke/src/resources/fxml/dialog/menubar/openindex.fxml b/lucene/luke/src/resources/fxml/dialog/menubar/openindex.fxml
new file mode 100644
index 0000000..bd9208f
--- /dev/null
+++ b/lucene/luke/src/resources/fxml/dialog/menubar/openindex.fxml
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.*?>
+<?import javafx.scene.control.*?>
+<?import javafx.scene.image.*?>
+<?import javafx.scene.layout.*?>
+
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<AnchorPane prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
+            fx:controller="org.apache.lucene.luke.app.controllers.dialog.menubar.OpenIndexController">
+  <children>
+    <VBox prefHeight="300.0" prefWidth="500.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0"
+          AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+      <children>
+        <AnchorPane prefHeight="90.0" prefWidth="600.0" VBox.vgrow="SOMETIMES">
+          <children>
+            <FlowPane prefHeight="40.0" prefWidth="600.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"
+                      AnchorPane.topAnchor="0.0">
+              <children>
+                <Label text="%openindex.label.index_path">
+                  <FlowPane.margin>
+                    <Insets left="10.0" right="10.0" top="10.0"/>
+                  </FlowPane.margin>
+                </Label>
+                <ChoiceBox fx:id="indexPath" prefWidth="320.0">
+                  <FlowPane.margin>
+                    <Insets right="10.0" top="10.0"/>
+                  </FlowPane.margin>
+                </ChoiceBox>
+                <Button fx:id="browse" mnemonicParsing="false" text="Browse">
+                  <FlowPane.margin>
+                    <Insets right="10.0" top="10.0"/>
+                  </FlowPane.margin>
+                  <graphic>
+                    <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+                      <image>
+                        <Image url="@/img/icon_folder-open_alt.png"/>
+                      </image>
+                    </ImageView>
+                  </graphic>
+                </Button>
+              </children>
+            </FlowPane>
+            <FlowPane layoutX="5.0" layoutY="50.0" prefHeight="40.0" prefWidth="600.0" AnchorPane.leftAnchor="0.0"
+                      AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="40.0">
+              <children>
+                <CheckBox fx:id="readOnly" mnemonicParsing="false" text="%openindex.checkbox.readonly">
+                  <FlowPane.margin>
+                    <Insets left="10.0" right="10.0" top="10.0"/>
+                  </FlowPane.margin>
+                </CheckBox>
+                <ImageView fitHeight="12.0" fitWidth="12.0" pickOnBounds="true" preserveRatio="true">
+                  <FlowPane.margin>
+                    <Insets top="10.0"/>
+                  </FlowPane.margin>
+                  <image>
+                    <Image url="@/img/icon_lock.png"/>
+                  </image>
+                </ImageView>
+              </children>
+            </FlowPane>
+            <Separator prefWidth="200.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0"
+                       AnchorPane.rightAnchor="0.0"/>
+          </children>
+        </AnchorPane>
+        <AnchorPane prefHeight="150.0" prefWidth="200.0" VBox.vgrow="SOMETIMES">
+          <children>
+            <Label text="%openindex.label.expert" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="10.0"/>
+            <FlowPane prefHeight="40.0" prefWidth="200.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"
+                      AnchorPane.topAnchor="40.0">
+              <children>
+                <Label text="Directory implementation:">
+                  <FlowPane.margin>
+                    <Insets left="10.0" right="10.0"/>
+                  </FlowPane.margin>
+                </Label>
+                <ChoiceBox fx:id="dirImpl" prefWidth="350.0">
+                  <FlowPane.margin>
+                    <Insets right="10.0"/>
+                  </FlowPane.margin>
+                </ChoiceBox>
+              </children>
+            </FlowPane>
+            <FlowPane layoutX="10.0" layoutY="90.0" prefHeight="28.0" prefWidth="600.0" AnchorPane.leftAnchor="0.0"
+                      AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="80.0">
+              <children>
+                <CheckBox fx:id="noReader" layoutX="20.0" layoutY="10.0" mnemonicParsing="false"
+                          text="%openindex.checkbox.no_reader">
+                  <FlowPane.margin>
+                    <Insets left="10.0"/>
+                  </FlowPane.margin>
+                </CheckBox>
+                <ImageView fitHeight="12.0" fitWidth="12.0" pickOnBounds="true" preserveRatio="true">
+                  <image>
+                    <Image url="@/img/icon_cone.png"/>
+                  </image>
+                  <FlowPane.margin>
+                    <Insets left="10.0"/>
+                  </FlowPane.margin>
+                </ImageView>
+              </children>
+            </FlowPane>
+            <FlowPane layoutY="108.0" prefHeight="28.0" prefWidth="600.0" AnchorPane.leftAnchor="0.0"
+                      AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="140.0">
+              <children>
+                <Label text="IndexWriter config:">
+                  <FlowPane.margin>
+                    <Insets left="10.0"/>
+                  </FlowPane.margin>
+                </Label>
+              </children>
+            </FlowPane>
+            <FlowPane layoutX="-4.0" layoutY="124.0" prefHeight="28.0" prefWidth="600.0" AnchorPane.leftAnchor="0.0"
+                      AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="170.0">
+              <children>
+                <CheckBox fx:id="useCompound" mnemonicParsing="false" text="%openindex.checkbox.use_compound">
+                  <FlowPane.margin>
+                    <Insets left="30.0" right="10.0"/>
+                  </FlowPane.margin>
+                </CheckBox>
+              </children>
+            </FlowPane>
+            <FlowPane layoutX="6.0" layoutY="150.0" prefHeight="28.0" prefWidth="600.0" AnchorPane.leftAnchor="0.0"
+                      AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="200.0">
+              <children>
+                <RadioButton fx:id="keepLastCommit" mnemonicParsing="false"
+                             text="%openindex.radio.keep_only_last_commit" userData="last">
+                  <FlowPane.margin>
+                    <Insets left="30.0"/>
+                  </FlowPane.margin>
+                  <toggleGroup>
+                    <ToggleGroup fx:id="keepCommitsGroup"/>
+                  </toggleGroup>
+                </RadioButton>
+                <RadioButton fx:id="keepAllCommits" layoutX="40.0" layoutY="10.0" mnemonicParsing="false"
+                             text="%openindex.radio.keep_all_commits" toggleGroup="$keepCommitsGroup" userData="all">
+                  <FlowPane.margin>
+                    <Insets left="10.0"/>
+                  </FlowPane.margin>
+                </RadioButton>
+              </children>
+            </FlowPane>
+            <Separator prefWidth="200.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0"
+                       AnchorPane.rightAnchor="0.0"/>
+          </children>
+        </AnchorPane>
+        <AnchorPane prefHeight="60.0" prefWidth="600.0" VBox.vgrow="NEVER">
+          <children>
+            <FlowPane prefHeight="200.0" prefWidth="600.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="400.0"
+                      AnchorPane.rightAnchor="20.0" AnchorPane.topAnchor="10.0">
+              <children>
+                <Button fx:id="ok" mnemonicParsing="false" prefWidth="50.0" text="%button.ok">
+                  <FlowPane.margin>
+                    <Insets right="20.0"/>
+                  </FlowPane.margin>
+                </Button>
+                <Button fx:id="cancel" layoutX="10.0" layoutY="10.0" mnemonicParsing="false" prefWidth="80.0"
+                        text="%button.cancel">
+                </Button>
+              </children>
+            </FlowPane>
+          </children>
+        </AnchorPane>
+      </children>
+    </VBox>
+  </children>
+</AnchorPane>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/dc72c4a0/lucene/luke/src/resources/fxml/dialog/menubar/optimize.fxml
----------------------------------------------------------------------
diff --git a/lucene/luke/src/resources/fxml/dialog/menubar/optimize.fxml b/lucene/luke/src/resources/fxml/dialog/menubar/optimize.fxml
new file mode 100644
index 0000000..da41acd
--- /dev/null
+++ b/lucene/luke/src/resources/fxml/dialog/menubar/optimize.fxml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.*?>
+<?import javafx.scene.control.*?>
+<?import javafx.scene.layout.*?>
+<?import javafx.scene.image.*?>
+
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<AnchorPane prefHeight="600.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
+            fx:controller="org.apache.lucene.luke.app.controllers.dialog.menubar.OptimizeController">
+  <children>
+    <Label layoutX="14.0" layoutY="14.0" text="%optimize.label.index_path" AnchorPane.leftAnchor="10.0"
+           AnchorPane.topAnchor="10.0"/>
+    <Label fx:id="dirPath" layoutX="200.0" layoutY="10.0" AnchorPane.leftAnchor="200.0" AnchorPane.topAnchor="10.0"/>
+    <CheckBox fx:id="expunge" layoutX="14.0" layoutY="43.0" mnemonicParsing="false" text="%optimize.checkbox.expunge"
+              AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="40.0"/>
+    <Label text="%optimize.label.max_segments" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="70.0"/>
+    <Spinner fx:id="numSegments" editable="true" layoutX="5.0" layoutY="142.0" prefHeight="28.0" prefWidth="60.0"
+             AnchorPane.leftAnchor="150.0" AnchorPane.topAnchor="70.0"/>
+    <Button fx:id="optimize" layoutX="10.0" layoutY="10.0" mnemonicParsing="false" text="%optimize.button.optimize"
+            AnchorPane.rightAnchor="80.0" AnchorPane.topAnchor="100.0">
+      <graphic>
+        <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+          <image>
+            <Image url="@/img/icon_balance.png"/>
+          </image>
+        </ImageView>
+      </graphic>
+    </Button>
+    <Button fx:id="close" mnemonicParsing="false" text="%button.close" AnchorPane.rightAnchor="20.0"
+            AnchorPane.topAnchor="100.0"/>
+    <Separator prefWidth="200.0" AnchorPane.leftAnchor="10.0" AnchorPane.rightAnchor="10.0"
+               AnchorPane.topAnchor="150.0"/>
+    <Label text="%optimize.label.note" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="160.0"/>
+    <FlowPane layoutX="13.0" layoutY="168.0" prefHeight="30.0" prefWidth="200.0" AnchorPane.leftAnchor="0.0"
+              AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="200.0">
+      <children>
+        <Label text="%label.status">
+          <FlowPane.margin>
+            <Insets left="10.0"/>
+          </FlowPane.margin>
+        </Label>
+        <Label fx:id="status" text="Idle">
+          <FlowPane.margin>
+            <Insets left="10.0"/>
+          </FlowPane.margin>
+        </Label>
+        <Pane fx:id="indicatorPane">
+          <children>
+          </children>
+          <FlowPane.margin>
+            <Insets left="10.0"/>
+          </FlowPane.margin>
+        </Pane>
+      </children>
+    </FlowPane>
+    <TextArea fx:id="info" editable="false" layoutX="7.0" layoutY="197.0" prefHeight="200.0" prefWidth="200.0"
+              AnchorPane.bottomAnchor="10.0" AnchorPane.leftAnchor="10.0" AnchorPane.rightAnchor="10.0"
+              AnchorPane.topAnchor="230.0"/>
+
+  </children>
+</AnchorPane>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/dc72c4a0/lucene/luke/src/resources/fxml/dialog/search/explanation.fxml
----------------------------------------------------------------------
diff --git a/lucene/luke/src/resources/fxml/dialog/search/explanation.fxml b/lucene/luke/src/resources/fxml/dialog/search/explanation.fxml
new file mode 100644
index 0000000..62ce400
--- /dev/null
+++ b/lucene/luke/src/resources/fxml/dialog/search/explanation.fxml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.*?>
+<?import javafx.scene.control.*?>
+<?import javafx.scene.layout.*?>
+
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<AnchorPane prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
+            fx:controller="org.apache.lucene.luke.app.controllers.dialog.search.ExplanationController">
+  <children>
+
+    <FlowPane layoutX="5.0" prefHeight="50.0" prefWidth="600.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"
+              AnchorPane.topAnchor="0.0">
+      <children>
+        <Label text="%search.explanation.description">
+          <FlowPane.margin>
+            <Insets left="10.0" top="10.0"/>
+          </FlowPane.margin>
+        </Label>
+        <Label fx:id="docNum">
+          <FlowPane.margin>
+            <Insets top="10.0" left="10.0"/>
+          </FlowPane.margin>
+        </Label>
+      </children>
+    </FlowPane>
+    <TreeView fx:id="tree" layoutX="7.0" layoutY="39.0" prefHeight="200.0" prefWidth="200.0"
+              AnchorPane.bottomAnchor="50.0" AnchorPane.leftAnchor="20.0" AnchorPane.rightAnchor="20.0"
+              AnchorPane.topAnchor="50.0"/>
+    <Button fx:id="copy" mnemonicParsing="false" text="%button.copy" AnchorPane.bottomAnchor="10.0"
+            AnchorPane.rightAnchor="100.0"/>
+    <Button fx:id="close" mnemonicParsing="false" text="%button.close" AnchorPane.bottomAnchor="10.0"
+            AnchorPane.rightAnchor="20.0"/>
+  </children>
+</AnchorPane>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/dc72c4a0/lucene/luke/src/resources/fxml/dialog/warn.fxml
----------------------------------------------------------------------
diff --git a/lucene/luke/src/resources/fxml/dialog/warn.fxml b/lucene/luke/src/resources/fxml/dialog/warn.fxml
new file mode 100644
index 0000000..673ca54
--- /dev/null
+++ b/lucene/luke/src/resources/fxml/dialog/warn.fxml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.*?>
+<?import javafx.scene.layout.*?>
+
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<AnchorPane prefHeight="200.0" prefWidth="400.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
+            fx:controller="org.apache.lucene.luke.app.controllers.dialog.WarnController">
+  <children>
+    <Label fx:id="message" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" wrapText="true"
+           AnchorPane.bottomAnchor="50.0" AnchorPane.leftAnchor="20.0" AnchorPane.rightAnchor="20.0"
+           AnchorPane.topAnchor="20.0"/>
+    <FlowPane alignment="TOP_RIGHT" prefHeight="40.0" prefWidth="200.0" AnchorPane.bottomAnchor="0.0"
+              AnchorPane.leftAnchor="10.0" AnchorPane.rightAnchor="10.0">
+      <children>
+        <Button fx:id="close" mnemonicParsing="false" text="%button.close">
+          <FlowPane.margin>
+            <Insets left="20.0"/>
+          </FlowPane.margin>
+        </Button>
+      </children>
+    </FlowPane>
+  </children>
+</AnchorPane>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/dc72c4a0/lucene/luke/src/resources/fxml/documents.fxml
----------------------------------------------------------------------
diff --git a/lucene/luke/src/resources/fxml/documents.fxml b/lucene/luke/src/resources/fxml/documents.fxml
new file mode 100644
index 0000000..82cad30
--- /dev/null
+++ b/lucene/luke/src/resources/fxml/documents.fxml
@@ -0,0 +1,224 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import java.lang.*?>
+<?import javafx.geometry.*?>
+<?import javafx.scene.image.*?>
+<?import javafx.scene.control.*?>
+<?import javafx.scene.layout.*?>
+
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0"
+            prefWidth="830.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"
+            AnchorPane.topAnchor="0.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
+            fx:controller="org.apache.lucene.luke.app.controllers.DocumentsController">
+  <children>
+    <SplitPane dividerPositions="0.4" orientation="VERTICAL" prefHeight="600.0" prefWidth="830.0"
+               AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"
+               AnchorPane.topAnchor="0.0">
+      <items>
+        <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="100.0" prefWidth="160.0">
+          <children>
+            <HBox prefHeight="235.0" prefWidth="828.0" AnchorPane.bottomAnchor="0.0"
+                  AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+              <children>
+                <AnchorPane prefHeight="235.0" prefWidth="200.0">
+                  <children>
+                    <Label layoutX="10.0" layoutY="5.0" text="%documents.label.browse_doc_by_idx"
+                           AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="5.0"/>
+                    <FlowPane prefHeight="50.0" prefWidth="200.0" AnchorPane.leftAnchor="5.0"
+                              AnchorPane.rightAnchor="5.0" AnchorPane.topAnchor="30.0">
+                      <children>
+                        <Spinner fx:id="docNum" editable="true" layoutX="5.0" layoutY="142.0"
+                                 prefHeight="28.0" prefWidth="130.0"
+                                 styleClass="split-arrows-horizontal"
+                                 AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="30.0">
+                        </Spinner>
+                        <Label fx:id="maxDocs" text="in ? docs">
+                          <FlowPane.margin>
+                            <Insets left="10.0"/>
+                          </FlowPane.margin>
+                        </Label>
+                      </children>
+                    </FlowPane>
+
+                    <Hyperlink fx:id="mltSearch" layoutX="85.0" layoutY="75.0"
+                               text="%documents.hyperlink.mlt" AnchorPane.rightAnchor="10.0"/>
+                    <Button fx:id="addDoc" mnemonicParsing="false" text="%documents.button.add"
+                            AnchorPane.bottomAnchor="50" AnchorPane.rightAnchor="10.0">
+                      <graphic>
+                        <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true"
+                                   preserveRatio="true">
+                          <image>
+                            <Image url="@/img/icon_plus-box.png"/>
+                          </image>
+                        </ImageView>
+                      </graphic>
+                    </Button>
+                    <Separator layoutX="181.0" layoutY="3.0" orientation="VERTICAL"
+                               prefHeight="229.0" prefWidth="9.0" AnchorPane.rightAnchor="0.0"/>
+                  </children>
+                </AnchorPane>
+                <AnchorPane prefHeight="235.0" prefWidth="320.0">
+                  <children>
+                    <Label layoutX="10.0" layoutY="5.0" text="%documents.label.browse_terms"
+                           AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="5.0"/>
+                    <ChoiceBox fx:id="field" layoutX="10.0" layoutY="29.0" prefHeight="28.0"
+                               prefWidth="120.0" AnchorPane.leftAnchor="5.0"
+                               AnchorPane.topAnchor="30.0"/>
+                    <Separator layoutX="316.0" orientation="VERTICAL" prefHeight="235.0"
+                               prefWidth="9.0" AnchorPane.rightAnchor="0.0"/>
+                    <FlowPane layoutX="13.0" layoutY="59.0" prefHeight="150.0" prefWidth="200.0"
+                              AnchorPane.bottomAnchor="5.0" AnchorPane.leftAnchor="5.0"
+                              AnchorPane.rightAnchor="5.0" AnchorPane.topAnchor="70.0">
+                      <children>
+                        <Button fx:id="firstTerm" mnemonicParsing="false" prefHeight="28.0"
+                                prefWidth="110.0" text="%documents.button.first_term">
+                          <FlowPane.margin>
+                            <Insets right="10.0"/>
+                          </FlowPane.margin>
+                          <graphic>
+                            <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true"
+                                       preserveRatio="true">
+                              <image>
+                                <Image url="@/img/arrow_carrot-2left.png"/>
+                              </image>
+                            </ImageView>
+                          </graphic>
+                        </Button>
+                        <TextField fx:id="term" prefHeight="28.0" prefWidth="120.0">
+                          <FlowPane.margin>
+                            <Insets right="10.0"/>
+                          </FlowPane.margin>
+                        </TextField>
+                        <Button fx:id="nextTerm" mnemonicParsing="false"
+                                text="%documents.button.next"/>
+                      </children>
+                    </FlowPane>
+                  </children>
+                </AnchorPane>
+                <AnchorPane maxWidth="1.7976931348623157E308" prefHeight="235.0" prefWidth="310.0">
+                  <children>
+                    <Label layoutX="10.0" layoutY="5.0" text="%documents.label.browse_doc_by_term"
+                           AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="5.0"/>
+                    <TextField fx:id="showedTerm" editable="false" layoutY="31.0" prefHeight="28.0"
+                               prefWidth="120.0" AnchorPane.leftAnchor="5.0"
+                               AnchorPane.topAnchor="30.0"/>
+                    <FlowPane prefHeight="50.0" prefWidth="200.0" AnchorPane.leftAnchor="5.0"
+                              AnchorPane.rightAnchor="5.0" AnchorPane.topAnchor="70.0">
+                      <children>
+                        <Button fx:id="firstTermDoc" mnemonicParsing="false" prefHeight="28.0"
+                                prefWidth="110.0" text="%documents.button.first_termdoc">
+                          <FlowPane.margin>
+                            <Insets right="10.0"/>
+                          </FlowPane.margin>
+                          <graphic>
+                            <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true"
+                                       preserveRatio="true">
+                              <image>
+                                <Image url="@/img/arrow_carrot-2left.png"/>
+                              </image>
+                            </ImageView>
+                          </graphic>
+                        </Button>
+                        <TextField fx:id="termDocIdx" editable="false" prefHeight="28.0"
+                                   prefWidth="50.0">
+                          <FlowPane.margin>
+                            <Insets right="10.0"/>
+                          </FlowPane.margin>
+                        </TextField>
+                        <Button fx:id="nextTermDoc" mnemonicParsing="false"
+                                text="%documents.button.next">
+                          <FlowPane.margin>
+                            <Insets right="10.0"/>
+                          </FlowPane.margin>
+                        </Button>
+                        <Label fx:id="termDocsNum" prefHeight="18.0" prefWidth="120.0"
+                               text="in ? docs">
+                          <FlowPane.margin>
+                            <Insets right="10.0"/>
+                          </FlowPane.margin>
+                        </Label>
+                      </children>
+                    </FlowPane>
+                    <TableView fx:id="posTable" layoutX="10.0" layoutY="106.0"
+                               maxHeight="1.7976931348623157E308" maxWidth="-Infinity"
+                               minWidth="-Infinity" prefHeight="235.0" prefWidth="380.0"
+                               AnchorPane.bottomAnchor="5.0" AnchorPane.leftAnchor="5.0"
+                               AnchorPane.rightAnchor="5.0" AnchorPane.topAnchor="110.0">
+                      <columns>
+                        <TableColumn fx:id="posColumn" maxWidth="-Infinity" minWidth="80.0"
+                                     prefWidth="60.0" resizable="false" sortable="false"
+                                     text="Position"/>
+                        <TableColumn fx:id="offsetColumn" maxWidth="100.0" minWidth="120.0"
+                                     prefWidth="100.0" resizable="false" sortable="false"
+                                     text="Offsets"/>
+                        <TableColumn fx:id="payloadColumn" maxWidth="1.7976931348623157E308"
+                                     minWidth="170.0" prefWidth="160.0" sortable="false"
+                                     text="Payload"/>
+                      </columns>
+                    </TableView>
+                  </children>
+                  <HBox.margin>
+                    <Insets/>
+                  </HBox.margin>
+                </AnchorPane>
+              </children>
+            </HBox>
+          </children>
+        </AnchorPane>
+        <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="100.0" prefWidth="160.0">
+          <children>
+            <Label text="%documents.label.doc_num">
+              <padding>
+                <Insets left="10.0" top="10.0"/>
+              </padding>
+              <graphic>
+                <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+                  <image>
+                    <Image url="@/img/icon_document_alt.png"/>
+                  </image>
+                </ImageView>
+              </graphic>
+            </Label>
+            <Label fx:id="showedDocNum" layoutX="130.0" layoutY="6.0" prefHeight="28.0" prefWidth="55.0"/>
+            <TableView fx:id="documentTable" layoutX="12.0" layoutY="49.0"
+                       maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308"
+                       prefHeight="309.0" prefWidth="810.0" AnchorPane.bottomAnchor="5.0"
+                       AnchorPane.leftAnchor="10.0" AnchorPane.rightAnchor="10.0"
+                       AnchorPane.topAnchor="40.0">
+              <columns>
+                <TableColumn fx:id="fieldColumn" editable="false" minWidth="120.0" prefWidth="120.0"
+                             text="Field"/>
+                <TableColumn fx:id="flagColumn" editable="false" maxWidth="180.0" minWidth="180.0"
+                             prefWidth="180.0" sortable="false"/>
+                <TableColumn fx:id="normColumn" editable="false" minWidth="50.0" prefWidth="50.0"
+                             sortable="false" text="Norm"/>
+                <TableColumn fx:id="valueColumn" editable="false" maxWidth="1.7976931348623157E308"
+                             minWidth="520.0" prefWidth="520.0" sortable="false" text="Value"/>
+              </columns>
+              <columnResizePolicy>
+                <TableView fx:constant="CONSTRAINED_RESIZE_POLICY"/>
+              </columnResizePolicy>
+            </TableView>
+          </children>
+        </AnchorPane>
+      </items>
+    </SplitPane>
+  </children>
+</AnchorPane>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/dc72c4a0/lucene/luke/src/resources/fxml/fragments/analysis/analysis_custom.fxml
----------------------------------------------------------------------
diff --git a/lucene/luke/src/resources/fxml/fragments/analysis/analysis_custom.fxml b/lucene/luke/src/resources/fxml/fragments/analysis/analysis_custom.fxml
new file mode 100644
index 0000000..8f6842a
--- /dev/null
+++ b/lucene/luke/src/resources/fxml/fragments/analysis/analysis_custom.fxml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.scene.control.*?>
+<?import javafx.scene.layout.*?>
+<?import javafx.scene.image.*?>
+
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="250.0"
+            prefWidth="900.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
+            fx:controller="org.apache.lucene.luke.app.controllers.fragments.analysis.CustomAnalyzerController">
+  <children>
+    <SplitPane dividerPositions="0.15" prefHeight="80.0" prefWidth="780.0" AnchorPane.leftAnchor="10.0"
+               AnchorPane.rightAnchor="10.0" AnchorPane.topAnchor="0.0">
+      <items>
+        <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="120.0">
+          <children>
+            <Label layoutX="14.0" layoutY="20.0" text="%analysis_custom.label.charfilters" AnchorPane.leftAnchor="20.0"
+                   AnchorPane.topAnchor="10.0"/>
+          </children>
+        </AnchorPane>
+        <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="100.0" prefWidth="100.0">
+          <children>
+            <Label text="%analysis_custom.label.selected" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="5.0"/>
+            <ChoiceBox fx:id="charFilter" layoutX="68.0" layoutY="30.0" prefHeight="28.0" prefWidth="450.0"
+                       AnchorPane.bottomAnchor="5.0" AnchorPane.leftAnchor="100.0" AnchorPane.rightAnchor="120.0"/>
+            <Button fx:id="editCF" layoutX="675.0" layoutY="9.0" mnemonicParsing="false"
+                    text="%analysis_custom.label.edit" AnchorPane.rightAnchor="20.0" AnchorPane.topAnchor="5.0">
+              <graphic>
+                <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+                  <image>
+                    <Image url="@/img/icon_pencil.png"/>
+                  </image>
+                </ImageView>
+              </graphic>
+            </Button>
+            <ListView fx:id="selectedCFs" layoutX="62.0" layoutY="-95.0" prefHeight="30.0" prefWidth="636.0"
+                      AnchorPane.leftAnchor="100.0" AnchorPane.rightAnchor="120.0" AnchorPane.topAnchor="5.0"/>
+            <Label layoutX="10.0" layoutY="50.0" text="%analysis_custom.label.add" AnchorPane.bottomAnchor="10.0"
+                   AnchorPane.leftAnchor="10.0">
+              <graphic>
+                <ImageView fitHeight="12.0" fitWidth="12.0" pickOnBounds="true" preserveRatio="true">
+                  <image>
+                    <Image url="@/img/icon_plus.png"/>
+                  </image>
+                </ImageView>
+              </graphic>
+            </Label>
+
+          </children>
+        </AnchorPane>
+      </items>
+    </SplitPane>
+    <SplitPane dividerPositions="0.15" layoutY="80.0" prefHeight="80.0" prefWidth="780.0" AnchorPane.leftAnchor="10.0"
+               AnchorPane.rightAnchor="10.0">
+      <items>
+        <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="120.0">
+          <children>
+            <Label layoutX="14.0" layoutY="20.0" text="%analysis_custom.label.tokenizer" AnchorPane.leftAnchor="20.0"
+                   AnchorPane.topAnchor="10.0"/>
+          </children>
+        </AnchorPane>
+        <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="58.0" prefWidth="634.0">
+          <children>
+            <Label text="%analysis_custom.label.selected" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="5.0"/>
+            <ChoiceBox fx:id="tokenizer" layoutX="68.0" layoutY="30.0" prefWidth="450.0" AnchorPane.bottomAnchor="5.0"
+                       AnchorPane.leftAnchor="100.0" AnchorPane.rightAnchor="120.0"/>
+            <Button fx:id="editTkn" layoutX="675.0" layoutY="9.0" mnemonicParsing="false"
+                    text="%analysis_custom.label.edit" AnchorPane.rightAnchor="20.0" AnchorPane.topAnchor="5.0">
+              <graphic>
+                <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+                  <image>
+                    <Image url="@/img/icon_pencil.png"/>
+                  </image>
+                </ImageView>
+              </graphic>
+            </Button>
+            <TextField fx:id="selectedTkn" editable="false" layoutX="62.0" layoutY="-95.0" prefHeight="30.0"
+                       prefWidth="200.0" AnchorPane.leftAnchor="100.0" AnchorPane.rightAnchor="120.0"
+                       AnchorPane.topAnchor="5.0"/>
+            <Label layoutX="10.0" layoutY="50.0" text="%analysis_custom.label.set" AnchorPane.bottomAnchor="10.0"
+                   AnchorPane.leftAnchor="10.0">
+              <graphic>
+                <ImageView fitHeight="12.0" fitWidth="12.0" pickOnBounds="true" preserveRatio="true">
+                  <image>
+                    <Image url="@/img/icon_pushpin_alt.png"/>
+                  </image>
+                </ImageView>
+              </graphic>
+            </Label>
+          </children>
+        </AnchorPane>
+      </items>
+    </SplitPane>
+    <SplitPane dividerPositions="0.15" layoutY="160.0" prefHeight="80.0" prefWidth="780.0" AnchorPane.leftAnchor="10.0"
+               AnchorPane.rightAnchor="10.0">
+      <items>
+        <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="120.0">
+          <children>
+            <Label layoutX="14.0" layoutY="20.0" text="%analysis_custom.label.tokenfilters" AnchorPane.leftAnchor="20.0"
+                   AnchorPane.topAnchor="10.0"/>
+          </children>
+        </AnchorPane>
+        <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="0.0" prefWidth="100.0">
+          <children>
+            <Label text="%analysis_custom.label.selected" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="5.0"/>
+            <ChoiceBox fx:id="tokenFilter" layoutX="68.0" layoutY="30.0" prefWidth="150.0" AnchorPane.bottomAnchor="5.0"
+                       AnchorPane.leftAnchor="100.0" AnchorPane.rightAnchor="120.0"/>
+            <Button fx:id="editTF" layoutX="662.0" layoutY="9.0" mnemonicParsing="false"
+                    text="%analysis_custom.label.edit" AnchorPane.rightAnchor="20.0" AnchorPane.topAnchor="5.0">
+              <graphic>
+                <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+                  <image>
+                    <Image url="@/img/icon_pencil.png"/>
+                  </image>
+                </ImageView>
+              </graphic>
+            </Button>
+            <ListView fx:id="selectedTFs" layoutX="62.0" layoutY="-95.0" prefHeight="30.0" prefWidth="200.0"
+                      AnchorPane.leftAnchor="100.0" AnchorPane.rightAnchor="120.0" AnchorPane.topAnchor="5.0"/>
+            <Label layoutX="12.0" layoutY="50.0" text="%analysis_custom.label.add" AnchorPane.bottomAnchor="10.0"
+                   AnchorPane.leftAnchor="10.0">
+              <graphic>
+                <ImageView fitHeight="12.0" fitWidth="12.0" pickOnBounds="true" preserveRatio="true">
+                  <image>
+                    <Image url="@/img/icon_plus.png"/>
+                  </image>
+                </ImageView>
+              </graphic>
+            </Label>
+          </children>
+        </AnchorPane>
+      </items>
+    </SplitPane>
+  </children>
+</AnchorPane>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/dc72c4a0/lucene/luke/src/resources/fxml/fragments/analysis/analysis_preset.fxml
----------------------------------------------------------------------
diff --git a/lucene/luke/src/resources/fxml/fragments/analysis/analysis_preset.fxml b/lucene/luke/src/resources/fxml/fragments/analysis/analysis_preset.fxml
new file mode 100644
index 0000000..f3fcae7
--- /dev/null
+++ b/lucene/luke/src/resources/fxml/fragments/analysis/analysis_preset.fxml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.scene.control.*?>
+<?import javafx.scene.layout.*?>
+
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="200.0"
+            prefWidth="800.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
+            fx:controller="org.apache.lucene.luke.app.controllers.fragments.analysis.PresetAnalyzerController">
+  <children>
+    <Label text="%analysis_preset.label.preset" AnchorPane.leftAnchor="20.0" AnchorPane.topAnchor="10.0"/>
+    <ChoiceBox fx:id="presetAnalyzers" layoutX="14.0" layoutY="45.0" prefHeight="28.0" prefWidth="700.0"
+               AnchorPane.leftAnchor="20.0" AnchorPane.topAnchor="50.0"/>
+  </children>
+</AnchorPane>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/dc72c4a0/lucene/luke/src/resources/fxml/fragments/search/search_analyzer.fxml
----------------------------------------------------------------------
diff --git a/lucene/luke/src/resources/fxml/fragments/search/search_analyzer.fxml b/lucene/luke/src/resources/fxml/fragments/search/search_analyzer.fxml
new file mode 100644
index 0000000..9db7052
--- /dev/null
+++ b/lucene/luke/src/resources/fxml/fragments/search/search_analyzer.fxml
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.*?>
+<?import javafx.scene.control.*?>
+<?import javafx.scene.layout.*?>
+
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<ScrollPane hbarPolicy="NEVER" prefHeight="400.0" prefWidth="470.0" vbarPolicy="ALWAYS" AnchorPane.bottomAnchor="0.0"
+            AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"
+            xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
+            fx:controller="org.apache.lucene.luke.app.controllers.fragments.search.AnalyzerController">
+  <content>
+    <VBox>
+      <children>
+        <FlowPane prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="%search_analyzer.label.name">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </Label>
+            <Label fx:id="analyzerName">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </Label>
+            <Hyperlink fx:id="change" text="%search_analyzer.hyperlink.change">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </Hyperlink>
+          </children>
+        </FlowPane>
+        <VBox fx:id="analysisChain">
+          <children>
+            <Separator prefWidth="450.0">
+              <padding>
+                <Insets top="5.0"/>
+              </padding>
+            </Separator>
+            <FlowPane layoutX="10.0" layoutY="10.0" prefHeight="30.0" prefWidth="450.0">
+              <children>
+                <Label text="%search_analyzer.label.chain">
+                  <FlowPane.margin>
+                    <Insets left="10.0"/>
+                  </FlowPane.margin>
+                </Label>
+              </children>
+            </FlowPane>
+            <FlowPane layoutX="10.0" layoutY="10.0" prefHeight="30.0" prefWidth="450.0">
+              <children>
+                <Label text="%search_analyzer.label.charfilters">
+                  <FlowPane.margin>
+                    <Insets left="10.0"/>
+                  </FlowPane.margin>
+                </Label>
+              </children>
+              <VBox.margin>
+                <Insets top="5.0"/>
+              </VBox.margin>
+            </FlowPane>
+            <ListView fx:id="charFilters" prefHeight="20.0" prefWidth="200.0">
+              <VBox.margin>
+                <Insets left="30.0"/>
+              </VBox.margin>
+            </ListView>
+            <FlowPane prefHeight="30.0" prefWidth="450.0">
+              <children>
+                <Label text="%search_analyzer.label.tokenizer">
+                  <FlowPane.margin>
+                    <Insets left="10.0"/>
+                  </FlowPane.margin>
+                </Label>
+                <TextField fx:id="tokenizer" editable="false" prefWidth="350.0">
+                  <FlowPane.margin>
+                    <Insets left="10.0"/>
+                  </FlowPane.margin>
+                </TextField>
+              </children>
+              <VBox.margin>
+                <Insets top="5.0"/>
+              </VBox.margin>
+            </FlowPane>
+            <FlowPane prefHeight="30.0" prefWidth="450.0">
+              <children>
+                <Label text="%search_analyzer.label.tokenfilters">
+                  <FlowPane.margin>
+                    <Insets left="10.0"/>
+                  </FlowPane.margin>
+                </Label>
+              </children>
+              <VBox.margin>
+                <Insets top="5.0"/>
+              </VBox.margin>
+            </FlowPane>
+            <ListView fx:id="tokenFilters" prefHeight="20.0" prefWidth="200.0">
+              <VBox.margin>
+                <Insets left="30.0"/>
+              </VBox.margin>
+            </ListView>
+          </children>
+        </VBox>
+      </children>
+      <padding>
+        <Insets bottom="10.0" top="10.0"/>
+      </padding>
+    </VBox>
+  </content>
+</ScrollPane>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/dc72c4a0/lucene/luke/src/resources/fxml/fragments/search/search_mlt.fxml
----------------------------------------------------------------------
diff --git a/lucene/luke/src/resources/fxml/fragments/search/search_mlt.fxml b/lucene/luke/src/resources/fxml/fragments/search/search_mlt.fxml
new file mode 100644
index 0000000..04c37e3
--- /dev/null
+++ b/lucene/luke/src/resources/fxml/fragments/search/search_mlt.fxml
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.*?>
+<?import javafx.scene.control.*?>
+<?import javafx.scene.layout.*?>
+
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<ScrollPane hbarPolicy="NEVER" prefHeight="500.0" prefWidth="470.0" vbarPolicy="ALWAYS" AnchorPane.bottomAnchor="0.0"
+            AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"
+            xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
+            fx:controller="org.apache.lucene.luke.app.controllers.fragments.search.MLTController">
+  <content>
+    <VBox>
+      <children>
+        <FlowPane layoutX="10.0" layoutY="50.0" prefHeight="30.0" prefWidth="450.0">
+          <VBox.margin>
+            <Insets/>
+          </VBox.margin>
+          <children>
+            <Label text="%search_mlt.label.max_doc_freq">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </Label>
+            <TextField fx:id="maxDocFreq" minWidth="-Infinity" prefWidth="60.0">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </TextField>
+          </children>
+        </FlowPane>
+        <FlowPane layoutX="10.0" layoutY="50.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="%search_mlt.label.min_doc_freq">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </Label>
+            <TextField fx:id="minDocFreq" minWidth="-Infinity" prefWidth="60.0">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </TextField>
+          </children>
+        </FlowPane>
+        <FlowPane layoutX="10.0" layoutY="310.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="%serach_mlt.label.min_term_freq">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </Label>
+            <TextField fx:id="minTermFreq" minWidth="-Infinity" prefWidth="60.0">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </TextField>
+          </children>
+        </FlowPane>
+        <Separator layoutX="10.0" layoutY="120.0" prefWidth="200.0">
+          <VBox.margin>
+            <Insets top="5.0"/>
+          </VBox.margin>
+        </Separator>
+        <FlowPane layoutX="10.0" layoutY="80.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="%search_mlt.label.analyzer">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </Label>
+            <Label fx:id="analyzerName">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </Label>
+            <Hyperlink fx:id="change" text="%search_mlt.hyperlink.change">
+              <FlowPane.margin>
+                <Insets left="30.0"/>
+              </FlowPane.margin>
+            </Hyperlink>
+          </children>
+        </FlowPane>
+        <Separator prefWidth="200.0">
+          <VBox.margin>
+            <Insets top="5.0"/>
+          </VBox.margin>
+        </Separator>
+        <FlowPane prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="%search_mlt.label.description">
+              <FlowPane.margin>
+                <Insets/>
+              </FlowPane.margin>
+            </Label>
+          </children>
+          <VBox.margin>
+            <Insets left="10.0"/>
+          </VBox.margin>
+        </FlowPane>
+        <FlowPane layoutX="10.0" layoutY="20.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <CheckBox fx:id="selectAll" mnemonicParsing="false" text="%search_mlt.checkbox.select_all">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </CheckBox>
+          </children>
+        </FlowPane>
+        <TableView fx:id="fieldsTable" editable="true" minHeight="-Infinity" minWidth="-Infinity" prefHeight="200.0"
+                   prefWidth="400.0">
+          <columns>
+            <TableColumn fx:id="selectColumn" minWidth="20.0" prefWidth="75.0" text="select"/>
+            <TableColumn fx:id="fieldColumn" editable="false" maxWidth="1.7976931348623157E308" prefWidth="374.0"
+                         text="field"/>
+          </columns>
+          <VBox.margin>
+            <Insets left="10.0"/>
+          </VBox.margin>
+        </TableView>
+      </children>
+      <padding>
+        <Insets bottom="10.0" top="10.0"/>
+      </padding>
+    </VBox>
+  </content>
+</ScrollPane>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/dc72c4a0/lucene/luke/src/resources/fxml/fragments/search/search_parser.fxml
----------------------------------------------------------------------
diff --git a/lucene/luke/src/resources/fxml/fragments/search/search_parser.fxml b/lucene/luke/src/resources/fxml/fragments/search/search_parser.fxml
new file mode 100644
index 0000000..3705d48
--- /dev/null
+++ b/lucene/luke/src/resources/fxml/fragments/search/search_parser.fxml
@@ -0,0 +1,314 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.*?>
+<?import javafx.scene.control.*?>
+<?import javafx.scene.layout.*?>
+
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<ScrollPane hbarPolicy="NEVER" prefHeight="600.0" prefWidth="470.0" vbarPolicy="ALWAYS" AnchorPane.bottomAnchor="0.0"
+            AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"
+            xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
+            fx:controller="org.apache.lucene.luke.app.controllers.fragments.search.QueryParserController">
+  <content>
+    <VBox fillWidth="false">
+      <children>
+        <FlowPane layoutX="10.0" layoutY="48.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <RadioButton mnemonicParsing="false" selected="true" text="StandardQueryParser" userData="standard">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+              <toggleGroup>
+                <ToggleGroup fx:id="parserGroup"/>
+              </toggleGroup>
+            </RadioButton>
+            <RadioButton mnemonicParsing="false" text="Classic QueryParser" toggleGroup="$parserGroup"
+                         userData="classic">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </RadioButton>
+          </children>
+        </FlowPane>
+
+        <Separator prefWidth="470.0">
+          <padding>
+            <Insets top="5.0"/>
+          </padding>
+        </Separator>
+
+        <FlowPane prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="%search_parser.label.df">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </Label>
+            <ChoiceBox fx:id="defField" prefWidth="120.0">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </ChoiceBox>
+            <Label text="%search_parser.label.dop">
+              <FlowPane.margin>
+                <Insets left="30.0"/>
+              </FlowPane.margin>
+            </Label>
+            <ChoiceBox fx:id="defOp" prefWidth="60.0">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </ChoiceBox>
+          </children>
+          <VBox.margin>
+            <Insets/>
+          </VBox.margin>
+        </FlowPane>
+        <FlowPane layoutX="10.0" layoutY="10.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <CheckBox fx:id="posIncr" mnemonicParsing="false" text="%search_parser.checkbox.pos_incr">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </CheckBox>
+            <CheckBox fx:id="leadWildcard" layoutX="10.0" layoutY="20.0" mnemonicParsing="false"
+                      text="%search_parser.checkbox.lead_wildcard">
+              <FlowPane.margin>
+                <Insets left="30.0"/>
+              </FlowPane.margin>
+            </CheckBox>
+          </children>
+        </FlowPane>
+        <FlowPane layoutX="10.0" layoutY="48.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <CheckBox fx:id="splitWs" mnemonicParsing="false" text="%search_parser.checkbox.split_ws">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </CheckBox>
+          </children>
+        </FlowPane>
+
+        <Separator prefWidth="470.0">
+          <padding>
+            <Insets top="5.0"/>
+          </padding>
+        </Separator>
+
+        <FlowPane layoutX="10.0" layoutY="108.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="%search_parser.label.phrase_query">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </Label>
+          </children>
+        </FlowPane>
+        <FlowPane layoutX="10.0" layoutY="108.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <CheckBox fx:id="genPq" mnemonicParsing="false" text="%search_parser.checkbox.gen_pq">
+              <FlowPane.margin>
+                <Insets left="30.0"/>
+              </FlowPane.margin>
+            </CheckBox>
+          </children>
+          <VBox.margin>
+            <Insets/>
+          </VBox.margin>
+        </FlowPane>
+        <FlowPane layoutX="10.0" layoutY="108.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <CheckBox fx:id="genMTS" mnemonicParsing="false" text="%search_parser.checkbox.gen_mts">
+              <FlowPane.margin>
+                <Insets left="30.0"/>
+              </FlowPane.margin>
+            </CheckBox>
+          </children>
+        </FlowPane>
+        <FlowPane layoutX="10.0" layoutY="108.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="%search_parser.label.phrase_slop">
+              <FlowPane.margin>
+                <Insets left="30.0"/>
+              </FlowPane.margin>
+            </Label>
+            <TextField fx:id="slop" prefWidth="60">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </TextField>
+            <Label text="%search_parser.label.int_required">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </Label>
+          </children>
+        </FlowPane>
+
+        <Separator prefWidth="470.0">
+          <padding>
+            <Insets top="5.0"/>
+          </padding>
+        </Separator>
+
+        <FlowPane layoutX="10.0" layoutY="108.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="%search_parser.label.fuzzy_query">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </Label>
+          </children>
+        </FlowPane>
+        <FlowPane layoutX="10.0" layoutY="108.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="%search_parser.label.fuzzy_minsim">
+              <FlowPane.margin>
+                <Insets left="30.0"/>
+              </FlowPane.margin>
+            </Label>
+            <TextField fx:id="fuzzyMinSim" prefWidth="60">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </TextField>
+            <Label text="%search_parser.label.float_required">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </Label>
+          </children>
+        </FlowPane>
+        <FlowPane layoutX="10.0" layoutY="108.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="%search_parser.label.fuzzy_preflen">
+              <FlowPane.margin>
+                <Insets left="30.0"/>
+              </FlowPane.margin>
+            </Label>
+            <TextField fx:id="fuzzyPrefLen" prefWidth="60">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </TextField>
+            <Label text="%search_parser.label.int_required">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </Label>
+          </children>
+        </FlowPane>
+        <Separator prefWidth="470.0">
+          <padding>
+            <Insets top="5.0"/>
+          </padding>
+        </Separator>
+
+
+        <FlowPane layoutX="10.0" layoutY="108.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="%search_parser.label.daterange_query">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </Label>
+          </children>
+        </FlowPane>
+        <FlowPane prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="%search_parser.label.date_res">
+              <FlowPane.margin>
+                <Insets left="30.0"/>
+              </FlowPane.margin>
+            </Label>
+            <ChoiceBox fx:id="dateRes" prefWidth="120.0">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </ChoiceBox>
+          </children>
+        </FlowPane>
+        <FlowPane layoutX="30.0" layoutY="108.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="%search_parser.label.locale">
+              <FlowPane.margin>
+                <Insets left="30.0"/>
+              </FlowPane.margin>
+            </Label>
+            <TextField fx:id="locale" prefWidth="120">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </TextField>
+            <Label text="%search_parser.label.timezone">
+              <FlowPane.margin>
+                <Insets left="30.0"/>
+              </FlowPane.margin>
+            </Label>
+            <TextField fx:id="timeZone" prefWidth="120">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </TextField>
+          </children>
+        </FlowPane>
+
+        <Separator prefWidth="470.0">
+          <padding>
+            <Insets top="5.0"/>
+          </padding>
+        </Separator>
+        <FlowPane layoutX="10.0" layoutY="382.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="%search_parser.label.pointrange_query">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </Label>
+          </children>
+        </FlowPane>
+        <FlowPane layoutX="10.0" layoutY="382.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="%search_parser.label.pointrange_hint">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </Label>
+          </children>
+        </FlowPane>
+
+        <TableView fx:id="pvFieldsTable" editable="true" minHeight="80" minWidth="320" prefHeight="80.0"
+                   prefWidth="320.0">
+          <columns>
+            <TableColumn fx:id="fieldColumn" editable="false" maxWidth="150.0" minWidth="150.0" prefWidth="150.0"
+                         sortable="false" text="Field"/>
+            <TableColumn fx:id="typeColumn" minWidth="150.0" prefWidth="150.0" sortable="false" text="Numeric Type"/>
+          </columns>
+          <VBox.margin>
+            <Insets left="30.0"/>
+          </VBox.margin>
+        </TableView>
+
+      </children>
+      <padding>
+        <Insets bottom="10.0" top="10.0"/>
+      </padding>
+    </VBox>
+  </content>
+</ScrollPane>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/dc72c4a0/lucene/luke/src/resources/fxml/fragments/search/search_similarity.fxml
----------------------------------------------------------------------
diff --git a/lucene/luke/src/resources/fxml/fragments/search/search_similarity.fxml b/lucene/luke/src/resources/fxml/fragments/search/search_similarity.fxml
new file mode 100644
index 0000000..fc9efc5
--- /dev/null
+++ b/lucene/luke/src/resources/fxml/fragments/search/search_similarity.fxml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.*?>
+<?import javafx.scene.control.*?>
+<?import javafx.scene.layout.*?>
+
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<ScrollPane hbarPolicy="NEVER" prefHeight="140.0" prefWidth="470.0" vbarPolicy="ALWAYS" AnchorPane.bottomAnchor="0.0"
+            AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"
+            xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
+            fx:controller="org.apache.lucene.luke.app.controllers.fragments.search.SimilarityController">
+  <content>
+    <VBox>
+      <children>
+        <FlowPane prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <CheckBox fx:id="useClassic" mnemonicParsing="false" text="%search_similarity.checkbox.use_classic">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </CheckBox>
+          </children>
+        </FlowPane>
+        <FlowPane prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <CheckBox fx:id="discountOverlaps" mnemonicParsing="false"
+                      text="%search_similarity.checkbox.discount_overlaps">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </CheckBox>
+          </children>
+        </FlowPane>
+        <FlowPane layoutX="10.0" layoutY="20.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="%search_similarity.label.bm25_params">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </Label>
+          </children>
+        </FlowPane>
+        <FlowPane layoutX="10.0" layoutY="50.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="k1">
+              <FlowPane.margin>
+                <Insets left="30.0"/>
+              </FlowPane.margin>
+            </Label>
+            <TextField fx:id="k1Val" prefWidth="60.0">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </TextField>
+            <Label layoutX="40.0" layoutY="15.0" text="b">
+              <FlowPane.margin>
+                <Insets left="30.0"/>
+              </FlowPane.margin>
+            </Label>
+            <TextField fx:id="bVal" layoutX="63.0" layoutY="10.0" prefWidth="60.0">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </TextField>
+          </children>
+        </FlowPane>
+      </children>
+      <padding>
+        <Insets bottom="10.0" top="10.0"/>
+      </padding>
+    </VBox>
+  </content>
+</ScrollPane>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/dc72c4a0/lucene/luke/src/resources/fxml/fragments/search/search_sort.fxml
----------------------------------------------------------------------
diff --git a/lucene/luke/src/resources/fxml/fragments/search/search_sort.fxml b/lucene/luke/src/resources/fxml/fragments/search/search_sort.fxml
new file mode 100644
index 0000000..0d3e4e7
--- /dev/null
+++ b/lucene/luke/src/resources/fxml/fragments/search/search_sort.fxml
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.*?>
+<?import javafx.scene.control.*?>
+<?import javafx.scene.layout.*?>
+
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<ScrollPane hbarPolicy="NEVER" prefHeight="200.0" prefWidth="470.0" vbarPolicy="ALWAYS" AnchorPane.bottomAnchor="0.0"
+            AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"
+            xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
+            fx:controller="org.apache.lucene.luke.app.controllers.fragments.search.SortController">
+  <content>
+    <VBox>
+      <children>
+        <FlowPane prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="%search_sort.label.primary">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </Label>
+          </children>
+        </FlowPane>
+        <FlowPane layoutX="10.0" layoutY="20.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="%search_sort.label.field">
+              <FlowPane.margin>
+                <Insets left="30.0"/>
+              </FlowPane.margin>
+            </Label>
+            <ChoiceBox fx:id="field1" prefWidth="120.0">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </ChoiceBox>
+            <Label layoutX="40.0" layoutY="15.0" text="%search_sort.label.type">
+              <FlowPane.margin>
+                <Insets left="20.0"/>
+              </FlowPane.margin>
+            </Label>
+            <ChoiceBox fx:id="type1" layoutX="83.0" layoutY="10.0" prefWidth="80.0">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </ChoiceBox>
+            <Label layoutX="223.0" layoutY="15.0" text="%search_sort.label.order">
+              <FlowPane.margin>
+                <Insets left="20.0"/>
+              </FlowPane.margin>
+            </Label>
+            <ChoiceBox fx:id="order1" layoutX="259.0" layoutY="10.0" prefWidth="50.0">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </ChoiceBox>
+          </children>
+        </FlowPane>
+        <FlowPane layoutX="10.0" layoutY="20.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="%search_sort.label.secondary">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </Label>
+          </children>
+        </FlowPane>
+        <FlowPane layoutX="10.0" layoutY="50.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="%search_sort.label.field">
+              <FlowPane.margin>
+                <Insets left="30.0"/>
+              </FlowPane.margin>
+            </Label>
+            <ChoiceBox fx:id="field2" prefWidth="120.0">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </ChoiceBox>
+            <Label layoutX="40.0" layoutY="15.0" text="%search_sort.label.type">
+              <FlowPane.margin>
+                <Insets left="20.0"/>
+              </FlowPane.margin>
+            </Label>
+            <ChoiceBox fx:id="type2" layoutX="83.0" layoutY="10.0" prefWidth="80.0">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </ChoiceBox>
+            <Label layoutX="223.0" layoutY="15.0" text="%search_sort.label.order">
+              <FlowPane.margin>
+                <Insets left="20.0"/>
+              </FlowPane.margin>
+            </Label>
+            <ChoiceBox fx:id="order2" layoutX="259.0" layoutY="10.0" prefWidth="50.0">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </ChoiceBox>
+          </children>
+        </FlowPane>
+        <FlowPane layoutX="10.0" layoutY="80.0" prefHeight="30.0" prefWidth="450.0">
+          <VBox.margin>
+            <Insets top="10.0"/>
+          </VBox.margin>
+          <children>
+            <Button fx:id="clear" mnemonicParsing="false" text="%search_sort.button.clear">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </Button>
+          </children>
+        </FlowPane>
+      </children>
+      <padding>
+        <Insets bottom="10.0" top="10.0"/>
+      </padding>
+    </VBox>
+  </content>
+</ScrollPane>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/dc72c4a0/lucene/luke/src/resources/fxml/fragments/search/search_values.fxml
----------------------------------------------------------------------
diff --git a/lucene/luke/src/resources/fxml/fragments/search/search_values.fxml b/lucene/luke/src/resources/fxml/fragments/search/search_values.fxml
new file mode 100644
index 0000000..79bcb62
--- /dev/null
+++ b/lucene/luke/src/resources/fxml/fragments/search/search_values.fxml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.*?>
+<?import javafx.scene.control.*?>
+<?import javafx.scene.layout.*?>
+
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<ScrollPane hbarPolicy="NEVER" prefHeight="200.0" prefWidth="470.0" vbarPolicy="ALWAYS" AnchorPane.bottomAnchor="0.0"
+            AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"
+            xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
+            fx:controller="org.apache.lucene.luke.app.controllers.fragments.search.FieldValuesController">
+  <content>
+    <VBox>
+      <children>
+        <FlowPane prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <Label text="%search_values.label.description"/>
+          </children>
+          <VBox.margin>
+            <Insets left="10.0"/>
+          </VBox.margin>
+        </FlowPane>
+        <FlowPane layoutX="10.0" layoutY="20.0" prefHeight="30.0" prefWidth="450.0">
+          <children>
+            <CheckBox fx:id="loadAll" mnemonicParsing="false" text="%search_values.checkbox.load_all">
+              <FlowPane.margin>
+                <Insets left="10.0"/>
+              </FlowPane.margin>
+            </CheckBox>
+          </children>
+        </FlowPane>
+        <TableView fx:id="fieldsTable" editable="true" minHeight="-Infinity" minWidth="-Infinity" prefHeight="200.0"
+                   prefWidth="400.0">
+          <columns>
+            <TableColumn fx:id="selectColumn" minWidth="20.0" prefWidth="75.0" text="load"/>
+            <TableColumn fx:id="fieldColumn" editable="false" maxWidth="1.7976931348623157E308" prefWidth="374.0"
+                         text="field"/>
+          </columns>
+          <VBox.margin>
+            <Insets left="10.0"/>
+          </VBox.margin>
+        </TableView>
+      </children>
+      <padding>
+        <Insets bottom="10.0" top="10.0"/>
+      </padding>
+    </VBox>
+  </content>
+</ScrollPane>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/dc72c4a0/lucene/luke/src/resources/fxml/logs.fxml
----------------------------------------------------------------------
diff --git a/lucene/luke/src/resources/fxml/logs.fxml b/lucene/luke/src/resources/fxml/logs.fxml
new file mode 100644
index 0000000..277eb68
--- /dev/null
+++ b/lucene/luke/src/resources/fxml/logs.fxml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.scene.control.*?>
+<?import javafx.scene.layout.*?>
+
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0"
+            prefWidth="830.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"
+            AnchorPane.topAnchor="0.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
+            fx:controller="org.apache.lucene.luke.app.controllers.LogsController">
+  <children>
+    <AnchorPane AnchorPane.bottomAnchor="0" AnchorPane.leftAnchor="0" AnchorPane.rightAnchor="0"
+                AnchorPane.topAnchor="0">
+      <children>
+        <Label layoutX="20.0" layoutY="14.0" text="%logs.label.see_also" AnchorPane.leftAnchor="20.0"
+               AnchorPane.topAnchor="15.0"/>
+        <Label fx:id="logFile" layoutX="168.0" layoutY="14.0"/>
+        <TextArea fx:id="textArea" editable="false" AnchorPane.bottomAnchor="20" AnchorPane.leftAnchor="20"
+                  AnchorPane.rightAnchor="20" AnchorPane.topAnchor="50.0">
+        </TextArea>
+      </children>
+    </AnchorPane>
+  </children>
+</AnchorPane>