You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by ct...@apache.org on 2021/10/24 19:41:15 UTC

[solr] branch jira/solr-15556-antora updated: Move Antora work in progress from my fork to project repo (#365)

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

ctargett pushed a commit to branch jira/solr-15556-antora
in repository https://gitbox.apache.org/repos/asf/solr.git


The following commit(s) were added to refs/heads/jira/solr-15556-antora by this push:
     new 71f021d  Move Antora work in progress from my fork to project repo (#365)
71f021d is described below

commit 71f021da369e0e2e2ff06fe5aeb9b2fd2e03db61
Author: Cassandra Targett <ct...@apache.org>
AuthorDate: Sun Oct 24 14:41:09 2021 -0500

    Move Antora work in progress from my fork to project repo (#365)
---
 solr/.gitignore                                    |     2 +
 solr/solr-ref-guide/antora.yml                     |    19 +
 solr/solr-ref-guide/build.gradle                   |     6 +
 .../ROOT}/images/Solr_Logo_on_white.png            |   Bin
 .../ROOT}/images/diagrams/splitshard-seq.png       |   Bin
 .../ROOT}/images/diagrams/splitshard-seq.puml      |     0
 .../ROOT}/images/draft-background.png              |   Bin
 .../ROOT}/images/icons/bullet_blue.gif             |   Bin
 .../images/icons/contenttypes/home_page_16.png     |   Bin
 .../ROOT}/images/icons/emoticons/warning.png       |   Bin
 .../{src => modules/ROOT}/images/icons/favicon.ico |   Bin
 .../ROOT}/images/solr-sunOnly-small.png            |   Bin
 .../{src => modules/ROOT/pages}/index.adoc         |     4 +-
 .../modules/configuration-guide/config-nav.adoc    |    39 +
 .../images/configuration-files/files-screen.png    |   Bin
 .../index-segments-merging/segments_info.png       |   Bin
 .../configuration-guide/pages}/caches-warming.adoc |    20 +-
 .../pages}/cluster-plugins.adoc                    |     0
 .../configuration-guide/pages}/codec-factory.adoc  |     2 +-
 .../pages}/collections-api.adoc                    |    10 +-
 .../pages}/commits-transaction-logs.adoc           |    10 +-
 .../configuration-guide/pages}/config-api.adoc     |     0
 .../configuration-guide/pages}/config-sets.adoc    |     0
 .../configuration-guide/pages}/configsets-api.adoc |     0
 .../pages}/configuration-apis.adoc                 |     0
 .../pages}/configuration-files.adoc                |     2 +-
 .../pages}/configuration-guide.adoc                |     0
 .../pages}/configuring-solr-xml.adoc               |     0
 .../pages}/configuring-solrconfig-xml.adoc         |     0
 .../configuration-guide/pages}/core-discovery.adoc |     0
 .../configuration-guide/pages}/coreadmin-api.adoc  |     0
 .../pages}/implicit-requesthandlers.adoc           |     0
 .../pages}/index-location-format.adoc              |     0
 .../pages}/index-segments-merging.adoc             |     0
 .../configuration-guide/pages}/initparams.adoc     |     0
 .../configuration-guide/pages}/libs.adoc           |     0
 .../pages}/managed-resources.adoc                  |     0
 .../pages}/package-manager-internals.adoc          |     0
 .../pages}/package-manager.adoc                    |     0
 .../pages}/property-substitution.adoc              |     0
 .../configuration-guide/pages}/realtime-get.adoc   |     0
 .../pages}/replica-placement-plugins.adoc          |     0
 .../pages}/request-parameters-api.adoc             |     0
 .../pages}/requestdispatcher.adoc                  |     0
 .../pages}/requesthandlers-searchcomponents.adoc   |     0
 .../pages}/resource-loading.adoc                   |     0
 .../configuration-guide/pages}/schema-factory.adoc |     0
 .../pages}/script-update-processor.adoc            |     0
 .../configuration-guide/pages}/solr-plugins.adoc   |     0
 .../pages}/update-request-processors.adoc          |     0
 .../configuration-guide/pages}/v2-api.adoc         |     0
 .../modules/deployment-guide/deployment-nav.adoc   |    72 +
 .../examples/UsingSolrJRefGuideExamplesTest.java   |     1 +
 .../examples/ZkConfigFilesTest.java                |     1 +
 .../images/cloud-screens/cloud-graph.png           |   Bin
 .../images/cloud-screens/cloud-hover.png           |   Bin
 .../images/cloud-screens/cloud-nodes.png           |   Bin
 .../images/cloud-screens/cloud-tree.png            |   Bin
 .../images/cloud-screens/cloud-zkstatus.png        |   Bin
 .../images/collections-core-admin/DeleteShard.png  |   Bin
 .../collections-core-admin/collection-admin.png    |   Bin
 .../images/configuring-logging/level_menu.png      |   Bin
 .../images/configuring-logging/logging.png         |   Bin
 .../distributed-tracing/query-request-tracing.png  |   Bin
 .../images/installing-solr/SolrAdminDashboard.png  |   Bin
 .../images/jvm-settings/javaproperties.png         |   Bin
 .../grafana-solr-dashboard.png                     |   Bin
 .../prometheus-solr-ping.png                       |   Bin
 .../solr-exporter-diagram.png                      |   Bin
 .../deployment-guide}/images/ping/ping.png         |   Bin
 .../plugins-stats-screen/plugin-searcher.png       |   Bin
 .../images/security-ui/add-permission.png          |   Bin
 .../images/security-ui/edit-user-dialog.png        |   Bin
 .../images/security-ui/filter-users.png            |   Bin
 .../images/security-ui/permissions.png             |   Bin
 .../deployment-guide}/images/security-ui/roles.png |   Bin
 .../security-ui/security-not-enabled-warn.png      |   Bin
 .../deployment-guide}/images/security-ui/users.png |   Bin
 .../images/thread-dump/thread_dump_1.png           |   Bin
 .../images/thread-dump/thread_dump_2.png           |   Bin
 .../user-managed-index-replication/replication.png |   Bin
 .../user-managed-replication.png                   |   Bin
 .../deployment-guide/pages}/alias-management.adoc  |     0
 .../deployment-guide/pages}/aliases.adoc           |     0
 .../deployment-guide/pages}/audit-logging.adoc     |     0
 .../authentication-and-authorization-plugins.adoc  |     0
 .../deployment-guide/pages}/backup-restore.adoc    |     0
 .../pages}/basic-authentication-plugin.adoc        |     0
 .../pages}/cert-authentication-plugin.adoc         |     0
 .../deployment-guide/pages}/circuit-breakers.adoc  |     0
 .../deployment-guide/pages}/client-apis.adoc       |     0
 .../deployment-guide/pages}/cloud-screens.adoc     |    10 +-
 .../pages}/cluster-node-management.adoc            |     0
 .../deployment-guide/pages}/cluster-types.adoc     |     0
 .../pages}/collection-management.adoc              |     0
 .../pages}/collections-core-admin.adoc             |     4 +-
 .../pages}/configuring-logging.adoc                |     4 +-
 .../deployment-guide/pages}/deployment-guide.adoc  |     0
 .../pages}/distributed-tracing.adoc                |     2 +-
 .../deployment-guide/pages}/docker-faq.adoc        |     0
 .../deployment-guide/pages}/docker-networking.adoc |     0
 .../deployment-guide/pages}/enabling-ssl.adoc      |     0
 .../pages}/hadoop-authentication-plugin.adoc       |     0
 .../pages}/indexupgrader-tool.adoc                 |     0
 .../pages}/installation-deployment.adoc            |     0
 .../deployment-guide/pages}/installing-solr.adoc   |     2 +-
 .../deployment-guide/pages}/javascript.adoc        |     0
 .../deployment-guide/pages}/jmx-with-solr.adoc     |     0
 .../deployment-guide/pages}/jvm-settings.adoc      |     2 +-
 .../pages}/jwt-authentication-plugin.adoc          |     0
 .../pages}/kerberos-authentication-plugin.adoc     |     0
 .../pages}/mbean-request-handler.adoc              |     0
 .../deployment-guide/pages}/metrics-reporting.adoc |     0
 .../deployment-guide/pages}/monitoring-solr.adoc   |     0
 .../monitoring-with-prometheus-and-grafana.adoc    |     6 +-
 .../pages}/performance-statistics-reference.adoc   |     0
 .../deployment-guide/pages}/ping.adoc              |     2 +-
 .../pages}/plugins-stats-screen.adoc               |     2 +-
 .../deployment-guide/pages}/python.adoc            |     0
 .../deployment-guide/pages}/rate-limiters.adoc     |     0
 .../pages}/replica-management.adoc                 |     0
 .../deployment-guide/pages}/ruby.adoc              |     0
 .../pages}/rule-based-authorization-plugin.adoc    |     0
 .../deployment-guide/pages}/scaling-solr.adoc      |     0
 .../deployment-guide/pages}/securing-solr.adoc     |     0
 .../deployment-guide/pages}/security-ui.adoc       |    16 +-
 .../deployment-guide/pages}/shard-management.adoc  |     0
 .../pages}/solr-control-script-reference.adoc      |     0
 .../deployment-guide/pages}/solr-in-docker.adoc    |     0
 .../deployment-guide/pages}/solr-on-hdfs.adoc      |     0
 .../pages}/solrcloud-clusters.adoc                 |     0
 .../pages}/solrcloud-distributed-requests.adoc     |     0
 .../solrcloud-recoveries-and-write-tolerance.adoc  |     0
 .../pages}/solrcloud-shards-indexing.adoc          |     0
 .../solrcloud-with-legacy-configuration-files.adoc |     0
 .../deployment-guide/pages}/solrj.adoc             |    24 +-
 .../pages}/system-requirements.adoc                |     0
 .../pages}/taking-solr-to-production.adoc          |     0
 .../deployment-guide/pages}/task-management.adoc   |     0
 .../deployment-guide/pages}/thread-dump.adoc       |     4 +-
 .../pages}/upgrading-a-solr-cluster.adoc           |     0
 .../pages}/user-managed-clusters.adoc              |     0
 .../pages}/user-managed-distributed-search.adoc    |     0
 .../pages}/user-managed-index-replication.adoc     |     4 +-
 .../pages}/zookeeper-access-control.adoc           |     0
 .../pages}/zookeeper-ensemble.adoc                 |     0
 .../pages}/zookeeper-file-management.adoc          |     4 +-
 .../pages}/zookeeper-utilities.adoc                |     0
 .../getting-started/getting-started-nav.adoc       |    20 +
 .../images/searching-in-solr/cnet-faceting.png     |   Bin
 .../images/searching-in-solr/search-process.png    |   Bin
 .../images/solr-admin-ui/Assistance.png            |   Bin
 .../images/solr-admin-ui/collection_dashboard.png  |   Bin
 .../images/solr-admin-ui/core_dashboard.png        |   Bin
 .../images/solr-admin-ui/dashboard.png             |   Bin
 .../images/solr-admin-ui/login.png                 |   Bin
 .../images/solr-admin-ui/schema-designer.png       |   Bin
 .../images/solr-admin-ui/security.png              |   Bin
 .../solr-tutorial/tutorial-add-copy-field.png      |   Bin
 .../images/solr-tutorial/tutorial-add-field.png    |   Bin
 .../tutorial-admin-ui-facet-options.png            |   Bin
 .../images/solr-tutorial/tutorial-query-screen.png |   Bin
 .../images/solr-tutorial/tutorial-range-facet.png  |   Bin
 .../images/solr-tutorial/tutorial-solrcloud.png    |   Bin
 .../images/solr-tutorial/tutorial-spatial.png      |   Bin
 .../images/tutorial-aws/aws-key.png                |   Bin
 .../images/tutorial-aws/aws-security-create.png    |   Bin
 .../images/tutorial-aws/aws-security-edit.png      |   Bin
 .../getting-started/pages}/about-this-guide.adoc   |     0
 .../pages}/documents-fields-schema-design.adoc     |     0
 .../getting-started/pages}/getting-started.adoc    |     0
 .../getting-started/pages}/introduction.adoc       |     0
 .../getting-started/pages}/relevance.adoc          |     0
 .../getting-started/pages}/searching-in-solr.adoc  |     4 +-
 .../getting-started/pages}/solr-admin-ui.adoc      |    14 +-
 .../getting-started/pages}/solr-concepts.adoc      |     0
 .../getting-started/pages}/solr-glossary.adoc      |     0
 .../getting-started/pages}/solr-indexing.adoc      |     0
 .../getting-started/pages}/solr-tutorial.adoc      |     0
 .../getting-started/pages}/tutorial-aws.adoc       |     6 +-
 .../getting-started/pages}/tutorial-diy.adoc       |     0
 .../getting-started/pages}/tutorial-films.adoc     |     6 +-
 .../getting-started/pages}/tutorial-solrcloud.adoc |     0
 .../pages}/tutorial-techproducts.adoc              |     4 +-
 .../examples/IndexingNestedDocuments.java          |     1 +
 .../modules/indexing-guide/examples/stemdict.txt   |     1 +
 .../images/analysis-screen/analysis_compare_0.png  |   Bin
 .../images/analysis-screen/analysis_compare_1.png  |   Bin
 .../images/analysis-screen/analysis_compare_2.png  |   Bin
 .../images/analysis-screen/analysis_compare_3.png  |   Bin
 .../images/analysis-screen/analysis_compare_4.png  |   Bin
 .../images/analysis-screen/analysis_normal.png     |   Bin
 .../documents-screen/documents_add_screen.png      |   Bin
 .../images/indexing-with-tika/sample-pdf-query.png |   Bin
 .../schema-browser-screen/schema_browser_terms.png |   Bin
 .../images/schema-designer/analyze-sample-docs.png |   Bin
 .../images/schema-designer/field-filters.png       |   Bin
 .../images/schema-designer/incompat-change.png     |   Bin
 .../images/schema-designer/new-schema.png          |   Bin
 .../images/schema-designer/publish.png             |   Bin
 .../images/schema-designer/query-tester.png        |   Bin
 .../images/schema-designer/reload-schema.png       |   Bin
 .../schema-designer/schema-editor-fields.png       |   Bin
 .../images/schema-designer/schema-editor-root.png  |   Bin
 .../schema-designer/schema-editor-update.png       |   Bin
 .../images/schema-designer/show-changes.png        |   Bin
 .../images/schema-designer/text-analysis.png       |   Bin
 .../modules/indexing-guide/indexing-nav.adoc       |    46 +
 .../indexing-guide/pages}/analysis-screen.adoc     |    12 +-
 .../indexing-guide/pages}/analyzers.adoc           |     0
 .../indexing-guide/pages}/charfilterfactories.adoc |     0
 .../indexing-guide/pages}/content-streams.adoc     |     0
 .../indexing-guide/pages}/copy-fields.adoc         |     0
 .../pages}/currencies-exchange-rates.adoc          |     0
 .../pages}/date-formatting-math.adoc               |     0
 .../indexing-guide/pages}/de-duplication.adoc      |     0
 .../indexing-guide/pages}/document-analysis.adoc   |     0
 .../indexing-guide/pages}/documents-screen.adoc    |     2 +-
 .../indexing-guide/pages}/docvalues.adoc           |     0
 .../indexing-guide/pages}/dynamic-fields.adoc      |     0
 .../indexing-guide/pages}/enum-fields.adoc         |     0
 .../pages}/external-files-processes.adoc           |     0
 .../pages}/field-properties-by-use-case.adoc       |     0
 .../field-type-definitions-and-properties.adoc     |     0
 .../pages}/field-types-included-with-solr.adoc     |     0
 .../indexing-guide/pages}/field-types.adoc         |     0
 .../pages}/fields-and-schema-design.adoc           |     0
 .../indexing-guide/pages}/fields.adoc              |     0
 .../indexing-guide/pages}/filters.adoc             |     0
 .../pages}/indexing-data-operations.adoc           |     0
 .../pages}/indexing-nested-documents.adoc          |     6 +-
 .../indexing-guide/pages}/indexing-with-tika.adoc  |     2 +-
 .../pages}/indexing-with-update-handlers.adoc      |     0
 .../indexing-guide/pages}/language-analysis.adoc   |     2 +-
 .../indexing-guide/pages}/language-detection.adoc  |     0
 .../pages}/luke-request-handler.adoc               |     0
 .../pages}/partial-document-updates.adoc           |     0
 .../indexing-guide/pages}/phonetic-matching.adoc   |     0
 .../indexing-guide/pages}/post-tool.adoc           |     0
 .../indexing-guide/pages}/reindexing.adoc          |     0
 .../indexing-guide/pages}/schema-api.adoc          |     0
 .../pages}/schema-browser-screen.adoc              |     2 +-
 .../indexing-guide/pages}/schema-designer.adoc     |    26 +-
 .../indexing-guide/pages}/schema-elements.adoc     |     0
 .../pages}/schema-indexing-guide.adoc              |     0
 .../indexing-guide/pages}/schemaless-mode.adoc     |     0
 .../indexing-guide/pages}/solr-schema.adoc         |     0
 .../indexing-guide/pages}/tokenizers.adoc          |     0
 .../transforming-and-indexing-custom-json.adoc     |     0
 .../JsonRequestApiHeatmapFacetingTest.java         |     1 +
 .../query-guide/examples/JsonRequestApiTest.java   |     1 +
 .../jdbc-dbvisualizer/dbvisualizer_solrjdbc_1.png  |   Bin
 .../jdbc-dbvisualizer/dbvisualizer_solrjdbc_11.png |   Bin
 .../jdbc-dbvisualizer/dbvisualizer_solrjdbc_12.png |   Bin
 .../jdbc-dbvisualizer/dbvisualizer_solrjdbc_13.png |   Bin
 .../jdbc-dbvisualizer/dbvisualizer_solrjdbc_14.png |   Bin
 .../jdbc-dbvisualizer/dbvisualizer_solrjdbc_15.png |   Bin
 .../jdbc-dbvisualizer/dbvisualizer_solrjdbc_16.png |   Bin
 .../jdbc-dbvisualizer/dbvisualizer_solrjdbc_17.png |   Bin
 .../jdbc-dbvisualizer/dbvisualizer_solrjdbc_19.png |   Bin
 .../jdbc-dbvisualizer/dbvisualizer_solrjdbc_2.png  |   Bin
 .../jdbc-dbvisualizer/dbvisualizer_solrjdbc_20.png |   Bin
 .../jdbc-dbvisualizer/dbvisualizer_solrjdbc_3.png  |   Bin
 .../jdbc-dbvisualizer/dbvisualizer_solrjdbc_4.png  |   Bin
 .../jdbc-dbvisualizer/dbvisualizer_solrjdbc_5.png  |   Bin
 .../jdbc-dbvisualizer/dbvisualizer_solrjdbc_6.png  |   Bin
 .../jdbc-dbvisualizer/dbvisualizer_solrjdbc_7.png  |   Bin
 .../jdbc-dbvisualizer/dbvisualizer_solrjdbc_9.png  |   Bin
 .../jdbc-squirrel/squirrelsql_solrjdbc_1.png       |   Bin
 .../jdbc-squirrel/squirrelsql_solrjdbc_10.png      |   Bin
 .../jdbc-squirrel/squirrelsql_solrjdbc_11.png      |   Bin
 .../jdbc-squirrel/squirrelsql_solrjdbc_12.png      |   Bin
 .../jdbc-squirrel/squirrelsql_solrjdbc_13.png      |   Bin
 .../jdbc-squirrel/squirrelsql_solrjdbc_14.png      |   Bin
 .../jdbc-squirrel/squirrelsql_solrjdbc_15.png      |   Bin
 .../jdbc-squirrel/squirrelsql_solrjdbc_2.png       |   Bin
 .../jdbc-squirrel/squirrelsql_solrjdbc_3.png       |   Bin
 .../jdbc-squirrel/squirrelsql_solrjdbc_4.png       |   Bin
 .../jdbc-squirrel/squirrelsql_solrjdbc_5.png       |   Bin
 .../jdbc-squirrel/squirrelsql_solrjdbc_7.png       |   Bin
 .../jdbc-squirrel/squirrelsql_solrjdbc_9.png       |   Bin
 .../images/jdbc-zeppelin/zeppelin_solrjdbc_1.png   |   Bin
 .../images/jdbc-zeppelin/zeppelin_solrjdbc_2.png   |   Bin
 .../images/jdbc-zeppelin/zeppelin_solrjdbc_3.png   |   Bin
 .../images/jdbc-zeppelin/zeppelin_solrjdbc_4.png   |   Bin
 .../images/jdbc-zeppelin/zeppelin_solrjdbc_5.png   |   Bin
 .../images/jdbc-zeppelin/zeppelin_solrjdbc_6.png   |   Bin
 .../images/math-expressions/2Centroids.png         |   Bin
 .../images/math-expressions/2DCluster1.png         |   Bin
 .../images/math-expressions/2DCluster2.png         |   Bin
 .../images/math-expressions/2Dcentroids.png        |   Bin
 .../images/math-expressions/2Dcluster.png          |   Bin
 .../query-guide}/images/math-expressions/add.png   |   Bin
 .../query-guide}/images/math-expressions/aggs.png  |   Bin
 .../images/math-expressions/anomaly.png            |   Bin
 .../query-guide}/images/math-expressions/array.png |   Bin
 .../images/math-expressions/autocorr.png           |   Bin
 .../query-guide}/images/math-expressions/bar.png   |   Bin
 .../query-guide}/images/math-expressions/beta.png  |   Bin
 .../images/math-expressions/binomial.png           |   Bin
 .../images/math-expressions/bivariate.png          |   Bin
 .../images/math-expressions/cartesian.png          |   Bin
 .../images/math-expressions/cartogram.png          |   Bin
 .../images/math-expressions/centroidplot.png       |   Bin
 .../images/math-expressions/centroidzoom.png       |   Bin
 .../images/math-expressions/clusters.png           |   Bin
 .../images/math-expressions/clusterzip.png         |   Bin
 .../images/math-expressions/clusterzipplot.png     |   Bin
 .../images/math-expressions/commit-series.png      |   Bin
 .../images/math-expressions/constant.png           |   Bin
 .../images/math-expressions/conv-smooth.png        |   Bin
 .../query-guide}/images/math-expressions/conv1.png |   Bin
 .../query-guide}/images/math-expressions/conv2.png |   Bin
 .../query-guide}/images/math-expressions/conv3.png |   Bin
 .../query-guide}/images/math-expressions/conv4.png |   Bin
 .../images/math-expressions/convex.png             |   Bin
 .../images/math-expressions/convex0.png            |   Bin
 .../images/math-expressions/convex1.png            |   Bin
 .../images/math-expressions/convex2.png            |   Bin
 .../images/math-expressions/correlation.png        |   Bin
 .../images/math-expressions/corrmatrix.png         |   Bin
 .../images/math-expressions/corrmatrix2.png        |   Bin
 .../images/math-expressions/corrsim1.png           |   Bin
 .../images/math-expressions/corrsim2.png           |   Bin
 .../images/math-expressions/corrsim3.png           |   Bin
 .../images/math-expressions/covariance.png         |   Bin
 .../images/math-expressions/crosscorr.png          |   Bin
 .../query-guide}/images/math-expressions/csv.png   |   Bin
 .../images/math-expressions/csvselect.png          |   Bin
 .../images/math-expressions/csvtable.png           |   Bin
 .../images/math-expressions/cumPct.png             |   Bin
 .../images/math-expressions/cumProb.png            |   Bin
 .../images/math-expressions/curve-fitting.png      |   Bin
 .../images/math-expressions/custom-hist.png        |   Bin
 .../images/math-expressions/dbscan1.png            |   Bin
 .../images/math-expressions/dbscan2.png            |   Bin
 .../query-guide}/images/math-expressions/delay.png |   Bin
 .../images/math-expressions/derivative.png         |   Bin
 .../images/math-expressions/derivative1.png        |   Bin
 .../images/math-expressions/derivative2.png        |   Bin
 .../images/math-expressions/derivatives.png        |   Bin
 .../images/math-expressions/describe.png           |   Bin
 .../images/math-expressions/diagnostics.png        |   Bin
 .../query-guide}/images/math-expressions/diff.png  |   Bin
 .../query-guide}/images/math-expressions/diff1.png |   Bin
 .../images/math-expressions/diffcorr.png           |   Bin
 .../images/math-expressions/diffzoom.png           |   Bin
 .../query-guide}/images/math-expressions/dist.png  |   Bin
 .../images/math-expressions/distance.png           |   Bin
 .../images/math-expressions/distanceview.png       |   Bin
 .../images/math-expressions/empirical.png          |   Bin
 .../query-guide}/images/math-expressions/enum1.png |   Bin
 .../query-guide}/images/math-expressions/enum2.png |   Bin
 .../images/math-expressions/expmoving.png          |   Bin
 .../images/math-expressions/facet2D.png            |   Bin
 .../images/math-expressions/facettab1.png          |   Bin
 .../images/math-expressions/facettab2.png          |   Bin
 .../images/math-expressions/facetviz1.png          |   Bin
 .../images/math-expressions/facetviz2.png          |   Bin
 .../query-guide}/images/math-expressions/fft.png   |   Bin
 .../images/math-expressions/forecast.png           |   Bin
 .../images/math-expressions/freqTable.png          |   Bin
 .../images/math-expressions/freqTable1.png         |   Bin
 .../images/math-expressions/fuzzyk.png             |   Bin
 .../query-guide}/images/math-expressions/gamma.png |   Bin
 .../images/math-expressions/gaussfit.png           |   Bin
 .../images/math-expressions/gaussfit2.png          |   Bin
 .../images/math-expressions/geometric.png          |   Bin
 .../images/math-expressions/graph1.png             |   Bin
 .../images/math-expressions/graph2.png             |   Bin
 .../images/math-expressions/harmfit.png            |   Bin
 .../images/math-expressions/harmfit2.png           |   Bin
 .../images/math-expressions/hashRollup.png         |   Bin
 .../images/math-expressions/having.png             |   Bin
 .../images/math-expressions/having2.png            |   Bin
 .../images/math-expressions/having3.png            |   Bin
 .../images/math-expressions/havingId.png           |   Bin
 .../images/math-expressions/havingIsNull.png       |   Bin
 .../images/math-expressions/havingNotNull.png      |   Bin
 .../query-guide}/images/math-expressions/heat.png  |   Bin
 .../query-guide}/images/math-expressions/hfit.png  |   Bin
 .../hidden-signal-autocorrelation.png              |   Bin
 .../images/math-expressions/hidden-signal-fft.png  |   Bin
 .../images/math-expressions/hidden-signal.png      |   Bin
 .../query-guide}/images/math-expressions/hist.png  |   Bin
 .../images/math-expressions/histtable.png          |   Bin
 .../images/math-expressions/hullplot.png           |   Bin
 .../images/math-expressions/ifIsNull.png           |   Bin
 .../images/math-expressions/integral.png           |   Bin
 .../images/math-expressions/interpolate1.png       |   Bin
 .../query-guide}/images/math-expressions/knn.png   |   Bin
 .../images/math-expressions/knnRegress.png         |   Bin
 .../images/math-expressions/knnSearch.png          |   Bin
 .../query-guide}/images/math-expressions/line.png  |   Bin
 .../query-guide}/images/math-expressions/line1.png |   Bin
 .../images/math-expressions/linear.png             |   Bin
 .../query-guide}/images/math-expressions/loess.png |   Bin
 .../images/math-expressions/lognormal.png          |   Bin
 .../images/math-expressions/logs-collection.png    |   Bin
 .../images/math-expressions/logs-dates.png         |   Bin
 .../images/math-expressions/logs-sample.png        |   Bin
 .../images/math-expressions/logs-time-series.png   |   Bin
 .../images/math-expressions/logs-time-series2.png  |   Bin
 .../images/math-expressions/logs-time-series3.png  |   Bin
 .../math-expressions/logs-type-collection.png      |   Bin
 .../images/math-expressions/logs-type.png          |   Bin
 .../query-guide}/images/math-expressions/mad.png   |   Bin
 .../images/math-expressions/maddist.png            |   Bin
 .../images/math-expressions/madsort.png            |   Bin
 .../query-guide}/images/math-expressions/map.png   |   Bin
 .../images/math-expressions/matches.png            |   Bin
 .../images/math-expressions/matrix.png             |   Bin
 .../images/math-expressions/minmaxscale.png        |   Bin
 .../query-guide}/images/math-expressions/mnorm.png |   Bin
 .../images/math-expressions/mnorm1.png             |   Bin
 .../images/math-expressions/mnorm2.png             |   Bin
 .../images/math-expressions/monte-carlo.png        |   Bin
 .../images/math-expressions/movingMedian.png       |   Bin
 .../images/math-expressions/movingavg.png          |   Bin
 .../images/math-expressions/multitime1.png         |   Bin
 .../images/math-expressions/nodestab.png           |   Bin
 .../images/math-expressions/nodesviz.png           |   Bin
 .../math-expressions/noise-autocorrelation.png     |   Bin
 .../images/math-expressions/noise-fft.png          |   Bin
 .../query-guide}/images/math-expressions/noise.png |   Bin
 .../query-guide}/images/math-expressions/num.png   |   Bin
 .../images/math-expressions/number.png             |   Bin
 .../images/math-expressions/outliers.png           |   Bin
 .../images/math-expressions/overlay-series.png     |   Bin
 .../images/math-expressions/paging.png             |   Bin
 .../images/math-expressions/poisson.png            |   Bin
 .../images/math-expressions/polyfit-predict.png    |   Bin
 .../images/math-expressions/polyfit-resid.png      |   Bin
 .../images/math-expressions/polyfit.png            |   Bin
 .../images/math-expressions/qtime-dist.png         |   Bin
 .../math-expressions/qtime-highest-scatter.png     |   Bin
 .../images/math-expressions/qtime-scatter.png      |   Bin
 .../images/math-expressions/qtime-series.png       |   Bin
 .../images/math-expressions/quantile-plot.png      |   Bin
 .../images/math-expressions/quantiles.png          |   Bin
 .../images/math-expressions/quantiles1.png         |   Bin
 .../images/math-expressions/query-ids.png          |   Bin
 .../images/math-expressions/query-qq.png           |   Bin
 .../images/math-expressions/query-shard-level.png  |   Bin
 .../images/math-expressions/query-spike.png        |   Bin
 .../images/math-expressions/query-top-level.png    |   Bin
 .../images/math-expressions/randomwalk1.png        |   Bin
 .../images/math-expressions/randomwalk2.png        |   Bin
 .../images/math-expressions/randomwalk3.png        |   Bin
 .../images/math-expressions/randomwalk4.png        |   Bin
 .../images/math-expressions/randomwalk5.1.png      |   Bin
 .../images/math-expressions/randomwalk5.png        |   Bin
 .../images/math-expressions/randomwalk6.png        |   Bin
 .../images/math-expressions/ratscatter.png         |   Bin
 .../images/math-expressions/recNum.png             |   Bin
 .../images/math-expressions/redwine1.png           |   Bin
 .../images/math-expressions/redwine2.png           |   Bin
 .../images/math-expressions/regression-plot.png    |   Bin
 .../images/math-expressions/residual-plot.png      |   Bin
 .../images/math-expressions/residual-plot2.png     |   Bin
 .../images/math-expressions/residuals.png          |   Bin
 .../images/math-expressions/sample-overlay.png     |   Bin
 .../images/math-expressions/sample-scatter.png     |   Bin
 .../images/math-expressions/sample-scatter1.png    |   Bin
 .../images/math-expressions/scalar.png             |   Bin
 .../images/math-expressions/scoring.png            |   Bin
 .../images/math-expressions/search-error.png       |   Bin
 .../images/math-expressions/search-matches.png     |   Bin
 .../images/math-expressions/search-page.png        |   Bin
 .../images/math-expressions/search-resort.png      |   Bin
 .../images/math-expressions/search-sort-plot.png   |   Bin
 .../images/math-expressions/search-sort.png        |   Bin
 .../images/math-expressions/search.png             |   Bin
 .../images/math-expressions/search1.png            |   Bin
 .../images/math-expressions/searchiris.png         |   Bin
 .../images/math-expressions/season.png             |   Bin
 .../images/math-expressions/seasondiff.png         |   Bin
 .../images/math-expressions/select-math.png        |   Bin
 .../images/math-expressions/select1.png            |   Bin
 .../images/math-expressions/select2.png            |   Bin
 .../images/math-expressions/selectconcat.png       |   Bin
 .../images/math-expressions/selectupper.png        |   Bin
 .../images/math-expressions/selectuuid.png         |   Bin
 .../math-expressions/signal-autocorrelation.png    |   Bin
 .../images/math-expressions/signal-fft.png         |   Bin
 .../images/math-expressions/signal.png             |   Bin
 .../images/math-expressions/significantTerms2.png  |   Bin
 .../math-expressions/significantTermsCompare.png   |   Bin
 .../query-guide}/images/math-expressions/sined.png |   Bin
 .../images/math-expressions/sinewave.png           |   Bin
 .../images/math-expressions/sinewave256.png        |   Bin
 .../images/math-expressions/skipping.png           |   Bin
 .../images/math-expressions/slow-nodes.png         |   Bin
 .../images/math-expressions/slow-queries.png       |   Bin
 .../images/math-expressions/spline.png             |   Bin
 .../images/math-expressions/sqlagg.png             |   Bin
 .../query-guide}/images/math-expressions/stack.png |   Bin
 .../images/math-expressions/standardize.png        |   Bin
 .../images/math-expressions/stats-table.png        |   Bin
 .../query-guide}/images/math-expressions/stats.png |   Bin
 .../images/math-expressions/sterms.png             |   Bin
 .../images/math-expressions/stream.png             |   Bin
 .../images/math-expressions/striding.png           |   Bin
 .../query-guide}/images/math-expressions/table.png |   Bin
 .../images/math-expressions/text-analytics.png     |   Bin
 .../images/math-expressions/timecompare.png        |   Bin
 .../images/math-expressions/timemodel.png          |   Bin
 .../images/math-expressions/timeseries.png         |   Bin
 .../images/math-expressions/timeseries1.png        |   Bin
 .../images/math-expressions/timeseries2.png        |   Bin
 .../query-guide}/images/math-expressions/trend.png |   Bin
 .../images/math-expressions/triangular.png         |   Bin
 .../images/math-expressions/uniform.png            |   Bin
 .../images/math-expressions/uniformr.png           |   Bin
 .../images/math-expressions/unitize.png            |   Bin
 .../images/math-expressions/univariate.png         |   Bin
 .../images/math-expressions/update.png             |   Bin
 .../images/math-expressions/valueat.png            |   Bin
 .../images/math-expressions/variables.png          |   Bin
 .../images/math-expressions/variables1.png         |   Bin
 .../images/math-expressions/vector.png             |   Bin
 .../images/math-expressions/weibull.png            |   Bin
 .../query-guide}/images/math-expressions/xy.png    |   Bin
 .../images/math-expressions/xyscatter.png          |   Bin
 .../images/math-expressions/zepconf.png            |   Bin
 .../query-guide}/images/math-expressions/zipf.png  |   Bin
 .../images/other-parsers/graph_qparser_example.png |   Bin
 .../images/other-parsers/graph_qparser_example.svg |     0
 .../images/parallel-sql-interface/cluster.png      |   Bin
 .../query-guide}/images/query-screen/query-top.png |   Bin
 .../result-clustering/carrot2-docs-attrs1.png      |   Bin
 .../result-clustering/carrot2-docs-attrs2.png      |   Bin
 .../images/result-clustering/carrot2.png           |   Bin
 .../query-guide}/images/spatial-search/bbox.png    |   Bin
 .../query-guide}/images/spatial-search/circle.png  |   Bin
 .../images/stream-screen/StreamScreen.png          |   Bin
 .../pages}/analytics-expression-sources.adoc       |     0
 .../pages}/analytics-mapping-functions.adoc        |     0
 .../pages}/analytics-reduction-functions.adoc      |     0
 .../query-guide/pages}/analytics.adoc              |     0
 .../pages}/block-join-query-parser.adoc            |     0
 .../pages}/collapse-and-expand-results.adoc        |     0
 .../pages}/common-query-parameters.adoc            |     0
 .../query-guide/pages}/computational-geometry.adoc |     8 +-
 .../query-guide/pages}/controlling-results.adoc    |     0
 .../query-guide/pages}/curve-fitting.adoc          |    14 +-
 .../query-guide/pages}/dismax-query-parser.adoc    |     0
 .../query-guide/pages}/document-transformers.adoc  |     0
 .../{src => modules/query-guide/pages}/dsp.adoc    |    34 +-
 .../query-guide/pages}/edismax-query-parser.adoc   |     0
 .../query-guide/pages}/enhancing-queries.adoc      |     0
 .../query-guide/pages}/exporting-result-sets.adoc  |     0
 .../query-guide/pages}/faceting.adoc               |     0
 .../query-guide/pages}/function-queries.adoc       |     0
 .../query-guide/pages}/graph-traversal.adoc        |     0
 .../{src => modules/query-guide/pages}/graph.adoc  |     6 +-
 .../query-guide/pages}/highlighting.adoc           |     0
 .../query-guide/pages}/jdbc-dbvisualizer.adoc      |    34 +-
 .../query-guide/pages}/jdbc-python-jython.adoc     |     0
 .../{src => modules/query-guide/pages}/jdbc-r.adoc |     0
 .../query-guide/pages}/jdbc-squirrel.adoc          |    26 +-
 .../query-guide/pages}/jdbc-zeppelin.adoc          |    12 +-
 .../query-guide/pages}/join-query-parser.adoc      |     0
 .../query-guide/pages}/json-facet-api.adoc         |    26 +-
 .../pages}/json-faceting-domain-changes.adoc       |     8 +-
 .../query-guide/pages}/json-query-dsl.adoc         |    24 +-
 .../query-guide/pages}/json-request-api.adoc       |    14 +-
 .../query-guide/pages}/learning-to-rank.adoc       |     0
 .../query-guide/pages}/loading.adoc                |    36 +-
 .../query-guide/pages}/local-params.adoc           |     0
 .../{src => modules/query-guide/pages}/logs.adoc   |    46 +-
 .../query-guide/pages}/machine-learning.adoc       |    32 +-
 .../query-guide/pages}/math-expressions.adoc       |     2 +-
 .../query-guide/pages}/math-start.adoc             |     6 +-
 .../query-guide/pages}/matrix-math.adoc            |     2 +-
 .../query-guide/pages}/morelikethis.adoc           |     0
 .../query-guide/pages}/numerical-analysis.adoc     |    12 +-
 .../query-guide/pages}/other-parsers.adoc          |     2 +-
 .../query-guide/pages}/pagination-of-results.adoc  |     0
 .../query-guide/pages}/parallel-sql-interface.adoc |     2 +-
 .../pages}/probability-distributions.adoc          |    38 +-
 .../pages}/query-elevation-component.adoc          |     0
 .../query-guide/pages}/query-guide.adoc            |     0
 .../query-guide/pages}/query-re-ranking.adoc       |     0
 .../query-guide/pages}/query-screen.adoc           |     2 +-
 .../pages}/query-syntax-and-parsers.adoc           |     0
 .../query-guide/pages}/regression.adoc             |     8 +-
 .../query-guide/pages}/response-writers.adoc       |     0
 .../query-guide/pages}/result-clustering.adoc      |     6 +-
 .../query-guide/pages}/result-grouping.adoc        |     0
 .../query-guide/pages}/scalar-math.adoc            |     8 +-
 .../query-guide/pages}/search-sample.adoc          |    36 +-
 .../pages}/searching-nested-documents.adoc         |     0
 .../query-guide/pages}/simulations.adoc            |    24 +-
 .../query-guide/pages}/spatial-search.adoc         |     4 +-
 .../query-guide/pages}/spell-checking.adoc         |     0
 .../query-guide/pages}/standard-query-parser.adoc  |     0
 .../query-guide/pages}/statistics.adoc             |    24 +-
 .../query-guide/pages}/stats-component.adoc        |     0
 .../query-guide/pages}/stream-api.adoc             |     0
 .../pages}/stream-decorator-reference.adoc         |     0
 .../pages}/stream-evaluator-reference.adoc         |     0
 .../query-guide/pages}/stream-screen.adoc          |     2 +-
 .../pages}/stream-source-reference.adoc            |     0
 .../query-guide/pages}/streaming-expressions.adoc  |     0
 .../query-guide/pages}/suggester.adoc              |     0
 .../query-guide/pages}/tagger-handler.adoc         |     0
 .../query-guide/pages}/term-vector-component.adoc  |     0
 .../query-guide/pages}/term-vectors.adoc           |     2 +-
 .../query-guide/pages}/terms-component.adoc        |     0
 .../query-guide/pages}/time-series.adoc            |    34 +-
 .../query-guide/pages}/transform.adoc              |    20 +-
 .../query-guide/pages}/variables.adoc              |     4 +-
 .../query-guide/pages}/vector-math.adoc            |     8 +-
 .../query-guide/pages}/visualization.adoc          |    62 +-
 .../modules/query-guide/querying-nav.adoc          |    84 +
 .../pages}/major-changes-in-solr-6.adoc            |     0
 .../pages}/major-changes-in-solr-7.adoc            |     0
 .../pages}/major-changes-in-solr-8.adoc            |     0
 .../pages}/major-changes-in-solr-9.adoc            |     0
 .../upgrade-notes/pages}/solr-upgrade-notes.adoc   |    88 +-
 .../modules/upgrade-notes/upgrade-nav.adoc         |     6 +
 solr/solr-ref-guide/package-lock.json              |  1888 +++
 solr/solr-ref-guide/playbook.yml                   |    19 +
 solr/solr-ref-guide/ui/.editorconfig               |     9 +
 solr/solr-ref-guide/ui/.eslintrc                   |    14 +
 solr/solr-ref-guide/ui/.gitignore                  |     3 +
 solr/solr-ref-guide/ui/.gitlab-ci.yml              |    55 +
 solr/solr-ref-guide/ui/.gulp.json                  |     4 +
 solr/solr-ref-guide/ui/.nvmrc                      |     1 +
 solr/solr-ref-guide/ui/.stylelintrc                |     7 +
 solr/solr-ref-guide/ui/LICENSE                     |   373 +
 solr/solr-ref-guide/ui/README.adoc                 |   219 +
 .../ui/gulp.d/tasks/build-preview-pages.js         |   141 +
 solr/solr-ref-guide/ui/gulp.d/tasks/build.js       |   134 +
 solr/solr-ref-guide/ui/gulp.d/tasks/format.js      |    10 +
 solr/solr-ref-guide/ui/gulp.d/tasks/index.js       |     5 +
 solr/solr-ref-guide/ui/gulp.d/tasks/lint-css.js    |    10 +
 solr/solr-ref-guide/ui/gulp.d/tasks/lint-js.js     |    12 +
 solr/solr-ref-guide/ui/gulp.d/tasks/pack.js        |    11 +
 solr/solr-ref-guide/ui/gulp.d/tasks/remove.js      |     9 +
 solr/solr-ref-guide/ui/gulp.d/tasks/serve.js       |    36 +
 solr/solr-ref-guide/ui/gulp.d/tools/create-task.js |    24 +
 .../solr-ref-guide/ui/gulp.d/tools/export-tasks.js |    14 +
 .../ui/gulp.d/tools/gulp-prettier-eslint.js        |    44 +
 solr/solr-ref-guide/ui/gulpfile.js                 |   125 +
 solr/solr-ref-guide/ui/index.js                    |     4 +
 solr/solr-ref-guide/ui/package-lock.json           | 12127 +++++++++++++++++++
 solr/solr-ref-guide/ui/package.json                |    57 +
 solr/solr-ref-guide/ui/preview-src/404.adoc        |     0
 solr/solr-ref-guide/ui/preview-src/index.adoc      |   284 +
 .../ui/preview-src/multirepo-ssg.svg               |    44 +
 solr/solr-ref-guide/ui/preview-src/ui-model.yml    |   126 +
 solr/solr-ref-guide/ui/src/css/base.css            |    93 +
 solr/solr-ref-guide/ui/src/css/body.css            |     5 +
 solr/solr-ref-guide/ui/src/css/breadcrumbs.css     |    38 +
 solr/solr-ref-guide/ui/src/css/doc.css             |   889 ++
 solr/solr-ref-guide/ui/src/css/footer.css          |    15 +
 solr/solr-ref-guide/ui/src/css/header.css          |   266 +
 solr/solr-ref-guide/ui/src/css/highlight.css       |    86 +
 solr/solr-ref-guide/ui/src/css/main.css            |    35 +
 solr/solr-ref-guide/ui/src/css/nav.css             |   260 +
 solr/solr-ref-guide/ui/src/css/page-versions.css   |    56 +
 solr/solr-ref-guide/ui/src/css/pagination.css      |    63 +
 solr/solr-ref-guide/ui/src/css/print.css           |    84 +
 solr/solr-ref-guide/ui/src/css/site.css            |    17 +
 solr/solr-ref-guide/ui/src/css/toc.css             |    96 +
 solr/solr-ref-guide/ui/src/css/toolbar.css         |    68 +
 .../ui/src/css/typeface-inconsolata.css            |    11 +
 .../ui/src/css/typeface-noto-sans.css              |    18 +
 .../ui/src/css/typeface-roboto-mono.css            |    21 +
 solr/solr-ref-guide/ui/src/css/typeface-roboto.css |    43 +
 solr/solr-ref-guide/ui/src/css/vars.css            |   150 +
 .../ui/src/font/Inconsolata-Bold.ttf               |   Bin 0 -> 109948 bytes
 .../ui/src/font/Inconsolata-Regular.ttf            |   Bin 0 -> 96964 bytes
 .../solr-ref-guide/ui/src/font/Inconsolata/OFL.txt |    92 +
 solr/solr-ref-guide/ui/src/font/NotoSans-Bold.ttf  |   Bin 0 -> 415132 bytes
 .../ui/src/font/NotoSans-BoldItalic.ttf            |   Bin 0 -> 290436 bytes
 .../solr-ref-guide/ui/src/font/NotoSans-Italic.ttf |   Bin 0 -> 279268 bytes
 .../ui/src/font/NotoSans-Regular.ttf               |   Bin 0 -> 414820 bytes
 .../ui/src/font/Noto_Sans/LICENSE.txt              |   202 +
 solr/solr-ref-guide/ui/src/helpers/and.js          |     9 +
 solr/solr-ref-guide/ui/src/helpers/detag.js        |     5 +
 solr/solr-ref-guide/ui/src/helpers/eq.js           |     3 +
 solr/solr-ref-guide/ui/src/helpers/increment.js    |     3 +
 solr/solr-ref-guide/ui/src/helpers/ne.js           |     3 +
 solr/solr-ref-guide/ui/src/helpers/not.js          |     3 +
 solr/solr-ref-guide/ui/src/helpers/or.js           |     9 +
 solr/solr-ref-guide/ui/src/helpers/relativize.js   |    24 +
 solr/solr-ref-guide/ui/src/helpers/year.js         |     3 +
 solr/solr-ref-guide/ui/src/img/back.svg            |    86 +
 solr/solr-ref-guide/ui/src/img/caret.svg           |    63 +
 solr/solr-ref-guide/ui/src/img/chevron.svg         |    63 +
 .../{src/images/icons => ui/src/img}/favicon.ico   |   Bin
 solr/solr-ref-guide/ui/src/img/home-o.svg          |   124 +
 solr/solr-ref-guide/ui/src/img/home.svg            |   124 +
 solr/solr-ref-guide/ui/src/img/menu.svg            |   158 +
 solr/solr-ref-guide/ui/src/img/octicons-16.svg     |    36 +
 .../images => ui/src/img}/solr-sunOnly-small.png   |   Bin
 solr/solr-ref-guide/ui/src/js/01-nav.js            |   154 +
 solr/solr-ref-guide/ui/src/js/02-on-this-page.js   |   114 +
 .../solr-ref-guide/ui/src/js/03-fragment-jumper.js |    39 +
 solr/solr-ref-guide/ui/src/js/04-page-versions.js  |    17 +
 solr/solr-ref-guide/ui/src/js/05-mobile-navbar.js  |    20 +
 .../ui/src/js/06-copy-to-clipboard.js              |    76 +
 .../ui/src/js/vendor/highlight.bundle.js           |    40 +
 solr/solr-ref-guide/ui/src/layouts/404.hbs         |    11 +
 solr/solr-ref-guide/ui/src/layouts/default.hbs     |    11 +
 .../solr-ref-guide/ui/src/partials/article-404.hbs |    10 +
 solr/solr-ref-guide/ui/src/partials/article.hbs    |     7 +
 solr/solr-ref-guide/ui/src/partials/body.hbs       |     4 +
 .../solr-ref-guide/ui/src/partials/breadcrumbs.hbs |    20 +
 .../ui/src/partials/footer-content.hbs             |     4 +
 .../ui/src/partials/footer-scripts.hbs             |     2 +
 solr/solr-ref-guide/ui/src/partials/footer.hbs     |     2 +
 solr/solr-ref-guide/ui/src/partials/head-icons.hbs |     1 +
 solr/solr-ref-guide/ui/src/partials/head-info.hbs  |    20 +
 solr/solr-ref-guide/ui/src/partials/head-meta.hbs  |     1 +
 .../ui/src/partials/head-prelude.hbs               |     2 +
 .../ui/src/partials/head-scripts.hbs               |     5 +
 .../solr-ref-guide/ui/src/partials/head-styles.hbs |     1 +
 solr/solr-ref-guide/ui/src/partials/head-title.hbs |     1 +
 solr/solr-ref-guide/ui/src/partials/head.hbs       |     7 +
 .../ui/src/partials/header-content.hbs             |    32 +
 .../ui/src/partials/header-scripts.hbs             |     1 +
 solr/solr-ref-guide/ui/src/partials/header.hbs     |     2 +
 solr/solr-ref-guide/ui/src/partials/main.hbs       |    11 +
 .../solr-ref-guide/ui/src/partials/nav-explore.hbs |    24 +
 solr/solr-ref-guide/ui/src/partials/nav-menu.hbs   |    10 +
 solr/solr-ref-guide/ui/src/partials/nav-toggle.hbs |     1 +
 solr/solr-ref-guide/ui/src/partials/nav-tree.hbs   |    21 +
 solr/solr-ref-guide/ui/src/partials/nav.hbs        |     8 +
 .../ui/src/partials/page-versions.hbs              |    12 +
 solr/solr-ref-guide/ui/src/partials/pagination.hbs |    12 +
 solr/solr-ref-guide/ui/src/partials/toc.hbs        |     3 +
 solr/solr-ref-guide/ui/src/partials/toolbar.hbs    |    13 +
 736 files changed, 20611 insertions(+), 477 deletions(-)

diff --git a/solr/.gitignore b/solr/.gitignore
index e6e2e7e..d78365b 100644
--- a/solr/.gitignore
+++ b/solr/.gitignore
@@ -25,3 +25,5 @@
 
 lib/
 test-lib/
+
+/solr-ref-guide/node_modules/
diff --git a/solr/solr-ref-guide/antora.yml b/solr/solr-ref-guide/antora.yml
new file mode 100644
index 0000000..5c21e8b
--- /dev/null
+++ b/solr/solr-ref-guide/antora.yml
@@ -0,0 +1,19 @@
+name: solr
+version: '9_0_0'
+display_version: '9.0'
+title: Solr
+nav:
+- modules/getting-started/getting-started-nav.adoc
+- modules/deployment-guide/deployment-nav.adoc
+- modules/configuration-guide/config-nav.adoc
+- modules/indexing-guide/indexing-nav.adoc
+- modules/query-guide/querying-nav.adoc
+- modules/upgrade-notes/upgrade-nav.adoc
+asciidoc:
+  attributes:
+    solr-javadocs: https://solr.apache.org/docs/9_0_0/
+    lucene-javadocs: https://lucene.apache.org/core/9_0_0/
+    solr-root-path: /Users/cass/solr-repos/solr-fork/solr/
+    solr-docs-version: '9.0'
+    idseparator: '-'
+    idprefix: ''
diff --git a/solr/solr-ref-guide/build.gradle b/solr/solr-ref-guide/build.gradle
index 884a154..3a87782 100644
--- a/solr/solr-ref-guide/build.gradle
+++ b/solr/solr-ref-guide/build.gradle
@@ -29,6 +29,7 @@ buildscript {
 plugins {
     id 'java'
     id 'com.github.jruby-gradle.base' version '2.0.1'
+    id 'io.github.rwinch.antora' version '0.0.2'
 }
 
 // This project does not contribute anything to main dependencies.
@@ -288,3 +289,8 @@ abstract class PrepareSources extends DefaultTask {
         }
     }
 }
+
+antora {
+  playbookFile = file("playbook.yml")
+  antoraVersion = "3.0.0-alpha.10"
+}
diff --git a/solr/solr-ref-guide/src/images/Solr_Logo_on_white.png b/solr/solr-ref-guide/modules/ROOT/images/Solr_Logo_on_white.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/Solr_Logo_on_white.png
rename to solr/solr-ref-guide/modules/ROOT/images/Solr_Logo_on_white.png
diff --git a/solr/solr-ref-guide/src/images/diagrams/splitshard-seq.png b/solr/solr-ref-guide/modules/ROOT/images/diagrams/splitshard-seq.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/diagrams/splitshard-seq.png
rename to solr/solr-ref-guide/modules/ROOT/images/diagrams/splitshard-seq.png
diff --git a/solr/solr-ref-guide/src/images/diagrams/splitshard-seq.puml b/solr/solr-ref-guide/modules/ROOT/images/diagrams/splitshard-seq.puml
similarity index 100%
rename from solr/solr-ref-guide/src/images/diagrams/splitshard-seq.puml
rename to solr/solr-ref-guide/modules/ROOT/images/diagrams/splitshard-seq.puml
diff --git a/solr/solr-ref-guide/src/images/draft-background.png b/solr/solr-ref-guide/modules/ROOT/images/draft-background.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/draft-background.png
rename to solr/solr-ref-guide/modules/ROOT/images/draft-background.png
diff --git a/solr/solr-ref-guide/src/images/icons/bullet_blue.gif b/solr/solr-ref-guide/modules/ROOT/images/icons/bullet_blue.gif
similarity index 100%
rename from solr/solr-ref-guide/src/images/icons/bullet_blue.gif
rename to solr/solr-ref-guide/modules/ROOT/images/icons/bullet_blue.gif
diff --git a/solr/solr-ref-guide/src/images/icons/contenttypes/home_page_16.png b/solr/solr-ref-guide/modules/ROOT/images/icons/contenttypes/home_page_16.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/icons/contenttypes/home_page_16.png
rename to solr/solr-ref-guide/modules/ROOT/images/icons/contenttypes/home_page_16.png
diff --git a/solr/solr-ref-guide/src/images/icons/emoticons/warning.png b/solr/solr-ref-guide/modules/ROOT/images/icons/emoticons/warning.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/icons/emoticons/warning.png
rename to solr/solr-ref-guide/modules/ROOT/images/icons/emoticons/warning.png
diff --git a/solr/solr-ref-guide/src/images/icons/favicon.ico b/solr/solr-ref-guide/modules/ROOT/images/icons/favicon.ico
similarity index 100%
copy from solr/solr-ref-guide/src/images/icons/favicon.ico
copy to solr/solr-ref-guide/modules/ROOT/images/icons/favicon.ico
diff --git a/solr/solr-ref-guide/src/images/solr-sunOnly-small.png b/solr/solr-ref-guide/modules/ROOT/images/solr-sunOnly-small.png
similarity index 100%
copy from solr/solr-ref-guide/src/images/solr-sunOnly-small.png
copy to solr/solr-ref-guide/modules/ROOT/images/solr-sunOnly-small.png
diff --git a/solr/solr-ref-guide/src/index.adoc b/solr/solr-ref-guide/modules/ROOT/pages/index.adoc
similarity index 88%
rename from solr/solr-ref-guide/src/index.adoc
rename to solr/solr-ref-guide/modules/ROOT/pages/index.adoc
index 010cdda..8f9eb3f 100644
--- a/solr/solr-ref-guide/src/index.adoc
+++ b/solr/solr-ref-guide/modules/ROOT/pages/index.adoc
@@ -44,7 +44,7 @@ The Guide includes the following sections:
 ****
 [.home-table,cols="1,1,1",frame=none,grid=none,stripes=none]
 |===
-^| <<getting-started.adoc#,Getting Started>> ^| <<deployment-guide.adoc#,Deployment Guide>> ^| <<configuration-guide.adoc#,Configuration Guide>>
+^| xref:getting-started:getting-started.adoc[] ^| xref:deployment-guide:deployment-guide.adoc[] ^| xref:configuration-guide:configuration-guide.adoc[]
 
 | Introductory concepts and tutorials. | Installation, monitoring, scaling, and deploying to production. | Tuning Solr's configuration files for your use case.
 
@@ -52,7 +52,7 @@ The Guide includes the following sections:
 
 [.home-table,cols="1,1,1",frame=none,grid=none,stripes=none]
 |===
-^| <<schema-indexing-guide.adoc#,Schema & Indexing Guide>> ^| <<query-guide.adoc#,Query Guide>> ^| <<solr-upgrade-notes.adoc#,Solr Upgrade Notes>>
+^| xref:indexing-guide:schema-indexing-guide.adoc[] ^| xref:query-guide:query-guide.adoc[] ^| xref:upgrade-notes:solr-upgrade-notes.adoc[]
 
 | Configuring Solr's schema and indexing documents. | All aspects of Solr queries. | Change notes for Solr releases.
 
diff --git a/solr/solr-ref-guide/modules/configuration-guide/config-nav.adoc b/solr/solr-ref-guide/modules/configuration-guide/config-nav.adoc
new file mode 100644
index 0000000..6121d5c
--- /dev/null
+++ b/solr/solr-ref-guide/modules/configuration-guide/config-nav.adoc
@@ -0,0 +1,39 @@
+.Configuration Guide
+* xref:configuration-guide.adoc[]
+** xref:configuration-files.adoc[]
+** xref:property-substitution.adoc[]
+** xref:core-discovery.adoc[]
+** xref:configuring-solr-xml.adoc[]
+
+** xref:configuring-solrconfig-xml.adoc[]
+*** xref:index-location-format.adoc[]
+*** xref:index-segments-merging.adoc[]
+*** xref:schema-factory.adoc[]
+*** xref:commits-transaction-logs.adoc[]
+*** xref:caches-warming.adoc[]
+*** xref:requesthandlers-searchcomponents.adoc[]
+*** xref:implicit-requesthandlers.adoc[]
+*** xref:realtime-get.adoc[]
+*** xref:initparams.adoc[]
+*** xref:requestdispatcher.adoc[]
+*** xref:update-request-processors.adoc[]
+*** xref:script-update-processor.adoc[]
+*** xref:codec-factory.adoc[]
+
+** xref:configuration-apis.adoc[]
+*** xref:config-api.adoc[]
+*** xref:request-parameters-api.adoc[]
+*** xref:managed-resources.adoc[]
+*** xref:collections-api.adoc[]
+*** xref:configsets-api.adoc[]
+*** xref:coreadmin-api.adoc[]
+*** xref:v2-api.adoc[]
+
+** xref:config-sets.adoc[]
+** xref:resource-loading.adoc[]
+** xref:solr-plugins.adoc[]
+*** xref:libs.adoc[]
+*** xref:package-manager.adoc[]
+**** xref:package-manager-internals.adoc[]
+*** xref:cluster-plugins.adoc[]
+*** xref:replica-placement-plugins.adoc[]
diff --git a/solr/solr-ref-guide/src/images/configuration-files/files-screen.png b/solr/solr-ref-guide/modules/configuration-guide/images/configuration-files/files-screen.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/configuration-files/files-screen.png
rename to solr/solr-ref-guide/modules/configuration-guide/images/configuration-files/files-screen.png
diff --git a/solr/solr-ref-guide/src/images/index-segments-merging/segments_info.png b/solr/solr-ref-guide/modules/configuration-guide/images/index-segments-merging/segments_info.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/index-segments-merging/segments_info.png
rename to solr/solr-ref-guide/modules/configuration-guide/images/index-segments-merging/segments_info.png
diff --git a/solr/solr-ref-guide/src/caches-warming.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/caches-warming.adoc
similarity index 92%
rename from solr/solr-ref-guide/src/caches-warming.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/caches-warming.adoc
index 0948b66..14313f8 100644
--- a/solr/solr-ref-guide/src/caches-warming.adoc
+++ b/solr/solr-ref-guide/modules/configuration-guide/pages/caches-warming.adoc
@@ -19,7 +19,7 @@
 Solr's caches provide an essential way to improve query performance.
 Caches can store documents, filters used in queries, and results from previous queries.
 
-Caches are cleared after a <<commits-transaction-logs.adoc#commits,commit>> and usually need to be re-populated before their benefit can be seen again.
+Caches are cleared after a xref:commits-transaction-logs.adoc#commits[commit] and usually need to be re-populated before their benefit can be seen again.
 To counteract this, caches can be "warmed" before a new searcher is considered opened by automatically populating the new cache with values from the old cache.
 
 Cache management is critical to a successful Solr implementation, so it should be noted that caches will need to be fine-tuned as your application grows.
@@ -61,7 +61,7 @@ Generally this cache usually offers lower memory footprint, higher hit ratio, an
 
 `CaffeineCache` uses an auto-warm count that supports both integers and percentages which get evaluated relative to the current size of the cache when warming happens.
 
-The <<plugins-stats-screen.adoc#,Plugins/Stats>> page in the Solr Admin UI will display information about the performance of all the active caches.
+The xref:deployment-guide:plugins-stats-screen.adoc[] in the Solr Admin UI will display information about the performance of all the active caches.
 This information can help you fine-tune the sizes of the various caches appropriately for your particular application.
 When a Searcher terminates, a summary of its cache usage is also written to the log.
 
@@ -86,7 +86,7 @@ The async cache provides most significant improvement with many concurrent queri
 However, the async cache will not prevent data races for time-limited queries, since those are expected to provide partial results.
 
 All caches can be disabled using the parameter `enabled` with a value of `false`.
-Caches can also be disabled on a query-by-query basis with the `cache` parameter, as described in the section <<common-query-parameters.adoc#cache-local-parameter,cache Local Parameter>>.
+Caches can also be disabled on a query-by-query basis with the `cache` parameter, as described in the section xref:query-guide:common-query-parameters.adoc#cache-local-parameter[cache Local Parameter].
 
 Details of each cache are described below.
 
@@ -97,13 +97,13 @@ Unless such a set is trivially small, the set implementation is a bitset.
 
 The most typical way Solr uses the `filterCache` is to cache results of each `fq` search parameter, though there are some other cases as well.
 Subsequent queries using the same parameter filter query result in cache hits and rapid returns of results.
-See <<common-query-parameters.adoc#fq-filter-query-parameter,fq (Filter Query) Parameter>> for a detailed discussion of `fq`.
-Use of this cache can be disabled for a `fq` using the <<common-query-parameters.adoc#cache-local-parameter,`cache` local parameter>>.
+See xref:query-guide:common-query-parameters.adoc#fq-filter-query-parameter[fq (Filter Query) Parameter] for a detailed discussion of `fq`.
+Use of this cache can be disabled for a `fq` using the xref:query-guide:common-query-parameters.adoc#cache-local-parameter[`cache` local parameter].
 
 Another Solr feature using this cache is the `filter(...)` syntax in the default Lucene query parser.
 
 Solr also uses this cache for faceting when the configuration parameter `facet.method` is set to `fc`.
-For a discussion of faceting parameters, see <<faceting.adoc#field-value-faceting-parameters,Field-Value Faceting Parameters>>.
+For a discussion of faceting parameters, see xref:query-guide:faceting.adoc#field-value-faceting-parameters[Field-Value Faceting Parameters].
 
 [source,xml]
 ----
@@ -144,7 +144,7 @@ This lets you specify the maximum heap size, in megabytes, used by the contents
 When the cache grows beyond this size, oldest accessed queries will be evicted until the heap usage of the cache decreases below the specified limit.
 If a `size` is specified in addition to `maxRamMB` then only the heap usage limit is respected.
 
-Use of this cache can be disabled on a query-by-query basis in `q` using the <<common-query-parameters.adoc#cache-local-parameter,cache local parameter>>.
+Use of this cache can be disabled on a query-by-query basis in `q` using the xref:query-guide:common-query-parameters.adoc#cache-local-parameter[`cache` local parameter].
 
 [source,xml]
 ----
@@ -190,8 +190,8 @@ Define it with the `regenerator` parameter as `regenerator="solr.NoOpRegenerator
 
 === Monitoring Cache Sizes and Usage
 
-The section <<performance-statistics-reference.adoc#cache-statistics,Cache Statistics>> describes the metrics available for each cache.
-The metrics can be accessed in the <<plugins-stats-screen.adoc#,Solr Admin UI>> or in the <<metrics-reporting.adoc#metrics-api,Metrics API>>.
+The section xref:deployment-guide:performance-statistics-reference.adoc#cache-statistics[Cache Statistics] describes the metrics available for each cache.
+The metrics can be accessed in the xref:deployment-guide:plugins-stats-screen.adoc[] or with the xref:deployment-guide:metrics-reporting.adoc#metrics-api[Metrics API].
 
 The most important metrics to review when assessing caches are the size and the hit ratio.
 
@@ -313,7 +313,7 @@ There are two types of events that can trigger a listener.
 . A `firstSearcher` event occurs when a new searcher is being prepared but there is no current registered searcher to handle requests or to gain auto-warming data from (i.e., on Solr startup).
 . A `newSearcher` event is fired whenever a new searcher is being prepared, such as after a commit, and there is a current searcher handling requests.
 
-The (commented out) examples below can be found in the `solrconfig.xml` file of the `sample_techproducts_configs` <<config-sets.adoc#,configset>> included with Solr, and demonstrate using the `solr.QuerySenderListener` class to warm a set of explicit queries:
+The (commented out) examples below can be found in the `solrconfig.xml` file of the `sample_techproducts_configs` xref:config-sets.adoc[configset] included with Solr, and demonstrate using the `solr.QuerySenderListener` class to warm a set of explicit queries:
 
 [source,xml]
 ----
diff --git a/solr/solr-ref-guide/src/cluster-plugins.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/cluster-plugins.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/cluster-plugins.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/cluster-plugins.adoc
diff --git a/solr/solr-ref-guide/src/codec-factory.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/codec-factory.adoc
similarity index 92%
rename from solr/solr-ref-guide/src/codec-factory.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/codec-factory.adoc
index 590f73e..c16b59b 100644
--- a/solr/solr-ref-guide/src/codec-factory.adoc
+++ b/solr/solr-ref-guide/modules/configuration-guide/pages/codec-factory.adoc
@@ -27,7 +27,7 @@ There are two alternatives to Lucene's default codec.
 
 The {solr-javadocs}/core/org/apache/solr/core/SchemaCodecFactory.html[`solr.SchemaCodecFactory`] supports 2 key features:
 
-* Schema based per-fieldtype configuration for `docValuesFormat` and `postingsFormat` - see the <<field-type-definitions-and-properties.adoc#field-type-properties,Field Type Properties>> section for more details.
+* Schema based per-fieldtype configuration for `docValuesFormat` and `postingsFormat` - see the xref:indexing-guide:field-type-definitions-and-properties.adoc#field-type-properties[Field Type Properties] section for more details.
 * A `compressionMode` option:
 ** `BEST_SPEED` (default) is optimized for search speed performance
 ** `BEST_COMPRESSION` is optimized for disk space usage
diff --git a/solr/solr-ref-guide/src/collections-api.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/collections-api.adoc
similarity index 89%
rename from solr/solr-ref-guide/src/collections-api.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/collections-api.adoc
index 93a1e46..5995546 100644
--- a/solr/solr-ref-guide/src/collections-api.adoc
+++ b/solr/solr-ref-guide/modules/configuration-guide/pages/collections-api.adoc
@@ -22,15 +22,15 @@ The Collections API is provided to allow you to control your cluster, including
 
 Because this API has a large number of commands and options, we've grouped the commands into the following sub-sections:
 
-*<<cluster-node-management.adoc#,Cluster and Node Management>>*: Define properties for the entire cluster; check the status of a cluster; remove replicas from a node; utilize a newly added node; add or remove roles for a node.
+*xref:deployment-guide:cluster-node-management.adoc[]*: Define properties for the entire cluster; check the status of a cluster; remove replicas from a node; utilize a newly added node; add or remove roles for a node.
 
-*<<collection-management.adoc#,Collection Management>>*: Create, list, reload and delete collections; set collection properties; migrate documents to another collection; rebalance leaders; backup and restore collections.
+*xref:deployment-guide:collection-management.adoc[]*: Create, list, reload and delete collections; set collection properties; migrate documents to another collection; rebalance leaders; backup and restore collections.
 
-*<<alias-management.adoc#,Alias Management>>*: Create, list or delete collection aliases; set alias properties.
+*xref:deployment-guide:alias-management.adoc[]*: Create, list or delete collection aliases; set alias properties.
 
-*<<shard-management.adoc#,Shard Management>>*: Create and delete a shard; split a shard into two or more additional shards; force a shard leader.
+*xref:deployment-guide:shard-management.adoc[]*: Create and delete a shard; split a shard into two or more additional shards; force a shard leader.
 
-*<<replica-management.adoc#,Replica Management>>*: Add or delete a replica; set replica properties; move a replica to a different node.
+*xref:deployment-guide:replica-management.adoc[]*: Add or delete a replica; set replica properties; move a replica to a different node.
 
 == Asynchronous Calls
 
diff --git a/solr/solr-ref-guide/src/commits-transaction-logs.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/commits-transaction-logs.adoc
similarity index 95%
rename from solr/solr-ref-guide/src/commits-transaction-logs.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/commits-transaction-logs.adoc
index fc82503..ea56017 100644
--- a/solr/solr-ref-guide/src/commits-transaction-logs.adoc
+++ b/solr/solr-ref-guide/modules/configuration-guide/pages/commits-transaction-logs.adoc
@@ -37,7 +37,7 @@ The `_default` configset included with Solr has this section defined already, bu
 </config>
 ----
 
-Note that `<updateHandler>` configurations do not affect the higher level configuration of <<requesthandlers-searchcomponents.adoc#,request handlers>> that process client update requests.
+Note that `<updateHandler>` configurations do not affect the higher level configuration of xref:requesthandlers-searchcomponents.adoc[request handlers] that process client update requests.
 
 == Commits
 
@@ -69,9 +69,9 @@ When a client includes a `commit=true` parameter with an update request, this en
 If an additional parameter `softCommit=true` is specified, then Solr performs a soft commit.
 This is an implementation of Near Real Time storage, a feature that boosts document visibility, since you don't have to wait for background merges and storage (to ZooKeeper, if using SolrCloud) to finish before moving on to something else.
 
-Details about using explicit commit requests during indexing are in the section <<indexing-with-update-handlers.adoc#,Indexing with Update Handlers>>.
+Details about using explicit commit requests during indexing are in the section xref:indexing-guide:indexing-with-update-handlers.adoc[Indexing with Update Handlers].
 
-For more information about Near Real Time operations, see <<solrcloud-distributed-requests.adoc#near-real-time-nrt-use-cases,Near Real Time Use Cases>>.
+For more information about Near Real Time operations, see xref:deployment-guide:solrcloud-distributed-requests.adoc#near-real-time-nrt-use-cases[Near Real Time Use Cases].
 
 === Automatic Commits
 
@@ -186,7 +186,7 @@ TIP: For extremely high bulk indexing, especially for the initial load if there
 An alternative to `autoCommit` is to use `commitWithin`, which can be defined when making the update request to Solr (i.e., when pushing documents), or in an update request handler.
 
 The `commitWithin` settings allow forcing document commits to happen in a defined time period.
-This is used most frequently with <<solrcloud-distributed-requests.adoc#near-real-time-nrt-use-cases,Near Real Time use cases>>, and for that reason the default is to perform a soft commit.
+This is used most frequently with xref:deployment-guide:solrcloud-distributed-requests.adoc#near-real-time-nrt-use-cases[Near Real Time use cases], and for that reason the default is to perform a soft commit.
 This does not, however, replicate new documents to follower servers in a user-managed cluster.
 If that's a requirement for your implementation, you can force a hard commit by adding a parameter, as in this example:
 
@@ -221,7 +221,7 @@ Therefore it is important that hard commits be enabled when indexing.
 
 === Transaction Log Configuration
 
-Transaction logs are required for all SolrCloud clusters, as well as the <<realtime-get.adoc#,RealTime Get>> feature.
+Transaction logs are required for all SolrCloud clusters, as well as the xref:realtime-get.adoc[] feature.
 It is configured in the `updateHandler` section of `solrconfig.xml`.
 
 Transaction logs are configured in `solrconfig.xml`, in a section like the following:
diff --git a/solr/solr-ref-guide/src/config-api.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/config-api.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/config-api.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/config-api.adoc
diff --git a/solr/solr-ref-guide/src/config-sets.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/config-sets.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/config-sets.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/config-sets.adoc
diff --git a/solr/solr-ref-guide/src/configsets-api.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/configsets-api.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/configsets-api.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/configsets-api.adoc
diff --git a/solr/solr-ref-guide/src/configuration-apis.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/configuration-apis.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/configuration-apis.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/configuration-apis.adoc
diff --git a/solr/solr-ref-guide/src/configuration-files.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/configuration-files.adoc
similarity index 98%
rename from solr/solr-ref-guide/src/configuration-files.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/configuration-files.adoc
index 2c54c06..1d1f2bc 100644
--- a/solr/solr-ref-guide/src/configuration-files.adoc
+++ b/solr/solr-ref-guide/modules/configuration-guide/pages/configuration-files.adoc
@@ -94,7 +94,7 @@ However, if you are running your own ZooKeeper ensemble, you would supply your o
 The Files screen in the Admin UI lets you browse & view configuration files (such `solrconfig.xml` and the schema file) for the collection you selected.
 
 .The Files Screen
-image::images/configuration-files/files-screen.png[Files screen,height=400]
+image::configuration-files/files-screen.png[Files screen,height=400]
 
 If you are using <<cluster-types.adoc#solrcloud-mode,SolrCloud>>, the files displayed are the configuration files for this collection stored in ZooKeeper.
 In user-managed clusters or single-node installations, all files in the `conf` directory are displayed.
diff --git a/solr/solr-ref-guide/src/configuration-guide.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/configuration-guide.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/configuration-guide.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/configuration-guide.adoc
diff --git a/solr/solr-ref-guide/src/configuring-solr-xml.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/configuring-solr-xml.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/configuring-solr-xml.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/configuring-solr-xml.adoc
diff --git a/solr/solr-ref-guide/src/configuring-solrconfig-xml.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/configuring-solrconfig-xml.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/configuring-solrconfig-xml.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/configuring-solrconfig-xml.adoc
diff --git a/solr/solr-ref-guide/src/core-discovery.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/core-discovery.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/core-discovery.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/core-discovery.adoc
diff --git a/solr/solr-ref-guide/src/coreadmin-api.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/coreadmin-api.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/coreadmin-api.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/coreadmin-api.adoc
diff --git a/solr/solr-ref-guide/src/implicit-requesthandlers.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/implicit-requesthandlers.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/implicit-requesthandlers.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/implicit-requesthandlers.adoc
diff --git a/solr/solr-ref-guide/src/index-location-format.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/index-location-format.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/index-location-format.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/index-location-format.adoc
diff --git a/solr/solr-ref-guide/src/index-segments-merging.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/index-segments-merging.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/index-segments-merging.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/index-segments-merging.adoc
diff --git a/solr/solr-ref-guide/src/initparams.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/initparams.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/initparams.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/initparams.adoc
diff --git a/solr/solr-ref-guide/src/libs.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/libs.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/libs.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/libs.adoc
diff --git a/solr/solr-ref-guide/src/managed-resources.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/managed-resources.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/managed-resources.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/managed-resources.adoc
diff --git a/solr/solr-ref-guide/src/package-manager-internals.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/package-manager-internals.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/package-manager-internals.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/package-manager-internals.adoc
diff --git a/solr/solr-ref-guide/src/package-manager.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/package-manager.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/package-manager.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/package-manager.adoc
diff --git a/solr/solr-ref-guide/src/property-substitution.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/property-substitution.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/property-substitution.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/property-substitution.adoc
diff --git a/solr/solr-ref-guide/src/realtime-get.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/realtime-get.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/realtime-get.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/realtime-get.adoc
diff --git a/solr/solr-ref-guide/src/replica-placement-plugins.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/replica-placement-plugins.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/replica-placement-plugins.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/replica-placement-plugins.adoc
diff --git a/solr/solr-ref-guide/src/request-parameters-api.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/request-parameters-api.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/request-parameters-api.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/request-parameters-api.adoc
diff --git a/solr/solr-ref-guide/src/requestdispatcher.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/requestdispatcher.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/requestdispatcher.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/requestdispatcher.adoc
diff --git a/solr/solr-ref-guide/src/requesthandlers-searchcomponents.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/requesthandlers-searchcomponents.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/requesthandlers-searchcomponents.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/requesthandlers-searchcomponents.adoc
diff --git a/solr/solr-ref-guide/src/resource-loading.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/resource-loading.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/resource-loading.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/resource-loading.adoc
diff --git a/solr/solr-ref-guide/src/schema-factory.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/schema-factory.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/schema-factory.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/schema-factory.adoc
diff --git a/solr/solr-ref-guide/src/script-update-processor.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/script-update-processor.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/script-update-processor.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/script-update-processor.adoc
diff --git a/solr/solr-ref-guide/src/solr-plugins.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/solr-plugins.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/solr-plugins.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/solr-plugins.adoc
diff --git a/solr/solr-ref-guide/src/update-request-processors.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/update-request-processors.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/update-request-processors.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/update-request-processors.adoc
diff --git a/solr/solr-ref-guide/src/v2-api.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/v2-api.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/v2-api.adoc
rename to solr/solr-ref-guide/modules/configuration-guide/pages/v2-api.adoc
diff --git a/solr/solr-ref-guide/modules/deployment-guide/deployment-nav.adoc b/solr/solr-ref-guide/modules/deployment-guide/deployment-nav.adoc
new file mode 100644
index 0000000..cba6b0d
--- /dev/null
+++ b/solr/solr-ref-guide/modules/deployment-guide/deployment-nav.adoc
@@ -0,0 +1,72 @@
+.Deployment Guide
+* xref:deployment-guide.adoc[]
+** xref:solr-control-script-reference.adoc[]
+
+** xref:installation-deployment.adoc[]
+*** xref:system-requirements.adoc[]
+*** xref:installing-solr.adoc[]
+*** xref:taking-solr-to-production.adoc[]
+*** xref:jvm-settings.adoc[]
+*** xref:upgrading-a-solr-cluster.adoc[]
+**** xref:indexupgrader-tool.adoc[]
+*** xref:backup-restore.adoc[]
+*** xref:solr-in-docker.adoc[]
+**** xref:docker-faq.adoc[]
+**** xref:docker-networking.adoc[]
+*** xref:solr-on-hdfs.adoc[]
+
+** xref:scaling-solr.adoc[]
+*** xref:cluster-types.adoc[]
+*** xref:user-managed-clusters.adoc[]
+**** xref:user-managed-index-replication.adoc[]
+**** xref:user-managed-distributed-search.adoc[]
+*** xref:solrcloud-clusters.adoc[]
+**** xref:solrcloud-shards-indexing.adoc[]
+**** xref:solrcloud-recoveries-and-write-tolerance.adoc[]
+**** xref:solrcloud-distributed-requests.adoc[]
+**** xref:aliases.adoc[]
+**** xref:cluster-node-management.adoc[]
+**** xref:collection-management.adoc[]
+**** xref:shard-management.adoc[]
+**** xref:replica-management.adoc[]
+**** xref:alias-management.adoc[]
+**** xref:zookeeper-ensemble.adoc[]
+**** xref:zookeeper-file-management.adoc[]
+**** xref:zookeeper-utilities.adoc[]
+**** xref:solrcloud-with-legacy-configuration-files.adoc[]
+**** xref:collections-core-admin.adoc[]
+**** xref:cloud-screens.adoc[]
+
+** xref:monitoring-solr.adoc[]
+*** xref:configuring-logging.adoc[]
+*** xref:ping.adoc[]
+*** xref:metrics-reporting.adoc[]
+*** xref:performance-statistics-reference.adoc[]
+*** xref:plugins-stats-screen.adoc[]
+*** xref:mbean-request-handler.adoc[]
+*** xref:monitoring-with-prometheus-and-grafana.adoc[]
+*** xref:jmx-with-solr.adoc[]
+*** xref:thread-dump.adoc[]
+*** xref:distributed-tracing.adoc[]
+*** xref:circuit-breakers.adoc[]
+*** xref:rate-limiters.adoc[]
+*** xref:task-management.adoc[]
+
+** xref:securing-solr.adoc[]
+*** xref:authentication-and-authorization-plugins.adoc[]
+**** xref:basic-authentication-plugin.adoc[]
+**** xref:kerberos-authentication-plugin.adoc[]
+**** xref:jwt-authentication-plugin.adoc[]
+**** xref:cert-authentication-plugin.adoc[]
+**** xref:hadoop-authentication-plugin.adoc[]
+**** xref:rule-based-authorization-plugin.adoc[]
+*** xref:audit-logging.adoc[]
+*** xref:enabling-ssl.adoc[]
+*** xref:zookeeper-access-control.adoc[]
+*** xref:security-ui.adoc[]
+
+** xref:client-apis.adoc[]
+*** xref:solrj.adoc[]
+*** xref:javascript.adoc[]
+*** xref:python.adoc[]
+*** xref:ruby.adoc[]
diff --git a/solr/solr-ref-guide/modules/deployment-guide/examples/UsingSolrJRefGuideExamplesTest.java b/solr/solr-ref-guide/modules/deployment-guide/examples/UsingSolrJRefGuideExamplesTest.java
new file mode 120000
index 0000000..04f64eb
--- /dev/null
+++ b/solr/solr-ref-guide/modules/deployment-guide/examples/UsingSolrJRefGuideExamplesTest.java
@@ -0,0 +1 @@
+../../../../solrj/src/test/org/apache/solr/client/ref_guide_examples/UsingSolrJRefGuideExamplesTest.java
\ No newline at end of file
diff --git a/solr/solr-ref-guide/modules/deployment-guide/examples/ZkConfigFilesTest.java b/solr/solr-ref-guide/modules/deployment-guide/examples/ZkConfigFilesTest.java
new file mode 120000
index 0000000..3179a82
--- /dev/null
+++ b/solr/solr-ref-guide/modules/deployment-guide/examples/ZkConfigFilesTest.java
@@ -0,0 +1 @@
+../../../../solrj/src/test/org/apache/solr/client/ref_guide_examples/ZkConfigFilesTest.java
\ No newline at end of file
diff --git a/solr/solr-ref-guide/src/images/cloud-screens/cloud-graph.png b/solr/solr-ref-guide/modules/deployment-guide/images/cloud-screens/cloud-graph.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/cloud-screens/cloud-graph.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/cloud-screens/cloud-graph.png
diff --git a/solr/solr-ref-guide/src/images/cloud-screens/cloud-hover.png b/solr/solr-ref-guide/modules/deployment-guide/images/cloud-screens/cloud-hover.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/cloud-screens/cloud-hover.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/cloud-screens/cloud-hover.png
diff --git a/solr/solr-ref-guide/src/images/cloud-screens/cloud-nodes.png b/solr/solr-ref-guide/modules/deployment-guide/images/cloud-screens/cloud-nodes.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/cloud-screens/cloud-nodes.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/cloud-screens/cloud-nodes.png
diff --git a/solr/solr-ref-guide/src/images/cloud-screens/cloud-tree.png b/solr/solr-ref-guide/modules/deployment-guide/images/cloud-screens/cloud-tree.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/cloud-screens/cloud-tree.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/cloud-screens/cloud-tree.png
diff --git a/solr/solr-ref-guide/src/images/cloud-screens/cloud-zkstatus.png b/solr/solr-ref-guide/modules/deployment-guide/images/cloud-screens/cloud-zkstatus.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/cloud-screens/cloud-zkstatus.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/cloud-screens/cloud-zkstatus.png
diff --git a/solr/solr-ref-guide/src/images/collections-core-admin/DeleteShard.png b/solr/solr-ref-guide/modules/deployment-guide/images/collections-core-admin/DeleteShard.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/collections-core-admin/DeleteShard.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/collections-core-admin/DeleteShard.png
diff --git a/solr/solr-ref-guide/src/images/collections-core-admin/collection-admin.png b/solr/solr-ref-guide/modules/deployment-guide/images/collections-core-admin/collection-admin.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/collections-core-admin/collection-admin.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/collections-core-admin/collection-admin.png
diff --git a/solr/solr-ref-guide/src/images/configuring-logging/level_menu.png b/solr/solr-ref-guide/modules/deployment-guide/images/configuring-logging/level_menu.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/configuring-logging/level_menu.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/configuring-logging/level_menu.png
diff --git a/solr/solr-ref-guide/src/images/configuring-logging/logging.png b/solr/solr-ref-guide/modules/deployment-guide/images/configuring-logging/logging.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/configuring-logging/logging.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/configuring-logging/logging.png
diff --git a/solr/solr-ref-guide/src/images/distributed-tracing/query-request-tracing.png b/solr/solr-ref-guide/modules/deployment-guide/images/distributed-tracing/query-request-tracing.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/distributed-tracing/query-request-tracing.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/distributed-tracing/query-request-tracing.png
diff --git a/solr/solr-ref-guide/src/images/installing-solr/SolrAdminDashboard.png b/solr/solr-ref-guide/modules/deployment-guide/images/installing-solr/SolrAdminDashboard.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/installing-solr/SolrAdminDashboard.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/installing-solr/SolrAdminDashboard.png
diff --git a/solr/solr-ref-guide/src/images/jvm-settings/javaproperties.png b/solr/solr-ref-guide/modules/deployment-guide/images/jvm-settings/javaproperties.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jvm-settings/javaproperties.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/jvm-settings/javaproperties.png
diff --git a/solr/solr-ref-guide/src/images/monitoring-with-prometheus-and-grafana/grafana-solr-dashboard.png b/solr/solr-ref-guide/modules/deployment-guide/images/monitoring-with-prometheus-and-grafana/grafana-solr-dashboard.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/monitoring-with-prometheus-and-grafana/grafana-solr-dashboard.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/monitoring-with-prometheus-and-grafana/grafana-solr-dashboard.png
diff --git a/solr/solr-ref-guide/src/images/monitoring-with-prometheus-and-grafana/prometheus-solr-ping.png b/solr/solr-ref-guide/modules/deployment-guide/images/monitoring-with-prometheus-and-grafana/prometheus-solr-ping.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/monitoring-with-prometheus-and-grafana/prometheus-solr-ping.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/monitoring-with-prometheus-and-grafana/prometheus-solr-ping.png
diff --git a/solr/solr-ref-guide/src/images/monitoring-with-prometheus-and-grafana/solr-exporter-diagram.png b/solr/solr-ref-guide/modules/deployment-guide/images/monitoring-with-prometheus-and-grafana/solr-exporter-diagram.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/monitoring-with-prometheus-and-grafana/solr-exporter-diagram.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/monitoring-with-prometheus-and-grafana/solr-exporter-diagram.png
diff --git a/solr/solr-ref-guide/src/images/ping/ping.png b/solr/solr-ref-guide/modules/deployment-guide/images/ping/ping.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/ping/ping.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/ping/ping.png
diff --git a/solr/solr-ref-guide/src/images/plugins-stats-screen/plugin-searcher.png b/solr/solr-ref-guide/modules/deployment-guide/images/plugins-stats-screen/plugin-searcher.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/plugins-stats-screen/plugin-searcher.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/plugins-stats-screen/plugin-searcher.png
diff --git a/solr/solr-ref-guide/src/images/security-ui/add-permission.png b/solr/solr-ref-guide/modules/deployment-guide/images/security-ui/add-permission.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/security-ui/add-permission.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/security-ui/add-permission.png
diff --git a/solr/solr-ref-guide/src/images/security-ui/edit-user-dialog.png b/solr/solr-ref-guide/modules/deployment-guide/images/security-ui/edit-user-dialog.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/security-ui/edit-user-dialog.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/security-ui/edit-user-dialog.png
diff --git a/solr/solr-ref-guide/src/images/security-ui/filter-users.png b/solr/solr-ref-guide/modules/deployment-guide/images/security-ui/filter-users.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/security-ui/filter-users.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/security-ui/filter-users.png
diff --git a/solr/solr-ref-guide/src/images/security-ui/permissions.png b/solr/solr-ref-guide/modules/deployment-guide/images/security-ui/permissions.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/security-ui/permissions.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/security-ui/permissions.png
diff --git a/solr/solr-ref-guide/src/images/security-ui/roles.png b/solr/solr-ref-guide/modules/deployment-guide/images/security-ui/roles.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/security-ui/roles.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/security-ui/roles.png
diff --git a/solr/solr-ref-guide/src/images/security-ui/security-not-enabled-warn.png b/solr/solr-ref-guide/modules/deployment-guide/images/security-ui/security-not-enabled-warn.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/security-ui/security-not-enabled-warn.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/security-ui/security-not-enabled-warn.png
diff --git a/solr/solr-ref-guide/src/images/security-ui/users.png b/solr/solr-ref-guide/modules/deployment-guide/images/security-ui/users.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/security-ui/users.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/security-ui/users.png
diff --git a/solr/solr-ref-guide/src/images/thread-dump/thread_dump_1.png b/solr/solr-ref-guide/modules/deployment-guide/images/thread-dump/thread_dump_1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/thread-dump/thread_dump_1.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/thread-dump/thread_dump_1.png
diff --git a/solr/solr-ref-guide/src/images/thread-dump/thread_dump_2.png b/solr/solr-ref-guide/modules/deployment-guide/images/thread-dump/thread_dump_2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/thread-dump/thread_dump_2.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/thread-dump/thread_dump_2.png
diff --git a/solr/solr-ref-guide/src/images/user-managed-index-replication/replication.png b/solr/solr-ref-guide/modules/deployment-guide/images/user-managed-index-replication/replication.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/user-managed-index-replication/replication.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/user-managed-index-replication/replication.png
diff --git a/solr/solr-ref-guide/src/images/user-managed-index-replication/user-managed-replication.png b/solr/solr-ref-guide/modules/deployment-guide/images/user-managed-index-replication/user-managed-replication.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/user-managed-index-replication/user-managed-replication.png
rename to solr/solr-ref-guide/modules/deployment-guide/images/user-managed-index-replication/user-managed-replication.png
diff --git a/solr/solr-ref-guide/src/alias-management.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/alias-management.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/alias-management.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/alias-management.adoc
diff --git a/solr/solr-ref-guide/src/aliases.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/aliases.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/aliases.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/aliases.adoc
diff --git a/solr/solr-ref-guide/src/audit-logging.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/audit-logging.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/audit-logging.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/audit-logging.adoc
diff --git a/solr/solr-ref-guide/src/authentication-and-authorization-plugins.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/authentication-and-authorization-plugins.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/authentication-and-authorization-plugins.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/authentication-and-authorization-plugins.adoc
diff --git a/solr/solr-ref-guide/src/backup-restore.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/backup-restore.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/backup-restore.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/backup-restore.adoc
diff --git a/solr/solr-ref-guide/src/basic-authentication-plugin.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/basic-authentication-plugin.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/basic-authentication-plugin.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/basic-authentication-plugin.adoc
diff --git a/solr/solr-ref-guide/src/cert-authentication-plugin.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/cert-authentication-plugin.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/cert-authentication-plugin.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/cert-authentication-plugin.adoc
diff --git a/solr/solr-ref-guide/src/circuit-breakers.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/circuit-breakers.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/circuit-breakers.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/circuit-breakers.adoc
diff --git a/solr/solr-ref-guide/src/client-apis.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/client-apis.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/client-apis.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/client-apis.adoc
diff --git a/solr/solr-ref-guide/src/cloud-screens.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/cloud-screens.adoc
similarity index 90%
rename from solr/solr-ref-guide/src/cloud-screens.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/cloud-screens.adoc
index f8b256c..ea72fbb 100644
--- a/solr/solr-ref-guide/src/cloud-screens.adoc
+++ b/solr/solr-ref-guide/modules/deployment-guide/pages/cloud-screens.adoc
@@ -36,7 +36,7 @@ Details are expanded for node on port 7574, showing more metadata and more metri
 The screen provides links to navigate to nodes, collections and replicas.
 The table supports paging and filtering on host/node names and collection names.
 
-image::images/cloud-screens/cloud-nodes.png[image,width=900,height=415]
+image::cloud-screens/cloud-nodes.png[image,width=900,height=415]
 
 == Tree View
 The "Tree" view shows a directory structure of the data in ZooKeeper, including cluster wide information regarding the `live_nodes` and `overseer` status.
@@ -44,7 +44,7 @@ Collection-specific information such as the `state.json`, current shard leaders,
 
 In this example, we see part of the `state.json`  definition for the "tlog" collection:
 
-image::images/cloud-screens/cloud-tree.png[image,width=487,height=250]
+image::cloud-screens/cloud-tree.png[image,width=487,height=250]
 
 As an aid to debugging, the data shown in the "Tree" view can be exported locally using the following command `bin/solr zk ls -r /`
 
@@ -52,7 +52,7 @@ As an aid to debugging, the data shown in the "Tree" view can be exported locall
 The "ZK Status" view gives an overview over the ZooKeeper servers or ensemble used by Solr.
 It lists whether running in `standalone` or `ensemble` mode, shows how many ZooKeeper nodes are configured, and then displays a table listing detailed monitoring status for each node, including who is the leader, configuration parameters, and more.
 
-image::images/cloud-screens/cloud-zkstatus.png[image,width=512,height=509]
+image::cloud-screens/cloud-zkstatus.png[image,width=512,height=509]
 
 == Graph View
 The "Graph" view shows a graph of each collection, its shards, and the addresses and type ("NRT", "TLOG", or "PULL") of each replica for each shard.
@@ -60,8 +60,8 @@ The "Graph" view shows a graph of each collection, its shards, and the addresses
 This example shows a simple cluster.
 In addition to the 2 shard, 2 replica "gettingstarted" collection, there is an additional "tlog" collection consisting of mixed TLOG and PULL replica types.
 
-image::images/cloud-screens/cloud-graph.png[image,width=512,height=250]
+image::cloud-screens/cloud-graph.png[image,width=512,height=250]
 
 Tooltips appear when hovering over each replica giving additional information.
 
-image::images/cloud-screens/cloud-hover.png[image,width=512,height=250]
+image::cloud-screens/cloud-hover.png[image,width=512,height=250]
diff --git a/solr/solr-ref-guide/src/cluster-node-management.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/cluster-node-management.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/cluster-node-management.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/cluster-node-management.adoc
diff --git a/solr/solr-ref-guide/src/cluster-types.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/cluster-types.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/cluster-types.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/cluster-types.adoc
diff --git a/solr/solr-ref-guide/src/collection-management.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/collection-management.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/collection-management.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/collection-management.adoc
diff --git a/solr/solr-ref-guide/src/collections-core-admin.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/collections-core-admin.adoc
similarity index 92%
rename from solr/solr-ref-guide/src/collections-core-admin.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/collections-core-admin.adoc
index 292da8a..f71ff3a 100644
--- a/solr/solr-ref-guide/src/collections-core-admin.adoc
+++ b/solr/solr-ref-guide/modules/deployment-guide/pages/collections-core-admin.adoc
@@ -30,11 +30,11 @@ Clicking on a collection name provides some basic metadata about how the collect
 
 The buttons at the top of the screen let you make various collection level changes to your cluster, from add new collections or aliases to reloading or deleting a single collection.
 
-image::images/collections-core-admin/collection-admin.png[image,width=653,height=250]
+image::collections-core-admin/collection-admin.png[image,width=653,height=250]
 
 
 Replicas can be deleted by clicking the red "X" next to the replica name.
 
 If the shard is inactive, for example after a <<shard-management.adoc#splitshard,SPLITSHARD action>>, an option to delete the shard will appear as a red "X" next to the shard name.
 
-image::images/collections-core-admin/DeleteShard.png[image,width=486,height=250]
+image::collections-core-admin/DeleteShard.png[image,width=486,height=250]
diff --git a/solr/solr-ref-guide/src/configuring-logging.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/configuring-logging.adoc
similarity index 98%
rename from solr/solr-ref-guide/src/configuring-logging.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/configuring-logging.adoc
index 1acaa39..14b7346 100644
--- a/solr/solr-ref-guide/src/configuring-logging.adoc
+++ b/solr/solr-ref-guide/modules/deployment-guide/pages/configuring-logging.adoc
@@ -30,7 +30,7 @@ Select the *Logging*] link in the left-hand menu.
 Note that log levels will also be reset on next Solr restart.
 
 .The Logging Screen
-image::images/configuring-logging/logging.png[Logging Screen]
+image::configuring-logging/logging.png[Logging Screen]
 
 This part of the Admin Web interface allows you to set the logging level for many different log categories.
 Fortunately, any categories that are *unset* will have the logging level of its parent.
@@ -39,7 +39,7 @@ This makes it possible to change many categories at once by adjusting the loggin
 When you select menu:Logging[Level], you see the following menu:
 
 .The Log Level Menu
-image::images/configuring-logging/level_menu.png[image,width=1159,height=577]
+image::configuring-logging/level_menu.png[image,width=1159,height=577]
 
 Solr classes are shown in the left column in a directory tree structure representing the classpath.
 The current level is shown in the right column.
diff --git a/solr/solr-ref-guide/src/deployment-guide.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/deployment-guide.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/deployment-guide.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/deployment-guide.adoc
diff --git a/solr/solr-ref-guide/src/distributed-tracing.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/distributed-tracing.adoc
similarity index 98%
rename from solr/solr-ref-guide/src/distributed-tracing.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/distributed-tracing.adoc
index e6f19b3..05a0dcc 100644
--- a/solr/solr-ref-guide/src/distributed-tracing.adoc
+++ b/solr/solr-ref-guide/modules/deployment-guide/pages/distributed-tracing.adoc
@@ -24,7 +24,7 @@ At the moment, only Jaeger is supported out of the box.
 A sampled distributed tracing query request on Jaeger looks like this:
 
 .Tracing of a Solr query
-image::images/distributed-tracing/query-request-tracing.png[]
+image::distributed-tracing/query-request-tracing.png[]
 
 == Configuring Tracer
 
diff --git a/solr/solr-ref-guide/src/docker-faq.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/docker-faq.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/docker-faq.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/docker-faq.adoc
diff --git a/solr/solr-ref-guide/src/docker-networking.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/docker-networking.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/docker-networking.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/docker-networking.adoc
diff --git a/solr/solr-ref-guide/src/enabling-ssl.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/enabling-ssl.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/enabling-ssl.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/enabling-ssl.adoc
diff --git a/solr/solr-ref-guide/src/hadoop-authentication-plugin.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/hadoop-authentication-plugin.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/hadoop-authentication-plugin.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/hadoop-authentication-plugin.adoc
diff --git a/solr/solr-ref-guide/src/indexupgrader-tool.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/indexupgrader-tool.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/indexupgrader-tool.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/indexupgrader-tool.adoc
diff --git a/solr/solr-ref-guide/src/installation-deployment.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/installation-deployment.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/installation-deployment.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/installation-deployment.adoc
diff --git a/solr/solr-ref-guide/src/installing-solr.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/installing-solr.adoc
similarity index 99%
rename from solr/solr-ref-guide/src/installing-solr.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/installing-solr.adoc
index b069502..88c2a2f 100644
--- a/solr/solr-ref-guide/src/installing-solr.adoc
+++ b/solr/solr-ref-guide/modules/deployment-guide/pages/installing-solr.adoc
@@ -194,7 +194,7 @@ If you need convincing, use a Web browser to see the Admin Console.
 `\http://localhost:8983/solr/`
 
 .The Solr Admin interface.
-image::images/installing-solr/SolrAdminDashboard.png[Solr's Admin UI,pdfwidth=75%]
+image::installing-solr/SolrAdminDashboard.png[Solr's Admin UI,pdfwidth=75%]
 
 If Solr is not running, your browser will complain that it cannot connect to the server.
 Check your port number and try again.
diff --git a/solr/solr-ref-guide/src/javascript.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/javascript.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/javascript.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/javascript.adoc
diff --git a/solr/solr-ref-guide/src/jmx-with-solr.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/jmx-with-solr.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/jmx-with-solr.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/jmx-with-solr.adoc
diff --git a/solr/solr-ref-guide/src/jvm-settings.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/jvm-settings.adoc
similarity index 98%
rename from solr/solr-ref-guide/src/jvm-settings.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/jvm-settings.adoc
index 9b49a63..220fec2 100644
--- a/solr/solr-ref-guide/src/jvm-settings.adoc
+++ b/solr/solr-ref-guide/modules/deployment-guide/pages/jvm-settings.adoc
@@ -81,4 +81,4 @@ The Java Properties screen, however, provides easy access to all the properties
 In the Admin UI, it is available in the left-hand menu *Java Properties*.
 
 .Java Properties Screen
-image::images/jvm-settings/javaproperties.png[image,width=593,height=250]
+image::jvm-settings/javaproperties.png[image,width=593,height=250]
diff --git a/solr/solr-ref-guide/src/jwt-authentication-plugin.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/jwt-authentication-plugin.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/jwt-authentication-plugin.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/jwt-authentication-plugin.adoc
diff --git a/solr/solr-ref-guide/src/kerberos-authentication-plugin.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/kerberos-authentication-plugin.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/kerberos-authentication-plugin.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/kerberos-authentication-plugin.adoc
diff --git a/solr/solr-ref-guide/src/mbean-request-handler.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/mbean-request-handler.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/mbean-request-handler.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/mbean-request-handler.adoc
diff --git a/solr/solr-ref-guide/src/metrics-reporting.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/metrics-reporting.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/metrics-reporting.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/metrics-reporting.adoc
diff --git a/solr/solr-ref-guide/src/monitoring-solr.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/monitoring-solr.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/monitoring-solr.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/monitoring-solr.adoc
diff --git a/solr/solr-ref-guide/src/monitoring-with-prometheus-and-grafana.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/monitoring-with-prometheus-and-grafana.adoc
similarity index 98%
rename from solr/solr-ref-guide/src/monitoring-with-prometheus-and-grafana.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/monitoring-with-prometheus-and-grafana.adoc
index f427cb2..f636c2f 100644
--- a/solr/solr-ref-guide/src/monitoring-with-prometheus-and-grafana.adoc
+++ b/solr/solr-ref-guide/modules/deployment-guide/pages/monitoring-with-prometheus-and-grafana.adoc
@@ -23,7 +23,7 @@ A Prometheus exporter (`solr-exporter`) allows users to monitor not only Solr me
 This graphic provides a more detailed view:
 
 .solr-exporter Diagram
-image::images/monitoring-with-prometheus-and-grafana/solr-exporter-diagram.png[image,width=600]
+image::monitoring-with-prometheus-and-grafana/solr-exporter-diagram.png[image,width=600]
 
 The Prometheus exporter is included in Solr as a contrib, and is located in `contrib/prometheus-exporter` in your Solr instance.
 
@@ -551,7 +551,7 @@ You can test that the Prometheus server, `solr-exporter`, and Solr are working t
 doing a query for `solr_ping` metric in the Prometheus GUI:
 
 .Prometheus Solr Ping expression
-image::images/monitoring-with-prometheus-and-grafana/prometheus-solr-ping.png[image,width=800]
+image::monitoring-with-prometheus-and-grafana/prometheus-solr-ping.png[image,width=800]
 
 == Sample Grafana Dashboard
 
@@ -567,4 +567,4 @@ TIP: You can directly import the Solr dashboard https://grafana.com/grafana/dash
 This screenshot shows what it might look like:
 
 .Grafana Dashboard
-image::images/monitoring-with-prometheus-and-grafana/grafana-solr-dashboard.png[image,width=800]
+image::monitoring-with-prometheus-and-grafana/grafana-solr-dashboard.png[image,width=800]
diff --git a/solr/solr-ref-guide/src/performance-statistics-reference.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/performance-statistics-reference.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/performance-statistics-reference.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/performance-statistics-reference.adoc
diff --git a/solr/solr-ref-guide/src/ping.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/ping.adoc
similarity index 98%
rename from solr/solr-ref-guide/src/ping.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/ping.adoc
index 0433700..1941800 100644
--- a/solr/solr-ref-guide/src/ping.adoc
+++ b/solr/solr-ref-guide/modules/deployment-guide/pages/ping.adoc
@@ -19,7 +19,7 @@
 Choosing Ping under a core name issues a `ping` request to check whether the core is up and responding to requests.
 
 .Ping Option in Core Dropdown
-image::images/ping/ping.png[image,width=171,height=195]
+image::ping/ping.png[image,width=171,height=195]
 
 The search executed by a Ping is configured with the <<request-parameters-api.adoc#,Request Parameters API>>.
 See <<implicit-requesthandlers.adoc#,Implicit Request Handlers>> for the paramset to use for the `/admin/ping` endpoint.
diff --git a/solr/solr-ref-guide/src/plugins-stats-screen.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/plugins-stats-screen.adoc
similarity index 95%
rename from solr/solr-ref-guide/src/plugins-stats-screen.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/plugins-stats-screen.adoc
index 84ecf83..81bc46b 100644
--- a/solr/solr-ref-guide/src/plugins-stats-screen.adoc
+++ b/solr/solr-ref-guide/modules/deployment-guide/pages/plugins-stats-screen.adoc
@@ -23,7 +23,7 @@ Choose an area of interest on the right, and then drill down into more specifics
 In this example, we've chosen to look at the Searcher stats, from the Core area:
 
 .Searcher Statistics
-image::images/plugins-stats-screen/plugin-searcher.png[image,width=462,height=250]
+image::plugins-stats-screen/plugin-searcher.png[image,width=462,height=250]
 
 The display is a snapshot taken when the page is loaded.
 You can get updated status by choosing to either *Watch Changes* or *Refresh Values*.
diff --git a/solr/solr-ref-guide/src/python.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/python.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/python.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/python.adoc
diff --git a/solr/solr-ref-guide/src/rate-limiters.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/rate-limiters.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/rate-limiters.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/rate-limiters.adoc
diff --git a/solr/solr-ref-guide/src/replica-management.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/replica-management.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/replica-management.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/replica-management.adoc
diff --git a/solr/solr-ref-guide/src/ruby.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/ruby.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/ruby.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/ruby.adoc
diff --git a/solr/solr-ref-guide/src/rule-based-authorization-plugin.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/rule-based-authorization-plugin.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/rule-based-authorization-plugin.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/rule-based-authorization-plugin.adoc
diff --git a/solr/solr-ref-guide/src/scaling-solr.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/scaling-solr.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/scaling-solr.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/scaling-solr.adoc
diff --git a/solr/solr-ref-guide/src/securing-solr.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/securing-solr.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/securing-solr.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/securing-solr.adoc
diff --git a/solr/solr-ref-guide/src/security-ui.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/security-ui.adoc
similarity index 92%
rename from solr/solr-ref-guide/src/security-ui.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/security-ui.adoc
index 472237b..0fa1061 100644
--- a/solr/solr-ref-guide/src/security-ui.adoc
+++ b/solr/solr-ref-guide/modules/deployment-guide/pages/security-ui.adoc
@@ -21,13 +21,13 @@ The Security screen allows administrators with the `security-edit` permission to
 The Security screen works with Solr running in cloud and standalone modes.
 
 .Security Screen
-image::images/solr-admin-ui/security.png[]
+image::solr-admin-ui/security.png[]
 
 == Getting Started
 
 The Security screen warns you if security is not enabled for Solr. You are strongly encouraged to enable security for Solr instances exposed on any network other than localhost.
 
-image::images/security-ui/security-not-enabled-warn.png[image,width=500]
+image::security-ui/security-not-enabled-warn.png[image,width=500]
 
 When first getting started with Solr, use the `bin/solr auth` command-line utility to enable security for your Solr installation (cloud mode only), see <<solr-control-script-reference.adoc#authentication,bin/solr auth>> for usage instructions.
 For example, the following command will enable *basic authentication* and prompt you for the username and password for the initial user with administrative access:
@@ -51,7 +51,7 @@ The Security screen provides the following features:
 
 Administrators can read, create, update, and delete user accounts when using the <<basic-authentication-plugin.adoc#,Basic Authentication>> plugin.
 
-image::images/security-ui/users.png[image,width=500]
+image::security-ui/users.png[image,width=500]
 
 .Limited User Management Capabilities
 [NOTE]
@@ -62,11 +62,11 @@ Consequently, if a user account has been compromised, then an administrator need
 
 To edit a user account, click on the row in the table to open the edit user dialog. You can change a user's password and change their role membership.
 
-image::images/security-ui/edit-user-dialog.png[image,width=400]
+image::security-ui/edit-user-dialog.png[image,width=400]
 
 For systems with many user accounts, use the filter controls at the top of the user table to find users based on common properties.
 
-image::images/security-ui/filter-users.png[image,width=400]
+image::security-ui/filter-users.png[image,width=400]
 
 For other authentication plugins, such as the <<jwt-authentication-plugin.adoc#,JWT Authentication>> plugin, this panel will be disabled as users are managed by an external system.
 
@@ -74,7 +74,7 @@ For other authentication plugins, such as the <<jwt-authentication-plugin.adoc#,
 
 <<rule-based-authorization-plugin.adoc#roles,Roles>> link users to permissions. If using the <<rule-based-authorization-plugin.adoc#,Rule-based Authorization>> plugin, administrators can read, create, and update roles. Deleting roles is not supported.
 
-image::images/security-ui/roles.png[image,width=500]
+image::security-ui/roles.png[image,width=500]
 
 To edit a role, simply click on the corresponding row in the table.
 
@@ -84,7 +84,7 @@ If not using the Rule-based Authorization plugin, the Roles panel will be disabl
 
 The *Permissions* panel on the Security screen allows administrators to read, create, update, and delete permissions.
 
-image::images/security-ui/permissions.png[image,width=900]
+image::security-ui/permissions.png[image,width=900]
 
 For detailed information about how permissions work in Solr, see: <<rule-based-authorization-plugin.adoc#permissions,Rule-based Authorization Permissions>>.
 
@@ -92,7 +92,7 @@ For detailed information about how permissions work in Solr, see: <<rule-based-a
 
 Click on the btn:[Add Permission] button to open the Add Permission dialog.
 
-image::images/security-ui/add-permission.png[image,width=600]
+image::security-ui/add-permission.png[image,width=600]
 
 You can _either_ select a *Predefined* permission from the drop-down select list or provide a unique name for a custom permission.
 Creating a new *Predefined* permission is simply a matter of mapping the permission to zero or more roles as the other settings, such as path, are immutable for predefined permissions.
diff --git a/solr/solr-ref-guide/src/shard-management.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/shard-management.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/shard-management.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/shard-management.adoc
diff --git a/solr/solr-ref-guide/src/solr-control-script-reference.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/solr-control-script-reference.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/solr-control-script-reference.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/solr-control-script-reference.adoc
diff --git a/solr/solr-ref-guide/src/solr-in-docker.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/solr-in-docker.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/solr-in-docker.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/solr-in-docker.adoc
diff --git a/solr/solr-ref-guide/src/solr-on-hdfs.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/solr-on-hdfs.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/solr-on-hdfs.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/solr-on-hdfs.adoc
diff --git a/solr/solr-ref-guide/src/solrcloud-clusters.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/solrcloud-clusters.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/solrcloud-clusters.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/solrcloud-clusters.adoc
diff --git a/solr/solr-ref-guide/src/solrcloud-distributed-requests.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/solrcloud-distributed-requests.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/solrcloud-distributed-requests.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/solrcloud-distributed-requests.adoc
diff --git a/solr/solr-ref-guide/src/solrcloud-recoveries-and-write-tolerance.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/solrcloud-recoveries-and-write-tolerance.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/solrcloud-recoveries-and-write-tolerance.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/solrcloud-recoveries-and-write-tolerance.adoc
diff --git a/solr/solr-ref-guide/src/solrcloud-shards-indexing.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/solrcloud-shards-indexing.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/solrcloud-shards-indexing.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/solrcloud-shards-indexing.adoc
diff --git a/solr/solr-ref-guide/src/solrcloud-with-legacy-configuration-files.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/solrcloud-with-legacy-configuration-files.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/solrcloud-with-legacy-configuration-files.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/solrcloud-with-legacy-configuration-files.adoc
diff --git a/solr/solr-ref-guide/src/solrj.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/solrj.adoc
similarity index 91%
rename from solr/solr-ref-guide/src/solrj.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/solrj.adoc
index b4bd862..0b5e105 100644
--- a/solr/solr-ref-guide/src/solrj.adoc
+++ b/solr/solr-ref-guide/modules/deployment-guide/pages/solrj.adoc
@@ -1,6 +1,4 @@
 = SolrJ
-:solr-root-path: ../../
-:example-source-dir: {solr-root-path}solrj/src/test/org/apache/solr/client/ref_guide_examples/
 // 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
@@ -140,7 +138,7 @@ They should not include any collections, cores, or other path components.
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}UsingSolrJRefGuideExamplesTest.java[tag=solrj-cloudsolrclient-baseurl]
+include::example$UsingSolrJRefGuideExamplesTest.java[tag=solrj-cloudsolrclient-baseurl]
 ----
 
 In case a `baseUrl` is not provided, then a list of ZooKeeper hosts (with ports) and ZooKeeper root must be provided.
@@ -148,12 +146,12 @@ If no ZooKeeper root is used then `java.util.Optional.empty()` has to be provide
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}UsingSolrJRefGuideExamplesTest.java[tag=solrj-cloudsolrclient-zookeepernoroot]
+include::example$UsingSolrJRefGuideExamplesTest.java[tag=solrj-cloudsolrclient-zookeepernoroot]
 ----
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}UsingSolrJRefGuideExamplesTest.java[tag=solrj-cloudsolrclient-zookeeperroot]
+include::example$UsingSolrJRefGuideExamplesTest.java[tag=solrj-cloudsolrclient-zookeeperroot]
 ----
 
 
@@ -163,7 +161,7 @@ These are provided at client creation time, as in the example below:
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}UsingSolrJRefGuideExamplesTest.java[tag=solrj-solrclient-timeouts]
+include::example$UsingSolrJRefGuideExamplesTest.java[tag=solrj-solrclient-timeouts]
 ----
 
 When these values are not explicitly provided, SolrJ falls back to using the defaults for the OS/environment is running on.
@@ -191,7 +189,7 @@ The following snippet uses a SolrClient to query Solr's "techproducts" example c
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}UsingSolrJRefGuideExamplesTest.java[tag=solrj-query-with-raw-solrparams]
+include::example$UsingSolrJRefGuideExamplesTest.java[tag=solrj-query-with-raw-solrparams]
 ----
 
 `SolrParams` has a `SolrQuery` subclass, which provides some convenience methods that greatly simplifies query creation.
@@ -199,7 +197,7 @@ The following snippet shows how the query from the previous example can be built
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}UsingSolrJRefGuideExamplesTest.java[tag=solrj-query-with-solrquery]
+include::example$UsingSolrJRefGuideExamplesTest.java[tag=solrj-query-with-solrquery]
 ----
 
 == Indexing in SolrJ
@@ -211,7 +209,7 @@ The following example shows how to use SolrJ to add a document to Solr's "techpr
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}UsingSolrJRefGuideExamplesTest.java[tag=solrj-index-with-raw-solrinputdoc]
+include::example$UsingSolrJRefGuideExamplesTest.java[tag=solrj-index-with-raw-solrinputdoc]
 ----
 
 CAUTION: The indexing examples above are intended to show syntax.
@@ -230,21 +228,21 @@ The example snippet below shows an annotated `TechProduct` class that can be use
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}UsingSolrJRefGuideExamplesTest.java[tag=solrj-techproduct-value-type]
+include::example$UsingSolrJRefGuideExamplesTest.java[tag=solrj-techproduct-value-type]
 ----
 
 Application code with access to the annotated `TechProduct` class above can index `TechProduct` objects directly without any conversion, as in the example snippet below:
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}UsingSolrJRefGuideExamplesTest.java[tag=solrj-index-bean-value-type]
+include::example$UsingSolrJRefGuideExamplesTest.java[tag=solrj-index-bean-value-type]
 ----
 
 Similarly, search results can be converted directly into bean objects using the `getBeans()` method on `QueryResponse`:
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}UsingSolrJRefGuideExamplesTest.java[tag=solrj-query-bean-value-type]
+include::example$UsingSolrJRefGuideExamplesTest.java[tag=solrj-query-bean-value-type]
 ----
 
 == Other APIs
@@ -257,5 +255,5 @@ The example below shows how SolrJ users can call the CLUSTERSTATUS API of SolrCl
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}UsingSolrJRefGuideExamplesTest.java[tag=solrj-other-apis]
+include::example$UsingSolrJRefGuideExamplesTest.java[tag=solrj-other-apis]
 ----
diff --git a/solr/solr-ref-guide/src/system-requirements.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/system-requirements.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/system-requirements.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/system-requirements.adoc
diff --git a/solr/solr-ref-guide/src/taking-solr-to-production.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/taking-solr-to-production.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/taking-solr-to-production.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/taking-solr-to-production.adoc
diff --git a/solr/solr-ref-guide/src/task-management.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/task-management.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/task-management.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/task-management.adoc
diff --git a/solr/solr-ref-guide/src/thread-dump.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/thread-dump.adoc
similarity index 93%
rename from solr/solr-ref-guide/src/thread-dump.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/thread-dump.adoc
index ee1a907..78c08df 100644
--- a/solr/solr-ref-guide/src/thread-dump.adoc
+++ b/solr/solr-ref-guide/modules/deployment-guide/pages/thread-dump.adoc
@@ -23,7 +23,7 @@ Icons to the left indicate the state of the thread: for example, threads with a
 On the right of the thread name, a down-arrow means you can expand to see the stacktrace for that thread.
 
 .List of Threads
-image::images/thread-dump/thread_dump_1.png[image,width=484,height=250]
+image::thread-dump/thread_dump_1.png[image,width=484,height=250]
 
 When you move your cursor over a thread name, a box floats over the name with the state for that thread.
 Thread states can be:
@@ -42,6 +42,6 @@ Thread states can be:
 When you click on one of the threads that can be expanded, you'll see the stacktrace, as in the example below:
 
 .Inspecting a Thread
-image::images/thread-dump/thread_dump_2.png[image,width=453,height=250]
+image::thread-dump/thread_dump_2.png[image,width=453,height=250]
 
 You can also check the *Show all Stacktraces* button to automatically enable expansion for all threads.
diff --git a/solr/solr-ref-guide/src/upgrading-a-solr-cluster.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/upgrading-a-solr-cluster.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/upgrading-a-solr-cluster.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/upgrading-a-solr-cluster.adoc
diff --git a/solr/solr-ref-guide/src/user-managed-clusters.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/user-managed-clusters.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/user-managed-clusters.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/user-managed-clusters.adoc
diff --git a/solr/solr-ref-guide/src/user-managed-distributed-search.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/user-managed-distributed-search.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/user-managed-distributed-search.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/user-managed-distributed-search.adoc
diff --git a/solr/solr-ref-guide/src/user-managed-index-replication.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/user-managed-index-replication.adoc
similarity index 99%
rename from solr/solr-ref-guide/src/user-managed-index-replication.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/user-managed-index-replication.adoc
index 287066d..ea0e592 100644
--- a/solr/solr-ref-guide/src/user-managed-index-replication.adoc
+++ b/solr/solr-ref-guide/modules/deployment-guide/pages/user-managed-index-replication.adoc
@@ -25,7 +25,7 @@ The figure below shows a Solr configuration using index replication.
 The leader server's index is replicated on the followers.
 
 .A Solr index can be replicated across multiple follower servers, which then process requests.
-image::images/user-managed-index-replication/user-managed-replication.png[]
+image::user-managed-index-replication/user-managed-replication.png[]
 
 
 == Index Replication in Solr
@@ -304,7 +304,7 @@ If you are using Leader-Follower index replication, you can use this screen to:
 . View the current replication status (on a follower node)
 . Disable replication (on a leader node)
 
-image::images/user-managed-index-replication/replication.png[image,width=412,height=250]
+image::user-managed-index-replication/replication.png[image,width=412,height=250]
 
 == Follower Replication
 
diff --git a/solr/solr-ref-guide/src/zookeeper-access-control.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/zookeeper-access-control.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/zookeeper-access-control.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/zookeeper-access-control.adoc
diff --git a/solr/solr-ref-guide/src/zookeeper-ensemble.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/zookeeper-ensemble.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/zookeeper-ensemble.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/zookeeper-ensemble.adoc
diff --git a/solr/solr-ref-guide/src/zookeeper-file-management.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/zookeeper-file-management.adoc
similarity index 95%
rename from solr/solr-ref-guide/src/zookeeper-file-management.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/zookeeper-file-management.adoc
index e0852fc..236ce87 100644
--- a/solr/solr-ref-guide/src/zookeeper-file-management.adoc
+++ b/solr/solr-ref-guide/modules/deployment-guide/pages/zookeeper-file-management.adoc
@@ -1,6 +1,4 @@
 = ZooKeeper File Management
-:solr-root-path: ../../
-:example-source-dir: {solr-root-path}solrj/src/test/org/apache/solr/client/ref_guide_examples/
 // 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
@@ -66,7 +64,7 @@ bin/solr zk upconfig -n <name for configset> -d <path to directory with configse
 The following code shows how this can also be achieved using SolrJ:
 [source,java,indent=0]
 ----
-include::{example-source-dir}ZkConfigFilesTest.java[tag=zk-configset-upload]
+include::example$ZkConfigFilesTest.java[tag=zk-configset-upload]
 ----
 
 It is strongly recommended that the configurations be kept in a version control system, Git, SVN or similar.
diff --git a/solr/solr-ref-guide/src/zookeeper-utilities.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/zookeeper-utilities.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/zookeeper-utilities.adoc
rename to solr/solr-ref-guide/modules/deployment-guide/pages/zookeeper-utilities.adoc
diff --git a/solr/solr-ref-guide/modules/getting-started/getting-started-nav.adoc b/solr/solr-ref-guide/modules/getting-started/getting-started-nav.adoc
new file mode 100644
index 0000000..64a59bd
--- /dev/null
+++ b/solr/solr-ref-guide/modules/getting-started/getting-started-nav.adoc
@@ -0,0 +1,20 @@
+.Getting Started
+* xref:getting-started.adoc[]
+** xref:introduction.adoc[]
+
+** xref:solr-concepts.adoc[]
+*** xref:documents-fields-schema-design.adoc[]
+*** xref:solr-indexing.adoc[]
+*** xref:searching-in-solr.adoc[]
+*** xref:relevance.adoc[]
+*** xref:solr-glossary.adoc[]
+
+** xref:solr-tutorial.adoc[]
+*** xref:tutorial-techproducts.adoc[]
+*** xref:tutorial-films.adoc[]
+*** xref:tutorial-diy.adoc[]
+*** xref:tutorial-solrcloud.adoc[]
+*** xref:tutorial-aws.adoc[]
+
+** xref:solr-admin-ui.adoc[]
+** xref:about-this-guide.adoc[]
diff --git a/solr/solr-ref-guide/src/images/searching-in-solr/cnet-faceting.png b/solr/solr-ref-guide/modules/getting-started/images/searching-in-solr/cnet-faceting.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/searching-in-solr/cnet-faceting.png
rename to solr/solr-ref-guide/modules/getting-started/images/searching-in-solr/cnet-faceting.png
diff --git a/solr/solr-ref-guide/src/images/searching-in-solr/search-process.png b/solr/solr-ref-guide/modules/getting-started/images/searching-in-solr/search-process.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/searching-in-solr/search-process.png
rename to solr/solr-ref-guide/modules/getting-started/images/searching-in-solr/search-process.png
diff --git a/solr/solr-ref-guide/src/images/solr-admin-ui/Assistance.png b/solr/solr-ref-guide/modules/getting-started/images/solr-admin-ui/Assistance.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/solr-admin-ui/Assistance.png
rename to solr/solr-ref-guide/modules/getting-started/images/solr-admin-ui/Assistance.png
diff --git a/solr/solr-ref-guide/src/images/solr-admin-ui/collection_dashboard.png b/solr/solr-ref-guide/modules/getting-started/images/solr-admin-ui/collection_dashboard.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/solr-admin-ui/collection_dashboard.png
rename to solr/solr-ref-guide/modules/getting-started/images/solr-admin-ui/collection_dashboard.png
diff --git a/solr/solr-ref-guide/src/images/solr-admin-ui/core_dashboard.png b/solr/solr-ref-guide/modules/getting-started/images/solr-admin-ui/core_dashboard.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/solr-admin-ui/core_dashboard.png
rename to solr/solr-ref-guide/modules/getting-started/images/solr-admin-ui/core_dashboard.png
diff --git a/solr/solr-ref-guide/src/images/solr-admin-ui/dashboard.png b/solr/solr-ref-guide/modules/getting-started/images/solr-admin-ui/dashboard.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/solr-admin-ui/dashboard.png
rename to solr/solr-ref-guide/modules/getting-started/images/solr-admin-ui/dashboard.png
diff --git a/solr/solr-ref-guide/src/images/solr-admin-ui/login.png b/solr/solr-ref-guide/modules/getting-started/images/solr-admin-ui/login.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/solr-admin-ui/login.png
rename to solr/solr-ref-guide/modules/getting-started/images/solr-admin-ui/login.png
diff --git a/solr/solr-ref-guide/src/images/solr-admin-ui/schema-designer.png b/solr/solr-ref-guide/modules/getting-started/images/solr-admin-ui/schema-designer.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/solr-admin-ui/schema-designer.png
rename to solr/solr-ref-guide/modules/getting-started/images/solr-admin-ui/schema-designer.png
diff --git a/solr/solr-ref-guide/src/images/solr-admin-ui/security.png b/solr/solr-ref-guide/modules/getting-started/images/solr-admin-ui/security.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/solr-admin-ui/security.png
rename to solr/solr-ref-guide/modules/getting-started/images/solr-admin-ui/security.png
diff --git a/solr/solr-ref-guide/src/images/solr-tutorial/tutorial-add-copy-field.png b/solr/solr-ref-guide/modules/getting-started/images/solr-tutorial/tutorial-add-copy-field.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/solr-tutorial/tutorial-add-copy-field.png
rename to solr/solr-ref-guide/modules/getting-started/images/solr-tutorial/tutorial-add-copy-field.png
diff --git a/solr/solr-ref-guide/src/images/solr-tutorial/tutorial-add-field.png b/solr/solr-ref-guide/modules/getting-started/images/solr-tutorial/tutorial-add-field.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/solr-tutorial/tutorial-add-field.png
rename to solr/solr-ref-guide/modules/getting-started/images/solr-tutorial/tutorial-add-field.png
diff --git a/solr/solr-ref-guide/src/images/solr-tutorial/tutorial-admin-ui-facet-options.png b/solr/solr-ref-guide/modules/getting-started/images/solr-tutorial/tutorial-admin-ui-facet-options.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/solr-tutorial/tutorial-admin-ui-facet-options.png
rename to solr/solr-ref-guide/modules/getting-started/images/solr-tutorial/tutorial-admin-ui-facet-options.png
diff --git a/solr/solr-ref-guide/src/images/solr-tutorial/tutorial-query-screen.png b/solr/solr-ref-guide/modules/getting-started/images/solr-tutorial/tutorial-query-screen.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/solr-tutorial/tutorial-query-screen.png
rename to solr/solr-ref-guide/modules/getting-started/images/solr-tutorial/tutorial-query-screen.png
diff --git a/solr/solr-ref-guide/src/images/solr-tutorial/tutorial-range-facet.png b/solr/solr-ref-guide/modules/getting-started/images/solr-tutorial/tutorial-range-facet.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/solr-tutorial/tutorial-range-facet.png
rename to solr/solr-ref-guide/modules/getting-started/images/solr-tutorial/tutorial-range-facet.png
diff --git a/solr/solr-ref-guide/src/images/solr-tutorial/tutorial-solrcloud.png b/solr/solr-ref-guide/modules/getting-started/images/solr-tutorial/tutorial-solrcloud.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/solr-tutorial/tutorial-solrcloud.png
rename to solr/solr-ref-guide/modules/getting-started/images/solr-tutorial/tutorial-solrcloud.png
diff --git a/solr/solr-ref-guide/src/images/solr-tutorial/tutorial-spatial.png b/solr/solr-ref-guide/modules/getting-started/images/solr-tutorial/tutorial-spatial.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/solr-tutorial/tutorial-spatial.png
rename to solr/solr-ref-guide/modules/getting-started/images/solr-tutorial/tutorial-spatial.png
diff --git a/solr/solr-ref-guide/src/images/tutorial-aws/aws-key.png b/solr/solr-ref-guide/modules/getting-started/images/tutorial-aws/aws-key.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/tutorial-aws/aws-key.png
rename to solr/solr-ref-guide/modules/getting-started/images/tutorial-aws/aws-key.png
diff --git a/solr/solr-ref-guide/src/images/tutorial-aws/aws-security-create.png b/solr/solr-ref-guide/modules/getting-started/images/tutorial-aws/aws-security-create.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/tutorial-aws/aws-security-create.png
rename to solr/solr-ref-guide/modules/getting-started/images/tutorial-aws/aws-security-create.png
diff --git a/solr/solr-ref-guide/src/images/tutorial-aws/aws-security-edit.png b/solr/solr-ref-guide/modules/getting-started/images/tutorial-aws/aws-security-edit.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/tutorial-aws/aws-security-edit.png
rename to solr/solr-ref-guide/modules/getting-started/images/tutorial-aws/aws-security-edit.png
diff --git a/solr/solr-ref-guide/src/about-this-guide.adoc b/solr/solr-ref-guide/modules/getting-started/pages/about-this-guide.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/about-this-guide.adoc
rename to solr/solr-ref-guide/modules/getting-started/pages/about-this-guide.adoc
diff --git a/solr/solr-ref-guide/src/documents-fields-schema-design.adoc b/solr/solr-ref-guide/modules/getting-started/pages/documents-fields-schema-design.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/documents-fields-schema-design.adoc
rename to solr/solr-ref-guide/modules/getting-started/pages/documents-fields-schema-design.adoc
diff --git a/solr/solr-ref-guide/src/getting-started.adoc b/solr/solr-ref-guide/modules/getting-started/pages/getting-started.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/getting-started.adoc
rename to solr/solr-ref-guide/modules/getting-started/pages/getting-started.adoc
diff --git a/solr/solr-ref-guide/src/introduction.adoc b/solr/solr-ref-guide/modules/getting-started/pages/introduction.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/introduction.adoc
rename to solr/solr-ref-guide/modules/getting-started/pages/introduction.adoc
diff --git a/solr/solr-ref-guide/src/relevance.adoc b/solr/solr-ref-guide/modules/getting-started/pages/relevance.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/relevance.adoc
rename to solr/solr-ref-guide/modules/getting-started/pages/relevance.adoc
diff --git a/solr/solr-ref-guide/src/searching-in-solr.adoc b/solr/solr-ref-guide/modules/getting-started/pages/searching-in-solr.adoc
similarity index 97%
rename from solr/solr-ref-guide/src/searching-in-solr.adoc
rename to solr/solr-ref-guide/modules/getting-started/pages/searching-in-solr.adoc
index c92bc54..bcb84be 100644
--- a/solr/solr-ref-guide/src/searching-in-solr.adoc
+++ b/solr/solr-ref-guide/modules/getting-started/pages/searching-in-solr.adoc
@@ -69,7 +69,7 @@ Faceting makes it easy for users to explore search results on sites such as movi
 
 The screen shot below shows an example of faceting from the CNET Web site (CBS Interactive Inc.), which was the first site to use Solr.
 
-image::images/searching-in-solr/cnet-faceting.png[image,width=600,height=300]
+image::searching-in-solr/cnet-faceting.png[image,width=600,height=300]
 
 Faceting makes use of fields defined when the search applications were indexed.
 In the example above, these fields include categories of information that are useful for describing digital cameras: manufacturer, resolution, and zoom range.
@@ -86,4 +86,4 @@ Solr includes a variety of response writers, including an <<response-writers.ado
 
 The diagram below summarizes some key elements of the search process.
 
-image::images/searching-in-solr/search-process.png[image,width=624,height=401]
+image::searching-in-solr/search-process.png[image,width=624,height=401]
diff --git a/solr/solr-ref-guide/src/solr-admin-ui.adoc b/solr/solr-ref-guide/modules/getting-started/pages/solr-admin-ui.adoc
similarity index 95%
rename from solr/solr-ref-guide/src/solr-admin-ui.adoc
rename to solr/solr-ref-guide/modules/getting-started/pages/solr-admin-ui.adoc
index 6761ec4..507b76b 100644
--- a/solr/solr-ref-guide/src/solr-admin-ui.adoc
+++ b/solr/solr-ref-guide/modules/getting-started/pages/solr-admin-ui.adoc
@@ -26,7 +26,7 @@ Solr features a Web interface that provides online access to many Solr configura
 Accessing the URL `\http://hostname:8983/solr/` will show the main dashboard, which is divided into two parts.
 
 .Solr Dashboard
-image::images/solr-admin-ui/dashboard.png[image,height=400]
+image::solr-admin-ui/dashboard.png[image,height=400]
 
 The left-side of the screen is a menu under the Solr logo that provides the navigation through the screens of the UI.
 
@@ -52,7 +52,7 @@ A convenience redirect is also supported, so simply accessing the Admin UI at `\
 If authentication has been enabled, Solr will present a login screen to unauthenticated users before allowing them further access to the Admin UI.
 
 .Login Screen
-image::images/solr-admin-ui/login.png[]
+image::solr-admin-ui/login.png[]
 
 This login screen currently only works with Basic Authentication.
 See the section <<basic-authentication-plugin.adoc#,Basic Authentication Plugin>> for
@@ -68,7 +68,7 @@ However, if the user does not have a valid ticket, they will see a message that
 At the bottom of each screen of the Admin UI is a set of links that can be used to get more assistance with configuring and using Solr.
 
 .Assistance icons
-image::images/solr-admin-ui/Assistance.png[Assistance icons]
+image::solr-admin-ui/Assistance.png[Assistance icons]
 
 These icons include the following links.
 
@@ -91,13 +91,13 @@ Users with the `security-edit` permission can manage users, roles, and permissio
 Users with the `security-read` permission can view the Security panel but all update actions on the panel are disabled.
 
 .Security Screen
-image::images/solr-admin-ui/security.png[image,width=800]
+image::solr-admin-ui/security.png[image,width=800]
 
 == Schema Designer
 
 The <<schema-designer.adoc#,Schema Designer>> screen provides an interactive experience to create a schema using sample data.
 
-image::images/solr-admin-ui/schema-designer.png[image]
+image::solr-admin-ui/schema-designer.png[image]
 
 .Only Visible When Using SolrCloud
 [NOTE]
@@ -121,7 +121,7 @@ Clicking on the Collection Selector pull-down menu will show a list of the colle
 When a collection is selected, the main body of the page will display some  metadata about the collection.
 A secondary menu will appear in the left nav with links to additional collection specific administration screens.
 
-image::images/solr-admin-ui/collection_dashboard.png[image,width=482,height=250]
+image::solr-admin-ui/collection_dashboard.png[image,width=482,height=250]
 
 == Core-Specific Tools
 
@@ -133,7 +133,7 @@ Clicking on the menu will show a list of Solr cores hosted on this Solr node, wi
 When you select a core from the pull-down, the main display of the page will show some basic metadata about the core, and a secondary menu will appear in the left nav with links to additional core specific administration screens.
 
 .Core overview screen
-image::images/solr-admin-ui/core_dashboard.png[image,width=515,height=250]
+image::solr-admin-ui/core_dashboard.png[image,width=515,height=250]
 
 == Links to UI Documentation
 Here are sections throughout the Guide describing each screen of the Admin UI:
diff --git a/solr/solr-ref-guide/src/solr-concepts.adoc b/solr/solr-ref-guide/modules/getting-started/pages/solr-concepts.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/solr-concepts.adoc
rename to solr/solr-ref-guide/modules/getting-started/pages/solr-concepts.adoc
diff --git a/solr/solr-ref-guide/src/solr-glossary.adoc b/solr/solr-ref-guide/modules/getting-started/pages/solr-glossary.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/solr-glossary.adoc
rename to solr/solr-ref-guide/modules/getting-started/pages/solr-glossary.adoc
diff --git a/solr/solr-ref-guide/src/solr-indexing.adoc b/solr/solr-ref-guide/modules/getting-started/pages/solr-indexing.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/solr-indexing.adoc
rename to solr/solr-ref-guide/modules/getting-started/pages/solr-indexing.adoc
diff --git a/solr/solr-ref-guide/src/solr-tutorial.adoc b/solr/solr-ref-guide/modules/getting-started/pages/solr-tutorial.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/solr-tutorial.adoc
rename to solr/solr-ref-guide/modules/getting-started/pages/solr-tutorial.adoc
diff --git a/solr/solr-ref-guide/src/tutorial-aws.adoc b/solr/solr-ref-guide/modules/getting-started/pages/tutorial-aws.adoc
similarity index 98%
rename from solr/solr-ref-guide/src/tutorial-aws.adoc
rename to solr/solr-ref-guide/modules/getting-started/pages/tutorial-aws.adoc
index 337a6e9..fd2489b 100644
--- a/solr/solr-ref-guide/src/tutorial-aws.adoc
+++ b/solr/solr-ref-guide/modules/getting-started/pages/tutorial-aws.adoc
@@ -71,7 +71,7 @@ Choose "SSH" as the type, and again "My IP" for the source and again enter your
 You need SSH access on all instances to install and configure Solr.
 .. Review the details, your group configuration should look like this:
 +
-image::images/tutorial-aws/aws-security-create.png[image,width=600,height=400]
+image::tutorial-aws/aws-security-create.png[image,width=600,height=400]
 .. Click btn:[Create] when finished.
 .. We need to modify the rules so that instances that are part of the group can talk to all other instances that are part of the same group.
 We could not do this while creating the group, so we need to edit the group after creating it to add this.
@@ -82,7 +82,7 @@ Choose `All TCP` from the pulldown list for the type, and enter `0-65535` for th
 Specify the name of the current Security Group as the `solr-sample`.
 .. Review the details, your group configuration should now look like this:
 +
-image::images/tutorial-aws/aws-security-edit.png[image,width=600,height=400]
+image::tutorial-aws/aws-security-edit.png[image,width=600,height=400]
 .. Click btn:[Save] when finished.
 
 === Configure Instances and Launch
@@ -112,7 +112,7 @@ You do not have to add any tags for this quick start, but you can add them if yo
 . If everything looks correct, click btn:[Launch].
 . Select an existing “private key file” or create a new one and download to your local machine so you will be able to login into the instances via SSH.
 +
-image::images/tutorial-aws/aws-key.png[image,width=600,height=400]
+image::tutorial-aws/aws-key.png[image,width=600,height=400]
 . On the instances list, you can watch the states change.
 You cannot use the instances until they become *“running”*.
 
diff --git a/solr/solr-ref-guide/src/tutorial-diy.adoc b/solr/solr-ref-guide/modules/getting-started/pages/tutorial-diy.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/tutorial-diy.adoc
rename to solr/solr-ref-guide/modules/getting-started/pages/tutorial-diy.adoc
diff --git a/solr/solr-ref-guide/src/tutorial-films.adoc b/solr/solr-ref-guide/modules/getting-started/pages/tutorial-films.adoc
similarity index 98%
rename from solr/solr-ref-guide/src/tutorial-films.adoc
rename to solr/solr-ref-guide/modules/getting-started/pages/tutorial-films.adoc
index 0ed5516..a4fc105 100644
--- a/solr/solr-ref-guide/src/tutorial-films.adoc
+++ b/solr/solr-ref-guide/modules/getting-started/pages/tutorial-films.adoc
@@ -166,7 +166,7 @@ You can also use the Admin UI to create fields, but it offers a bit less control
 It will work for our case, though:
 
 .Creating a field
-image::images/solr-tutorial/tutorial-add-field.png[Adding a Field,640,480,pdfwidth=75%]
+image::solr-tutorial/tutorial-add-field.png[Adding a Field,640,480,pdfwidth=75%]
 
 ===== Create a "catchall" Copy Field
 
@@ -189,7 +189,7 @@ curl -X POST -H 'Content-type:application/json' --data-binary '{"add-copy-field"
 In the Admin UI, choose btn:[Add Copy Field], then fill out the source and destination for your field, as in this screenshot.
 
 .Creating a copy field
-image::images/solr-tutorial/tutorial-add-copy-field.png[Adding a copy field,640,480,pdfwidth=75%]
+image::solr-tutorial/tutorial-add-copy-field.png[Adding a copy field,640,480,pdfwidth=75%]
 
 What this does is make a copy of all fields and put the data into the "\_text_" field.
 
@@ -277,7 +277,7 @@ In addition to providing search results, a Solr query can return the number of d
 On the Admin UI Query tab, if you check the `facet` checkbox, you'll see a few facet-related options appear:
 
 .Facet options in the Query screen
-image::images/solr-tutorial/tutorial-admin-ui-facet-options.png[Solr Quick Start: Query tab facet options]
+image::solr-tutorial/tutorial-admin-ui-facet-options.png[Solr Quick Start: Query tab facet options]
 
 To see facet counts from all documents (`q=\*:*`): turn on faceting (`facet=true`), and specify the field to facet on via the `facet.field` parameter.
 If you only want facets, and no document contents, specify `rows=0`.
diff --git a/solr/solr-ref-guide/src/tutorial-solrcloud.adoc b/solr/solr-ref-guide/modules/getting-started/pages/tutorial-solrcloud.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/tutorial-solrcloud.adoc
rename to solr/solr-ref-guide/modules/getting-started/pages/tutorial-solrcloud.adoc
diff --git a/solr/solr-ref-guide/src/tutorial-techproducts.adoc b/solr/solr-ref-guide/modules/getting-started/pages/tutorial-techproducts.adoc
similarity index 99%
rename from solr/solr-ref-guide/src/tutorial-techproducts.adoc
rename to solr/solr-ref-guide/modules/getting-started/pages/tutorial-techproducts.adoc
index 97fe3c9..a7f68e5 100644
--- a/solr/solr-ref-guide/src/tutorial-techproducts.adoc
+++ b/solr/solr-ref-guide/modules/getting-started/pages/tutorial-techproducts.adoc
@@ -179,7 +179,7 @@ There is one collection created automatically, `techproducts`, a two shard colle
 The http://localhost:8983/solr/#/~cloud[Cloud tab] in the Admin UI diagrams the collection nicely:
 
 .SolrCloud Diagram
-image::images/solr-tutorial/tutorial-solrcloud.png[]
+image::solr-tutorial/tutorial-solrcloud.png[]
 
 == Index the Techproducts Data
 
@@ -253,7 +253,7 @@ The Solr Admin UI includes a query builder interface via the Query tab for the `
 If you click the btn:[Execute Query] button without changing anything in the form, you'll get 10 documents in JSON format:
 
 .Query Screen
-image::images/solr-tutorial/tutorial-query-screen.png[Solr Quick Start: techproducts Query screen with results]
+image::solr-tutorial/tutorial-query-screen.png[Solr Quick Start: techproducts Query screen with results]
 
 The URL sent by the Admin UI to Solr is shown in light grey near the top right of the above screenshot.
 If you click on it, your browser will show you the raw response.
diff --git a/solr/solr-ref-guide/modules/indexing-guide/examples/IndexingNestedDocuments.java b/solr/solr-ref-guide/modules/indexing-guide/examples/IndexingNestedDocuments.java
new file mode 120000
index 0000000..05cde54
--- /dev/null
+++ b/solr/solr-ref-guide/modules/indexing-guide/examples/IndexingNestedDocuments.java
@@ -0,0 +1 @@
+../../../../solrj/src/test/org/apache/solr/client/ref_guide_examples/IndexingNestedDocuments.java
\ No newline at end of file
diff --git a/solr/solr-ref-guide/modules/indexing-guide/examples/stemdict.txt b/solr/solr-ref-guide/modules/indexing-guide/examples/stemdict.txt
new file mode 120000
index 0000000..c242c73
--- /dev/null
+++ b/solr/solr-ref-guide/modules/indexing-guide/examples/stemdict.txt
@@ -0,0 +1 @@
+../../../../core/src/test-files/solr/collection1/conf/stemdict.txt
\ No newline at end of file
diff --git a/solr/solr-ref-guide/src/images/analysis-screen/analysis_compare_0.png b/solr/solr-ref-guide/modules/indexing-guide/images/analysis-screen/analysis_compare_0.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/analysis-screen/analysis_compare_0.png
rename to solr/solr-ref-guide/modules/indexing-guide/images/analysis-screen/analysis_compare_0.png
diff --git a/solr/solr-ref-guide/src/images/analysis-screen/analysis_compare_1.png b/solr/solr-ref-guide/modules/indexing-guide/images/analysis-screen/analysis_compare_1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/analysis-screen/analysis_compare_1.png
rename to solr/solr-ref-guide/modules/indexing-guide/images/analysis-screen/analysis_compare_1.png
diff --git a/solr/solr-ref-guide/src/images/analysis-screen/analysis_compare_2.png b/solr/solr-ref-guide/modules/indexing-guide/images/analysis-screen/analysis_compare_2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/analysis-screen/analysis_compare_2.png
rename to solr/solr-ref-guide/modules/indexing-guide/images/analysis-screen/analysis_compare_2.png
diff --git a/solr/solr-ref-guide/src/images/analysis-screen/analysis_compare_3.png b/solr/solr-ref-guide/modules/indexing-guide/images/analysis-screen/analysis_compare_3.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/analysis-screen/analysis_compare_3.png
rename to solr/solr-ref-guide/modules/indexing-guide/images/analysis-screen/analysis_compare_3.png
diff --git a/solr/solr-ref-guide/src/images/analysis-screen/analysis_compare_4.png b/solr/solr-ref-guide/modules/indexing-guide/images/analysis-screen/analysis_compare_4.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/analysis-screen/analysis_compare_4.png
rename to solr/solr-ref-guide/modules/indexing-guide/images/analysis-screen/analysis_compare_4.png
diff --git a/solr/solr-ref-guide/src/images/analysis-screen/analysis_normal.png b/solr/solr-ref-guide/modules/indexing-guide/images/analysis-screen/analysis_normal.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/analysis-screen/analysis_normal.png
rename to solr/solr-ref-guide/modules/indexing-guide/images/analysis-screen/analysis_normal.png
diff --git a/solr/solr-ref-guide/src/images/documents-screen/documents_add_screen.png b/solr/solr-ref-guide/modules/indexing-guide/images/documents-screen/documents_add_screen.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/documents-screen/documents_add_screen.png
rename to solr/solr-ref-guide/modules/indexing-guide/images/documents-screen/documents_add_screen.png
diff --git a/solr/solr-ref-guide/src/images/indexing-with-tika/sample-pdf-query.png b/solr/solr-ref-guide/modules/indexing-guide/images/indexing-with-tika/sample-pdf-query.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/indexing-with-tika/sample-pdf-query.png
rename to solr/solr-ref-guide/modules/indexing-guide/images/indexing-with-tika/sample-pdf-query.png
diff --git a/solr/solr-ref-guide/src/images/schema-browser-screen/schema_browser_terms.png b/solr/solr-ref-guide/modules/indexing-guide/images/schema-browser-screen/schema_browser_terms.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/schema-browser-screen/schema_browser_terms.png
rename to solr/solr-ref-guide/modules/indexing-guide/images/schema-browser-screen/schema_browser_terms.png
diff --git a/solr/solr-ref-guide/src/images/schema-designer/analyze-sample-docs.png b/solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/analyze-sample-docs.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/schema-designer/analyze-sample-docs.png
rename to solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/analyze-sample-docs.png
diff --git a/solr/solr-ref-guide/src/images/schema-designer/field-filters.png b/solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/field-filters.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/schema-designer/field-filters.png
rename to solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/field-filters.png
diff --git a/solr/solr-ref-guide/src/images/schema-designer/incompat-change.png b/solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/incompat-change.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/schema-designer/incompat-change.png
rename to solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/incompat-change.png
diff --git a/solr/solr-ref-guide/src/images/schema-designer/new-schema.png b/solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/new-schema.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/schema-designer/new-schema.png
rename to solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/new-schema.png
diff --git a/solr/solr-ref-guide/src/images/schema-designer/publish.png b/solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/publish.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/schema-designer/publish.png
rename to solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/publish.png
diff --git a/solr/solr-ref-guide/src/images/schema-designer/query-tester.png b/solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/query-tester.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/schema-designer/query-tester.png
rename to solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/query-tester.png
diff --git a/solr/solr-ref-guide/src/images/schema-designer/reload-schema.png b/solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/reload-schema.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/schema-designer/reload-schema.png
rename to solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/reload-schema.png
diff --git a/solr/solr-ref-guide/src/images/schema-designer/schema-editor-fields.png b/solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/schema-editor-fields.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/schema-designer/schema-editor-fields.png
rename to solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/schema-editor-fields.png
diff --git a/solr/solr-ref-guide/src/images/schema-designer/schema-editor-root.png b/solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/schema-editor-root.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/schema-designer/schema-editor-root.png
rename to solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/schema-editor-root.png
diff --git a/solr/solr-ref-guide/src/images/schema-designer/schema-editor-update.png b/solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/schema-editor-update.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/schema-designer/schema-editor-update.png
rename to solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/schema-editor-update.png
diff --git a/solr/solr-ref-guide/src/images/schema-designer/show-changes.png b/solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/show-changes.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/schema-designer/show-changes.png
rename to solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/show-changes.png
diff --git a/solr/solr-ref-guide/src/images/schema-designer/text-analysis.png b/solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/text-analysis.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/schema-designer/text-analysis.png
rename to solr/solr-ref-guide/modules/indexing-guide/images/schema-designer/text-analysis.png
diff --git a/solr/solr-ref-guide/modules/indexing-guide/indexing-nav.adoc b/solr/solr-ref-guide/modules/indexing-guide/indexing-nav.adoc
new file mode 100644
index 0000000..70bfa9f
--- /dev/null
+++ b/solr/solr-ref-guide/modules/indexing-guide/indexing-nav.adoc
@@ -0,0 +1,46 @@
+.Schema and Indexing Guide
+* xref:schema-indexing-guide.adoc[]
+
+** xref:solr-schema.adoc[]
+*** xref:schema-elements.adoc[]
+*** xref:schema-api.adoc[]
+*** xref:schemaless-mode.adoc[]
+*** xref:schema-designer.adoc[]
+*** xref:schema-browser-screen.adoc[]
+
+** xref:fields-and-schema-design.adoc[]
+*** xref:fields.adoc[]
+*** xref:field-types.adoc[]
+**** xref:field-type-definitions-and-properties.adoc[]
+**** xref:field-types-included-with-solr.adoc[]
+**** xref:currencies-exchange-rates.adoc[]
+**** xref:date-formatting-math.adoc[]
+**** xref:enum-fields.adoc[]
+**** xref:external-files-processes.adoc[]
+**** xref:field-properties-by-use-case.adoc[]
+*** xref:copy-fields.adoc[]
+*** xref:dynamic-fields.adoc[]
+*** xref:docvalues.adoc[]
+*** xref:luke-request-handler.adoc[]
+
+** xref:document-analysis.adoc[]
+*** xref:analyzers.adoc[]
+*** xref:tokenizers.adoc[]
+*** xref:filters.adoc[]
+*** xref:charfilterfactories.adoc[]
+*** xref:language-analysis.adoc[]
+*** xref:phonetic-matching.adoc[]
+*** xref:analysis-screen.adoc[]
+
+** xref:indexing-data-operations.adoc[]
+*** xref:indexing-with-update-handlers.adoc[]
+**** xref:transforming-and-indexing-custom-json.adoc[]
+*** xref:indexing-with-tika.adoc[]
+*** xref:indexing-nested-documents.adoc[]
+*** xref:post-tool.adoc[]
+*** xref:documents-screen.adoc[]
+*** xref:partial-document-updates.adoc[]
+*** xref:reindexing.adoc[]
+*** xref:language-detection.adoc[]
+*** xref:de-duplication.adoc[]
+*** xref:content-streams.adoc[]
diff --git a/solr/solr-ref-guide/src/analysis-screen.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/analysis-screen.adoc
similarity index 92%
rename from solr/solr-ref-guide/src/analysis-screen.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/analysis-screen.adoc
index 39dc213..bd92b79 100644
--- a/solr/solr-ref-guide/src/analysis-screen.adoc
+++ b/solr/solr-ref-guide/modules/indexing-guide/pages/analysis-screen.adoc
@@ -25,14 +25,14 @@ For example, let's look at some of the "Text" field types available in the `bin/
 
 We can begin with `text_ws` - one of the most simplified Text field types available:
 
-image::images/analysis-screen/analysis_normal.png[Normal Analysis]
+image::analysis-screen/analysis_normal.png[Normal Analysis]
 
 This shows a simple output of only the tokens produced by each step of analysis (a single step in this case).
 The tokenizer is shown with an abbreviation, hover or click on this to see the full name.
 
 If we enable *Verbose Output* by checking the box, more details are shown:
 
-image::images/analysis-screen/analysis_compare_0.png[Verbose Analysis]
+image::analysis-screen/analysis_compare_0.png[Verbose Analysis]
 
 By looking at the start and end positions for each term, we can see that the only thing this field type does is tokenize text on whitespace.
 Notice in this image that the term "Running" has a start position of 0 and an end position of 7, while "an" has a start position of 8 and an end position of 10, and "Analyzer" starts at 11 and ends at 19.
@@ -50,22 +50,22 @@ In particular we want:
 
 For our next attempt, let's try the `text_general` field type:
 
-image::images/analysis-screen/analysis_compare_1.png[image]
+image::analysis-screen/analysis_compare_1.png[image]
 
 With the verbose output enabled, we can see how each stage of our new analyzers modify the tokens they receive before passing them on to the next stage.
 As we scroll down to the final output, we can see that we do start to get a match on "analyzer" from each input string, thanks to the "LCF" stage, which if you hover over with your mouse, you'll see is the `LowerCaseFilter`:
 
-image::images/analysis-screen/analysis_compare_2.png[image]
+image::analysis-screen/analysis_compare_2.png[image]
 
 The `text_general` field type is designed to be generally useful for any language, and it has definitely gotten us closer to our objective than `text_ws` from our first example by solving the problem of case sensitivity.
 It's still not quite what we are looking for because we don't see stemming or stopword rules being applied.
 So now let us try the `text_en` field type:
 
-image::images/analysis-screen/analysis_compare_3.png[image]
+image::analysis-screen/analysis_compare_3.png[image]
 
 Now we can see the "SF" (`StopFilter`) stage of the analyzers solving the problem of removing Stop Words ("an"), and as we scroll down, we also see the "PSF" (`PorterStemFilter`) stage apply stemming rules suitable for our English language input, such that the terms produced by our "index analyzer" and the terms produced by our "query analyzer" match the way we expect.
 
-image::images/analysis-screen/analysis_compare_4.png[image]
+image::analysis-screen/analysis_compare_4.png[image]
 
 
 At this point, we can continue to experiment with additional inputs, verifying that our analyzers produce matching tokens when we expect them to match, and disparate tokens when we do not expect them to match, as we iterate and tweak our field type configuration.
diff --git a/solr/solr-ref-guide/src/analyzers.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/analyzers.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/analyzers.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/analyzers.adoc
diff --git a/solr/solr-ref-guide/src/charfilterfactories.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/charfilterfactories.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/charfilterfactories.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/charfilterfactories.adoc
diff --git a/solr/solr-ref-guide/src/content-streams.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/content-streams.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/content-streams.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/content-streams.adoc
diff --git a/solr/solr-ref-guide/src/copy-fields.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/copy-fields.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/copy-fields.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/copy-fields.adoc
diff --git a/solr/solr-ref-guide/src/currencies-exchange-rates.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/currencies-exchange-rates.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/currencies-exchange-rates.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/currencies-exchange-rates.adoc
diff --git a/solr/solr-ref-guide/src/date-formatting-math.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/date-formatting-math.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/date-formatting-math.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/date-formatting-math.adoc
diff --git a/solr/solr-ref-guide/src/de-duplication.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/de-duplication.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/de-duplication.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/de-duplication.adoc
diff --git a/solr/solr-ref-guide/src/document-analysis.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/document-analysis.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/document-analysis.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/document-analysis.adoc
diff --git a/solr/solr-ref-guide/src/documents-screen.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/documents-screen.adoc
similarity index 98%
rename from solr/solr-ref-guide/src/documents-screen.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/documents-screen.adoc
index fa527e1..22ca858 100644
--- a/solr/solr-ref-guide/src/documents-screen.adoc
+++ b/solr/solr-ref-guide/modules/indexing-guide/pages/documents-screen.adoc
@@ -19,7 +19,7 @@
 The Documents screen provides a simple form allowing you to execute various Solr indexing commands in a variety of formats directly from the browser.
 
 .The Documents Screen
-image::images/documents-screen/documents_add_screen.png[image,height=400]
+image::documents-screen/documents_add_screen.png[image,height=400]
 
 The screen allows you to:
 
diff --git a/solr/solr-ref-guide/src/docvalues.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/docvalues.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/docvalues.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/docvalues.adoc
diff --git a/solr/solr-ref-guide/src/dynamic-fields.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/dynamic-fields.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/dynamic-fields.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/dynamic-fields.adoc
diff --git a/solr/solr-ref-guide/src/enum-fields.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/enum-fields.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/enum-fields.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/enum-fields.adoc
diff --git a/solr/solr-ref-guide/src/external-files-processes.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/external-files-processes.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/external-files-processes.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/external-files-processes.adoc
diff --git a/solr/solr-ref-guide/src/field-properties-by-use-case.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/field-properties-by-use-case.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/field-properties-by-use-case.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/field-properties-by-use-case.adoc
diff --git a/solr/solr-ref-guide/src/field-type-definitions-and-properties.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/field-type-definitions-and-properties.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/field-type-definitions-and-properties.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/field-type-definitions-and-properties.adoc
diff --git a/solr/solr-ref-guide/src/field-types-included-with-solr.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/field-types-included-with-solr.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/field-types-included-with-solr.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/field-types-included-with-solr.adoc
diff --git a/solr/solr-ref-guide/src/field-types.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/field-types.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/field-types.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/field-types.adoc
diff --git a/solr/solr-ref-guide/src/fields-and-schema-design.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/fields-and-schema-design.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/fields-and-schema-design.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/fields-and-schema-design.adoc
diff --git a/solr/solr-ref-guide/src/fields.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/fields.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/fields.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/fields.adoc
diff --git a/solr/solr-ref-guide/src/filters.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/filters.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/filters.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/filters.adoc
diff --git a/solr/solr-ref-guide/src/indexing-data-operations.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/indexing-data-operations.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/indexing-data-operations.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/indexing-data-operations.adoc
diff --git a/solr/solr-ref-guide/src/indexing-nested-documents.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/indexing-nested-documents.adoc
similarity index 98%
rename from solr/solr-ref-guide/src/indexing-nested-documents.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/indexing-nested-documents.adoc
index 3003018..44dc993 100644
--- a/solr/solr-ref-guide/src/indexing-nested-documents.adoc
+++ b/solr/solr-ref-guide/modules/indexing-guide/pages/indexing-nested-documents.adoc
@@ -1,6 +1,4 @@
 = Indexing Nested Documents
-:solr-root-path: ../../
-:example-source-dir: {solr-root-path}solrj/src/test/org/apache/solr/client/ref_guide_examples/
 // 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
@@ -218,7 +216,7 @@ The <<indexing-with-update-handlers#json-update-convenience-paths,`/update/json/
 [.tab-label]*SolrJ*
 [source,java,indent=0]
 ----
-include::{example-source-dir}IndexingNestedDocuments.java[tag=nest-path]
+include::example$IndexingNestedDocuments.java[tag=nest-path]
 ----
 ====
 --
@@ -416,7 +414,7 @@ Although not recommended, it is also possible to index child documents "anonymou
 [.tab-label]*SolrJ*
 [source,java,indent=0]
 ----
-include::{example-source-dir}IndexingNestedDocuments.java[tag=anon-kids]
+include::example$IndexingNestedDocuments.java[tag=anon-kids]
 ----
 ====
 
diff --git a/solr/solr-ref-guide/src/indexing-with-tika.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/indexing-with-tika.adoc
similarity index 99%
rename from solr/solr-ref-guide/src/indexing-with-tika.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/indexing-with-tika.adoc
index d3a3342..cdd5077 100644
--- a/solr/solr-ref-guide/src/indexing-with-tika.adoc
+++ b/solr/solr-ref-guide/modules/indexing-guide/pages/indexing-with-tika.adoc
@@ -120,7 +120,7 @@ bin/post -c gettingstarted example/exampledocs/solr-word.pdf -params "literal.id
 Now you can execute a query and find that document with a request like `\http://localhost:8983/solr/gettingstarted/select?q=pdf`.
 The document will look something like this:
 
-image::images/indexing-with-tika/sample-pdf-query.png[float="right",width=50%,pdfwidth=60%]
+image::indexing-with-tika/sample-pdf-query.png[float="right",width=50%,pdfwidth=60%]
 
 You may notice there are many metadata fields associated with this document.
 Solr's configuration is by default in "schemaless" (data driven) mode, and thus all metadata fields extracted get their own field.
diff --git a/solr/solr-ref-guide/src/indexing-with-update-handlers.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/indexing-with-update-handlers.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/indexing-with-update-handlers.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/indexing-with-update-handlers.adoc
diff --git a/solr/solr-ref-guide/src/language-analysis.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/language-analysis.adoc
similarity index 99%
rename from solr/solr-ref-guide/src/language-analysis.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/language-analysis.adoc
index 3a93f42..676add4 100644
--- a/solr/solr-ref-guide/src/language-analysis.adoc
+++ b/solr/solr-ref-guide/modules/indexing-guide/pages/language-analysis.adoc
@@ -159,7 +159,7 @@ A sample `stemdict.txt` file is shown below:
 
 [source,text]
 ----
-include::{example-source-dir}stemdict.txt[lines=18..22]
+include::example$stemdict.txt[lines=18..22]
 ----
 
 If you have a checkout of Solr's source code locally, you can also find this example in Solr's test resources at `solr/core/src/test-files/solr/collection1/conf/stemdict.txt`.
diff --git a/solr/solr-ref-guide/src/language-detection.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/language-detection.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/language-detection.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/language-detection.adoc
diff --git a/solr/solr-ref-guide/src/luke-request-handler.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/luke-request-handler.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/luke-request-handler.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/luke-request-handler.adoc
diff --git a/solr/solr-ref-guide/src/partial-document-updates.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/partial-document-updates.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/partial-document-updates.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/partial-document-updates.adoc
diff --git a/solr/solr-ref-guide/src/phonetic-matching.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/phonetic-matching.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/phonetic-matching.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/phonetic-matching.adoc
diff --git a/solr/solr-ref-guide/src/post-tool.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/post-tool.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/post-tool.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/post-tool.adoc
diff --git a/solr/solr-ref-guide/src/reindexing.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/reindexing.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/reindexing.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/reindexing.adoc
diff --git a/solr/solr-ref-guide/src/schema-api.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/schema-api.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/schema-api.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/schema-api.adoc
diff --git a/solr/solr-ref-guide/src/schema-browser-screen.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/schema-browser-screen.adoc
similarity index 97%
rename from solr/solr-ref-guide/src/schema-browser-screen.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/schema-browser-screen.adoc
index 5ceab10..723af74 100644
--- a/solr/solr-ref-guide/src/schema-browser-screen.adoc
+++ b/solr/solr-ref-guide/modules/indexing-guide/pages/schema-browser-screen.adoc
@@ -22,7 +22,7 @@ If you have accessed this window from the Analysis screen, it will be opened to
 If there is nothing chosen, use the pull-down menu to choose the field or field type.
 
 .Schema Browser Screen
-image::images/schema-browser-screen/schema_browser_terms.png[image,height=400]
+image::schema-browser-screen/schema_browser_terms.png[image,height=400]
 
 The screen provides a great deal of useful information about each particular field and fieldtype in the Schema, and provides a quick UI for adding fields or fieldtypes using the <<schema-api.adoc#,Schema API>> (if enabled).
 In the example above, we have chosen the `cat` field.
diff --git a/solr/solr-ref-guide/src/schema-designer.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/schema-designer.adoc
similarity index 94%
rename from solr/solr-ref-guide/src/schema-designer.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/schema-designer.adoc
index a9a09e5..13576fa 100644
--- a/solr/solr-ref-guide/src/schema-designer.adoc
+++ b/solr/solr-ref-guide/modules/indexing-guide/pages/schema-designer.adoc
@@ -20,7 +20,7 @@
 The Schema Designer screen lets you interactively design a new schema using sample data.
 
 .Schema Designer screen
-image::images/solr-admin-ui/schema-designer.png[image]
+image::solr-admin-ui/schema-designer.png[image]
 
 There are a number of panels on the Schema Designer screen to provide immediate feedback when you make changes to the schema, including:
 
@@ -45,7 +45,7 @@ If the <<rule-based-authorization-plugin.adoc#,Rule-based Authorization Plugin>>
 
 Upon entering the Schema Designer for the first time, you'll be prompted to create a New Schema.
 
-image::images/schema-designer/new-schema.png[image,width=500]
+image::schema-designer/new-schema.png[image,width=500]
 
 Choose a short name that reflects the intended use case for your new schema. You'll need to choose a source schema to copy as the starting point for your new schema.
 Solr includes a `_default` schema which provides a good starting place for building a custom schema for your search application.
@@ -54,7 +54,7 @@ Once a schema is published, it can be used to create new schemas and will be lis
 Once you create the new schema, the next step is to upload or paste a sample of the data you intend to index into Solr.
 The Schema Designer supports JSON, CSV, TSV, XML, and JSON lines (jsonl).
 
-image::images/schema-designer/analyze-sample-docs.png[image,width=400]
+image::schema-designer/analyze-sample-docs.png[image,width=400]
 
 The advantage of pasting sample documents into the text area is that you can edit the sample and see the impact of your changes immediately in the analyzed schema.
 The upload feature is useful if you have large or many sample documents; the Schema Designer API allows up to 1,000 sample documents or a max of 5MB upload, but in most cases you only need a handful of documents to get started.
@@ -70,7 +70,7 @@ These temporary resources are persisted to disk and exist until the schema is pu
 If you close your browser screen while designing a new schema, it will be available when you return.
 Simply choose the name of the schema you created previously in the select box and your schema will load into the designer UI.
 
-image::images/schema-designer/reload-schema.png[image,width=400]
+image::schema-designer/reload-schema.png[image,width=400]
 
 Previously uploaded sample documents are indexed in the temporary collection even though they do not display in the text area.
 
@@ -125,7 +125,7 @@ After analyzing your sample documents, the Schema Designer loads the schema in t
 The editor renders the schema as a tree component composed of Fields, Dynamic Fields, Field Types, and Files.
 For more information about schema objects, see <<fields-and-schema-design.adoc#,Fields and Schema Design>>.
 
-image::images/schema-designer/schema-editor-root.png[image,width=700]
+image::schema-designer/schema-editor-root.png[image,width=700]
 
 .Schema vs. Configset
 [NOTE]
@@ -150,16 +150,16 @@ When first starting out, you can leave the default settings and focus your atten
 Click on the *Fields* node in the editor tree to see an overview of the fields in your schema,
 along with the <<field-type-definitions-and-properties.adoc#,properties>> that govern how the field will be indexed by Solr.
 
-image::images/schema-designer/schema-editor-fields.png[image,width=750]
+image::schema-designer/schema-editor-fields.png[image,width=750]
 
 If there are many fields in your schema, you can filter the displayed fields by type or feature using the filters at the top of the tree.
 For instance, to filter fields with `docValues` enabled, choose `feature` and then `docValues` with `enabled` checked.
 
-image::images/schema-designer/field-filters.png[image,width=500]
+image::schema-designer/field-filters.png[image,width=500]
 
 To edit a field, click on the name of the field in the tree to load the field information in the main editor panel to the right of the tree.
 
-image::images/schema-designer/schema-editor-update.png[image,width=750]
+image::schema-designer/schema-editor-update.png[image,width=750]
 
 [TIP]
 ====
@@ -170,7 +170,7 @@ After making the desired changes, click on the btn:[Update Field] button. The Sc
 Some changes, such as changing a single-valued `docValues` field to multi-valued, may require the underlying Lucene index to be deleted and rebuilt from scratch.
 The Schema Designer will warn you when your change requires a full rebuild.
 
-image::images/schema-designer/incompat-change.png[image,width=450]
+image::schema-designer/incompat-change.png[image,width=450]
 
 Moreover, if you change a field to an incompatible type based on the sample data, the designer will undo the changes automatically.
 For instance, changing a field with text data to a numeric type will be rejected by the designer.
@@ -188,7 +188,7 @@ The Schema Designer does not support deleting fields from the schema.
 
 When you select a text-based field in the tree, the *Text Analysis* panel shows how the text from a sample document gets analyzed for indexing.
 
-image::images/schema-designer/text-analysis.png[image,width=600]
+image::schema-designer/text-analysis.png[image,width=600]
 
 If you need to change the text analysis strategy for a field, you need to edit the Field Type. For more information about text analysis, see: <<analyzers.adoc#,Analyzers>>.
 
@@ -198,7 +198,7 @@ The *Query Tester* panel lets you experiment with queries executed against your
 Using the Query Tester, you can see how changes to the schema impact the behavior of queries, such as matching, sorting, faceting, and highlighting.
 The Query Tester form is not intended to demonstrate all possible <<query-guide.adoc#,query features>> available in Solr.
 
-image::images/schema-designer/query-tester.png[image]
+image::schema-designer/query-tester.png[image]
 
 Whenever you make a change to the schema, the query tester form is re-submitted to refresh the query results.
 This helps inform you about matching issues where a test query should find a sample document but doesn't return the correct results,
@@ -215,7 +215,7 @@ Similarly, the tester form lists all fields that you can compute facets for; if
 Click on the btn:[Show Changes] button to view a report of the changes made to the schema during the current editing session.
 The un-published changes are compared to either the original schema you copied from (such as `_default`) or the published schema.
 
-image::images/schema-designer/show-changes.png[image,width=600]
+image::schema-designer/show-changes.png[image,width=600]
 
 You need to take care when changing schemas that have already been published if there are collections with data indexed using the schema.
 
@@ -225,7 +225,7 @@ Publishing a new schema makes it available for use when creating new collections
 will be affected by the publish action; of course there will not be any impacted collections for new schemas. You may also create a new
 collection during publishing that uses the new schema and choose whether to index your sample documents in the new collection.
 
-image::images/schema-designer/publish.png[image,width=450]
+image::schema-designer/publish.png[image,width=450]
 
 You can also choose to prevent future changes to this schema by the Schema Designer. However, this setting only applies to the Schema Designer UI
 and does not prevent someone from changing the schema using the Schema API directly.
diff --git a/solr/solr-ref-guide/src/schema-elements.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/schema-elements.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/schema-elements.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/schema-elements.adoc
diff --git a/solr/solr-ref-guide/src/schema-indexing-guide.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/schema-indexing-guide.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/schema-indexing-guide.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/schema-indexing-guide.adoc
diff --git a/solr/solr-ref-guide/src/schemaless-mode.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/schemaless-mode.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/schemaless-mode.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/schemaless-mode.adoc
diff --git a/solr/solr-ref-guide/src/solr-schema.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/solr-schema.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/solr-schema.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/solr-schema.adoc
diff --git a/solr/solr-ref-guide/src/tokenizers.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/tokenizers.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/tokenizers.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/tokenizers.adoc
diff --git a/solr/solr-ref-guide/src/transforming-and-indexing-custom-json.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/transforming-and-indexing-custom-json.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/transforming-and-indexing-custom-json.adoc
rename to solr/solr-ref-guide/modules/indexing-guide/pages/transforming-and-indexing-custom-json.adoc
diff --git a/solr/solr-ref-guide/modules/query-guide/examples/JsonRequestApiHeatmapFacetingTest.java b/solr/solr-ref-guide/modules/query-guide/examples/JsonRequestApiHeatmapFacetingTest.java
new file mode 120000
index 0000000..a2ae172
--- /dev/null
+++ b/solr/solr-ref-guide/modules/query-guide/examples/JsonRequestApiHeatmapFacetingTest.java
@@ -0,0 +1 @@
+../../../../solrj/src/test/org/apache/solr/client/ref_guide_examples/JsonRequestApiHeatmapFacetingTest.java
\ No newline at end of file
diff --git a/solr/solr-ref-guide/modules/query-guide/examples/JsonRequestApiTest.java b/solr/solr-ref-guide/modules/query-guide/examples/JsonRequestApiTest.java
new file mode 120000
index 0000000..3f61155
--- /dev/null
+++ b/solr/solr-ref-guide/modules/query-guide/examples/JsonRequestApiTest.java
@@ -0,0 +1 @@
+../../../../solrj/src/test/org/apache/solr/client/ref_guide_examples/JsonRequestApiTest.java
\ No newline at end of file
diff --git a/solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_1.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_1.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_1.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_11.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_11.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_11.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_11.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_12.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_12.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_12.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_12.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_13.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_13.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_13.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_13.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_14.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_14.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_14.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_14.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_15.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_15.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_15.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_15.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_16.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_16.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_16.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_16.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_17.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_17.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_17.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_17.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_19.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_19.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_19.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_19.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_2.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_2.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_2.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_20.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_20.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_20.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_20.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_3.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_3.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_3.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_3.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_4.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_4.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_4.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_4.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_5.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_5.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_5.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_5.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_6.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_6.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_6.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_6.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_7.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_7.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_7.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_7.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_9.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_9.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_9.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_9.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_1.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_1.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_1.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_10.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_10.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_10.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_10.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_11.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_11.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_11.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_11.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_12.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_12.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_12.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_12.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_13.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_13.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_13.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_13.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_14.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_14.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_14.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_14.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_15.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_15.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_15.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_15.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_2.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_2.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_2.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_3.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_3.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_3.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_3.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_4.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_4.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_4.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_4.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_5.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_5.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_5.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_5.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_7.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_7.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_7.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_7.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_9.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_9.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-squirrel/squirrelsql_solrjdbc_9.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-squirrel/squirrelsql_solrjdbc_9.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-zeppelin/zeppelin_solrjdbc_1.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-zeppelin/zeppelin_solrjdbc_1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-zeppelin/zeppelin_solrjdbc_1.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-zeppelin/zeppelin_solrjdbc_1.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-zeppelin/zeppelin_solrjdbc_2.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-zeppelin/zeppelin_solrjdbc_2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-zeppelin/zeppelin_solrjdbc_2.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-zeppelin/zeppelin_solrjdbc_2.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-zeppelin/zeppelin_solrjdbc_3.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-zeppelin/zeppelin_solrjdbc_3.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-zeppelin/zeppelin_solrjdbc_3.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-zeppelin/zeppelin_solrjdbc_3.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-zeppelin/zeppelin_solrjdbc_4.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-zeppelin/zeppelin_solrjdbc_4.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-zeppelin/zeppelin_solrjdbc_4.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-zeppelin/zeppelin_solrjdbc_4.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-zeppelin/zeppelin_solrjdbc_5.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-zeppelin/zeppelin_solrjdbc_5.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-zeppelin/zeppelin_solrjdbc_5.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-zeppelin/zeppelin_solrjdbc_5.png
diff --git a/solr/solr-ref-guide/src/images/jdbc-zeppelin/zeppelin_solrjdbc_6.png b/solr/solr-ref-guide/modules/query-guide/images/jdbc-zeppelin/zeppelin_solrjdbc_6.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/jdbc-zeppelin/zeppelin_solrjdbc_6.png
rename to solr/solr-ref-guide/modules/query-guide/images/jdbc-zeppelin/zeppelin_solrjdbc_6.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/2Centroids.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/2Centroids.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/2Centroids.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/2Centroids.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/2DCluster1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/2DCluster1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/2DCluster1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/2DCluster1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/2DCluster2.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/2DCluster2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/2DCluster2.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/2DCluster2.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/2Dcentroids.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/2Dcentroids.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/2Dcentroids.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/2Dcentroids.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/2Dcluster.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/2Dcluster.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/2Dcluster.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/2Dcluster.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/add.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/add.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/add.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/add.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/aggs.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/aggs.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/aggs.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/aggs.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/anomaly.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/anomaly.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/anomaly.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/anomaly.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/array.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/array.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/array.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/array.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/autocorr.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/autocorr.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/autocorr.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/autocorr.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/bar.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/bar.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/bar.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/bar.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/beta.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/beta.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/beta.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/beta.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/binomial.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/binomial.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/binomial.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/binomial.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/bivariate.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/bivariate.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/bivariate.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/bivariate.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/cartesian.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/cartesian.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/cartesian.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/cartesian.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/cartogram.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/cartogram.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/cartogram.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/cartogram.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/centroidplot.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/centroidplot.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/centroidplot.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/centroidplot.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/centroidzoom.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/centroidzoom.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/centroidzoom.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/centroidzoom.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/clusters.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/clusters.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/clusters.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/clusters.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/clusterzip.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/clusterzip.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/clusterzip.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/clusterzip.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/clusterzipplot.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/clusterzipplot.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/clusterzipplot.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/clusterzipplot.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/commit-series.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/commit-series.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/commit-series.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/commit-series.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/constant.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/constant.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/constant.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/constant.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/conv-smooth.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/conv-smooth.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/conv-smooth.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/conv-smooth.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/conv1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/conv1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/conv1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/conv1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/conv2.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/conv2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/conv2.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/conv2.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/conv3.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/conv3.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/conv3.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/conv3.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/conv4.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/conv4.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/conv4.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/conv4.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/convex.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/convex.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/convex.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/convex.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/convex0.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/convex0.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/convex0.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/convex0.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/convex1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/convex1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/convex1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/convex1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/convex2.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/convex2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/convex2.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/convex2.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/correlation.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/correlation.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/correlation.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/correlation.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/corrmatrix.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/corrmatrix.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/corrmatrix.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/corrmatrix.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/corrmatrix2.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/corrmatrix2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/corrmatrix2.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/corrmatrix2.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/corrsim1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/corrsim1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/corrsim1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/corrsim1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/corrsim2.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/corrsim2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/corrsim2.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/corrsim2.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/corrsim3.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/corrsim3.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/corrsim3.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/corrsim3.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/covariance.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/covariance.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/covariance.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/covariance.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/crosscorr.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/crosscorr.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/crosscorr.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/crosscorr.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/csv.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/csv.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/csv.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/csv.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/csvselect.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/csvselect.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/csvselect.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/csvselect.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/csvtable.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/csvtable.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/csvtable.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/csvtable.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/cumPct.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/cumPct.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/cumPct.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/cumPct.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/cumProb.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/cumProb.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/cumProb.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/cumProb.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/curve-fitting.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/curve-fitting.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/curve-fitting.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/curve-fitting.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/custom-hist.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/custom-hist.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/custom-hist.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/custom-hist.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/dbscan1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/dbscan1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/dbscan1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/dbscan1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/dbscan2.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/dbscan2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/dbscan2.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/dbscan2.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/delay.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/delay.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/delay.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/delay.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/derivative.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/derivative.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/derivative.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/derivative.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/derivative1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/derivative1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/derivative1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/derivative1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/derivative2.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/derivative2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/derivative2.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/derivative2.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/derivatives.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/derivatives.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/derivatives.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/derivatives.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/describe.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/describe.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/describe.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/describe.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/diagnostics.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/diagnostics.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/diagnostics.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/diagnostics.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/diff.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/diff.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/diff.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/diff.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/diff1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/diff1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/diff1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/diff1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/diffcorr.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/diffcorr.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/diffcorr.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/diffcorr.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/diffzoom.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/diffzoom.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/diffzoom.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/diffzoom.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/dist.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/dist.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/dist.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/dist.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/distance.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/distance.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/distance.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/distance.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/distanceview.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/distanceview.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/distanceview.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/distanceview.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/empirical.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/empirical.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/empirical.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/empirical.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/enum1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/enum1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/enum1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/enum1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/enum2.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/enum2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/enum2.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/enum2.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/expmoving.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/expmoving.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/expmoving.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/expmoving.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/facet2D.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/facet2D.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/facet2D.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/facet2D.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/facettab1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/facettab1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/facettab1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/facettab1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/facettab2.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/facettab2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/facettab2.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/facettab2.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/facetviz1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/facetviz1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/facetviz1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/facetviz1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/facetviz2.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/facetviz2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/facetviz2.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/facetviz2.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/fft.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/fft.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/fft.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/fft.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/forecast.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/forecast.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/forecast.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/forecast.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/freqTable.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/freqTable.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/freqTable.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/freqTable.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/freqTable1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/freqTable1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/freqTable1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/freqTable1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/fuzzyk.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/fuzzyk.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/fuzzyk.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/fuzzyk.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/gamma.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/gamma.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/gamma.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/gamma.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/gaussfit.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/gaussfit.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/gaussfit.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/gaussfit.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/gaussfit2.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/gaussfit2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/gaussfit2.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/gaussfit2.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/geometric.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/geometric.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/geometric.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/geometric.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/graph1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/graph1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/graph1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/graph1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/graph2.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/graph2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/graph2.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/graph2.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/harmfit.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/harmfit.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/harmfit.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/harmfit.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/harmfit2.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/harmfit2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/harmfit2.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/harmfit2.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/hashRollup.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/hashRollup.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/hashRollup.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/hashRollup.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/having.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/having.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/having.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/having.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/having2.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/having2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/having2.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/having2.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/having3.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/having3.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/having3.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/having3.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/havingId.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/havingId.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/havingId.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/havingId.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/havingIsNull.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/havingIsNull.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/havingIsNull.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/havingIsNull.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/havingNotNull.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/havingNotNull.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/havingNotNull.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/havingNotNull.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/heat.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/heat.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/heat.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/heat.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/hfit.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/hfit.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/hfit.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/hfit.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/hidden-signal-autocorrelation.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/hidden-signal-autocorrelation.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/hidden-signal-autocorrelation.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/hidden-signal-autocorrelation.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/hidden-signal-fft.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/hidden-signal-fft.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/hidden-signal-fft.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/hidden-signal-fft.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/hidden-signal.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/hidden-signal.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/hidden-signal.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/hidden-signal.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/hist.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/hist.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/hist.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/hist.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/histtable.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/histtable.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/histtable.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/histtable.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/hullplot.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/hullplot.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/hullplot.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/hullplot.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/ifIsNull.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/ifIsNull.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/ifIsNull.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/ifIsNull.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/integral.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/integral.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/integral.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/integral.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/interpolate1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/interpolate1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/interpolate1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/interpolate1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/knn.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/knn.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/knn.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/knn.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/knnRegress.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/knnRegress.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/knnRegress.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/knnRegress.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/knnSearch.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/knnSearch.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/knnSearch.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/knnSearch.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/line.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/line.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/line.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/line.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/line1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/line1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/line1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/line1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/linear.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/linear.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/linear.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/linear.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/loess.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/loess.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/loess.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/loess.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/lognormal.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/lognormal.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/lognormal.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/lognormal.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/logs-collection.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/logs-collection.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/logs-collection.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/logs-collection.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/logs-dates.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/logs-dates.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/logs-dates.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/logs-dates.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/logs-sample.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/logs-sample.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/logs-sample.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/logs-sample.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/logs-time-series.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/logs-time-series.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/logs-time-series.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/logs-time-series.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/logs-time-series2.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/logs-time-series2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/logs-time-series2.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/logs-time-series2.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/logs-time-series3.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/logs-time-series3.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/logs-time-series3.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/logs-time-series3.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/logs-type-collection.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/logs-type-collection.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/logs-type-collection.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/logs-type-collection.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/logs-type.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/logs-type.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/logs-type.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/logs-type.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/mad.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/mad.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/mad.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/mad.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/maddist.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/maddist.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/maddist.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/maddist.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/madsort.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/madsort.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/madsort.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/madsort.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/map.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/map.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/map.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/map.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/matches.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/matches.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/matches.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/matches.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/matrix.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/matrix.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/matrix.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/matrix.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/minmaxscale.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/minmaxscale.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/minmaxscale.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/minmaxscale.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/mnorm.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/mnorm.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/mnorm.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/mnorm.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/mnorm1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/mnorm1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/mnorm1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/mnorm1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/mnorm2.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/mnorm2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/mnorm2.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/mnorm2.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/monte-carlo.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/monte-carlo.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/monte-carlo.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/monte-carlo.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/movingMedian.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/movingMedian.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/movingMedian.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/movingMedian.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/movingavg.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/movingavg.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/movingavg.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/movingavg.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/multitime1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/multitime1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/multitime1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/multitime1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/nodestab.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/nodestab.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/nodestab.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/nodestab.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/nodesviz.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/nodesviz.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/nodesviz.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/nodesviz.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/noise-autocorrelation.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/noise-autocorrelation.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/noise-autocorrelation.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/noise-autocorrelation.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/noise-fft.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/noise-fft.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/noise-fft.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/noise-fft.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/noise.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/noise.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/noise.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/noise.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/num.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/num.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/num.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/num.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/number.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/number.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/number.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/number.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/outliers.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/outliers.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/outliers.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/outliers.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/overlay-series.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/overlay-series.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/overlay-series.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/overlay-series.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/paging.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/paging.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/paging.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/paging.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/poisson.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/poisson.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/poisson.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/poisson.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/polyfit-predict.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/polyfit-predict.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/polyfit-predict.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/polyfit-predict.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/polyfit-resid.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/polyfit-resid.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/polyfit-resid.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/polyfit-resid.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/polyfit.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/polyfit.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/polyfit.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/polyfit.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/qtime-dist.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/qtime-dist.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/qtime-dist.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/qtime-dist.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/qtime-highest-scatter.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/qtime-highest-scatter.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/qtime-highest-scatter.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/qtime-highest-scatter.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/qtime-scatter.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/qtime-scatter.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/qtime-scatter.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/qtime-scatter.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/qtime-series.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/qtime-series.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/qtime-series.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/qtime-series.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/quantile-plot.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/quantile-plot.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/quantile-plot.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/quantile-plot.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/quantiles.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/quantiles.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/quantiles.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/quantiles.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/quantiles1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/quantiles1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/quantiles1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/quantiles1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/query-ids.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/query-ids.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/query-ids.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/query-ids.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/query-qq.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/query-qq.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/query-qq.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/query-qq.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/query-shard-level.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/query-shard-level.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/query-shard-level.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/query-shard-level.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/query-spike.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/query-spike.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/query-spike.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/query-spike.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/query-top-level.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/query-top-level.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/query-top-level.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/query-top-level.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/randomwalk1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/randomwalk1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/randomwalk1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/randomwalk1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/randomwalk2.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/randomwalk2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/randomwalk2.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/randomwalk2.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/randomwalk3.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/randomwalk3.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/randomwalk3.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/randomwalk3.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/randomwalk4.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/randomwalk4.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/randomwalk4.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/randomwalk4.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/randomwalk5.1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/randomwalk5.1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/randomwalk5.1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/randomwalk5.1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/randomwalk5.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/randomwalk5.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/randomwalk5.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/randomwalk5.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/randomwalk6.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/randomwalk6.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/randomwalk6.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/randomwalk6.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/ratscatter.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/ratscatter.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/ratscatter.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/ratscatter.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/recNum.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/recNum.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/recNum.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/recNum.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/redwine1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/redwine1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/redwine1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/redwine1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/redwine2.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/redwine2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/redwine2.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/redwine2.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/regression-plot.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/regression-plot.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/regression-plot.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/regression-plot.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/residual-plot.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/residual-plot.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/residual-plot.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/residual-plot.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/residual-plot2.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/residual-plot2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/residual-plot2.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/residual-plot2.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/residuals.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/residuals.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/residuals.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/residuals.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/sample-overlay.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/sample-overlay.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/sample-overlay.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/sample-overlay.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/sample-scatter.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/sample-scatter.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/sample-scatter.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/sample-scatter.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/sample-scatter1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/sample-scatter1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/sample-scatter1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/sample-scatter1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/scalar.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/scalar.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/scalar.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/scalar.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/scoring.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/scoring.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/scoring.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/scoring.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/search-error.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/search-error.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/search-error.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/search-error.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/search-matches.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/search-matches.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/search-matches.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/search-matches.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/search-page.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/search-page.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/search-page.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/search-page.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/search-resort.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/search-resort.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/search-resort.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/search-resort.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/search-sort-plot.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/search-sort-plot.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/search-sort-plot.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/search-sort-plot.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/search-sort.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/search-sort.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/search-sort.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/search-sort.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/search.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/search.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/search.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/search.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/search1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/search1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/search1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/search1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/searchiris.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/searchiris.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/searchiris.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/searchiris.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/season.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/season.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/season.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/season.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/seasondiff.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/seasondiff.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/seasondiff.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/seasondiff.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/select-math.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/select-math.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/select-math.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/select-math.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/select1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/select1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/select1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/select1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/select2.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/select2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/select2.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/select2.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/selectconcat.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/selectconcat.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/selectconcat.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/selectconcat.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/selectupper.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/selectupper.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/selectupper.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/selectupper.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/selectuuid.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/selectuuid.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/selectuuid.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/selectuuid.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/signal-autocorrelation.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/signal-autocorrelation.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/signal-autocorrelation.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/signal-autocorrelation.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/signal-fft.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/signal-fft.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/signal-fft.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/signal-fft.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/signal.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/signal.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/signal.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/signal.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/significantTerms2.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/significantTerms2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/significantTerms2.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/significantTerms2.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/significantTermsCompare.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/significantTermsCompare.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/significantTermsCompare.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/significantTermsCompare.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/sined.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/sined.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/sined.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/sined.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/sinewave.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/sinewave.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/sinewave.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/sinewave.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/sinewave256.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/sinewave256.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/sinewave256.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/sinewave256.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/skipping.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/skipping.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/skipping.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/skipping.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/slow-nodes.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/slow-nodes.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/slow-nodes.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/slow-nodes.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/slow-queries.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/slow-queries.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/slow-queries.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/slow-queries.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/spline.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/spline.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/spline.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/spline.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/sqlagg.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/sqlagg.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/sqlagg.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/sqlagg.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/stack.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/stack.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/stack.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/stack.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/standardize.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/standardize.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/standardize.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/standardize.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/stats-table.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/stats-table.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/stats-table.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/stats-table.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/stats.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/stats.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/stats.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/stats.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/sterms.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/sterms.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/sterms.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/sterms.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/stream.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/stream.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/stream.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/stream.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/striding.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/striding.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/striding.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/striding.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/table.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/table.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/table.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/table.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/text-analytics.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/text-analytics.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/text-analytics.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/text-analytics.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/timecompare.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/timecompare.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/timecompare.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/timecompare.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/timemodel.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/timemodel.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/timemodel.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/timemodel.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/timeseries.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/timeseries.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/timeseries.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/timeseries.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/timeseries1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/timeseries1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/timeseries1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/timeseries1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/timeseries2.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/timeseries2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/timeseries2.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/timeseries2.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/trend.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/trend.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/trend.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/trend.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/triangular.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/triangular.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/triangular.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/triangular.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/uniform.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/uniform.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/uniform.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/uniform.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/uniformr.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/uniformr.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/uniformr.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/uniformr.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/unitize.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/unitize.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/unitize.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/unitize.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/univariate.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/univariate.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/univariate.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/univariate.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/update.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/update.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/update.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/update.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/valueat.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/valueat.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/valueat.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/valueat.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/variables.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/variables.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/variables.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/variables.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/variables1.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/variables1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/variables1.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/variables1.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/vector.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/vector.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/vector.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/vector.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/weibull.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/weibull.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/weibull.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/weibull.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/xy.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/xy.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/xy.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/xy.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/xyscatter.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/xyscatter.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/xyscatter.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/xyscatter.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/zepconf.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/zepconf.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/zepconf.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/zepconf.png
diff --git a/solr/solr-ref-guide/src/images/math-expressions/zipf.png b/solr/solr-ref-guide/modules/query-guide/images/math-expressions/zipf.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/math-expressions/zipf.png
rename to solr/solr-ref-guide/modules/query-guide/images/math-expressions/zipf.png
diff --git a/solr/solr-ref-guide/src/images/other-parsers/graph_qparser_example.png b/solr/solr-ref-guide/modules/query-guide/images/other-parsers/graph_qparser_example.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/other-parsers/graph_qparser_example.png
rename to solr/solr-ref-guide/modules/query-guide/images/other-parsers/graph_qparser_example.png
diff --git a/solr/solr-ref-guide/src/images/other-parsers/graph_qparser_example.svg b/solr/solr-ref-guide/modules/query-guide/images/other-parsers/graph_qparser_example.svg
similarity index 100%
rename from solr/solr-ref-guide/src/images/other-parsers/graph_qparser_example.svg
rename to solr/solr-ref-guide/modules/query-guide/images/other-parsers/graph_qparser_example.svg
diff --git a/solr/solr-ref-guide/src/images/parallel-sql-interface/cluster.png b/solr/solr-ref-guide/modules/query-guide/images/parallel-sql-interface/cluster.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/parallel-sql-interface/cluster.png
rename to solr/solr-ref-guide/modules/query-guide/images/parallel-sql-interface/cluster.png
diff --git a/solr/solr-ref-guide/src/images/query-screen/query-top.png b/solr/solr-ref-guide/modules/query-guide/images/query-screen/query-top.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/query-screen/query-top.png
rename to solr/solr-ref-guide/modules/query-guide/images/query-screen/query-top.png
diff --git a/solr/solr-ref-guide/src/images/result-clustering/carrot2-docs-attrs1.png b/solr/solr-ref-guide/modules/query-guide/images/result-clustering/carrot2-docs-attrs1.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/result-clustering/carrot2-docs-attrs1.png
rename to solr/solr-ref-guide/modules/query-guide/images/result-clustering/carrot2-docs-attrs1.png
diff --git a/solr/solr-ref-guide/src/images/result-clustering/carrot2-docs-attrs2.png b/solr/solr-ref-guide/modules/query-guide/images/result-clustering/carrot2-docs-attrs2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/result-clustering/carrot2-docs-attrs2.png
rename to solr/solr-ref-guide/modules/query-guide/images/result-clustering/carrot2-docs-attrs2.png
diff --git a/solr/solr-ref-guide/src/images/result-clustering/carrot2.png b/solr/solr-ref-guide/modules/query-guide/images/result-clustering/carrot2.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/result-clustering/carrot2.png
rename to solr/solr-ref-guide/modules/query-guide/images/result-clustering/carrot2.png
diff --git a/solr/solr-ref-guide/src/images/spatial-search/bbox.png b/solr/solr-ref-guide/modules/query-guide/images/spatial-search/bbox.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/spatial-search/bbox.png
rename to solr/solr-ref-guide/modules/query-guide/images/spatial-search/bbox.png
diff --git a/solr/solr-ref-guide/src/images/spatial-search/circle.png b/solr/solr-ref-guide/modules/query-guide/images/spatial-search/circle.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/spatial-search/circle.png
rename to solr/solr-ref-guide/modules/query-guide/images/spatial-search/circle.png
diff --git a/solr/solr-ref-guide/src/images/stream-screen/StreamScreen.png b/solr/solr-ref-guide/modules/query-guide/images/stream-screen/StreamScreen.png
similarity index 100%
rename from solr/solr-ref-guide/src/images/stream-screen/StreamScreen.png
rename to solr/solr-ref-guide/modules/query-guide/images/stream-screen/StreamScreen.png
diff --git a/solr/solr-ref-guide/src/analytics-expression-sources.adoc b/solr/solr-ref-guide/modules/query-guide/pages/analytics-expression-sources.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/analytics-expression-sources.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/analytics-expression-sources.adoc
diff --git a/solr/solr-ref-guide/src/analytics-mapping-functions.adoc b/solr/solr-ref-guide/modules/query-guide/pages/analytics-mapping-functions.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/analytics-mapping-functions.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/analytics-mapping-functions.adoc
diff --git a/solr/solr-ref-guide/src/analytics-reduction-functions.adoc b/solr/solr-ref-guide/modules/query-guide/pages/analytics-reduction-functions.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/analytics-reduction-functions.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/analytics-reduction-functions.adoc
diff --git a/solr/solr-ref-guide/src/analytics.adoc b/solr/solr-ref-guide/modules/query-guide/pages/analytics.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/analytics.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/analytics.adoc
diff --git a/solr/solr-ref-guide/src/block-join-query-parser.adoc b/solr/solr-ref-guide/modules/query-guide/pages/block-join-query-parser.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/block-join-query-parser.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/block-join-query-parser.adoc
diff --git a/solr/solr-ref-guide/src/collapse-and-expand-results.adoc b/solr/solr-ref-guide/modules/query-guide/pages/collapse-and-expand-results.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/collapse-and-expand-results.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/collapse-and-expand-results.adoc
diff --git a/solr/solr-ref-guide/src/common-query-parameters.adoc b/solr/solr-ref-guide/modules/query-guide/pages/common-query-parameters.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/common-query-parameters.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/common-query-parameters.adoc
diff --git a/solr/solr-ref-guide/src/computational-geometry.adoc b/solr/solr-ref-guide/modules/query-guide/pages/computational-geometry.adoc
similarity index 97%
rename from solr/solr-ref-guide/src/computational-geometry.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/computational-geometry.adoc
index 3be20a0..02006bc 100644
--- a/solr/solr-ref-guide/src/computational-geometry.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/computational-geometry.adoc
@@ -42,7 +42,7 @@ Before visualizing the convex hull its often useful to visualize the 2D points a
 In this example the `random` function draws a sample of records from the NYC311 (complaints database) collection where the complaint description matches "rat sighting" and the zip code is 11238.
 The latitude and longitude fields are then vectorized and plotted as a scatter plot with longitude on x-axis and latitude on the y-axis.
 
-image::images/math-expressions/convex0.png[]
+image::math-expressions/convex0.png[]
 
 Notice from the scatter plot that many of the points appear to lie near the border of the plot.
 
@@ -62,7 +62,7 @@ The `colAt` function can then be used to retrieve the latitude and longitude vec
 so they can visualized by the `zplot` function.
 In the example below the convex hull points are visualized as a scatter plot.
 
-image::images/math-expressions/hullplot.png[]
+image::math-expressions/hullplot.png[]
 
 Notice that the 15 points in the scatter plot describe that latitude and longitude points of the convex hull.
 
@@ -75,7 +75,7 @@ The `projectToBorder` function returns a matrix of lat/lon points for the border
 In the example the matrix of border points is then clustered into 7 clusters using kmeans clustering.
 The `zplot` function is then used to plot the clustered border points.
 
-image::images/math-expressions/convex1.png[]
+image::math-expressions/convex1.png[]
 
 Notice in the visualization its easy to see which spots along the border have the highest density of points.
 In the case of the rat sightings this information is useful in understanding which border points are closest for the rats to enter or exit from.
@@ -88,7 +88,7 @@ The example below extracts the centroids from the clusters using the `getCentroi
 `getCentroids` returns the matrix of lat/lon points which represent the centroids of border clusters.
 The `colAt` function can then be used to extract the lat/lon vectors so they can be plotted on a map using `zplot`.
 
-image::images/math-expressions/convex2.png[]
+image::math-expressions/convex2.png[]
 
 The map above shows the centroids of the border clusters.
 The centroids from the highest density clusters can now be zoomed and investigated geo-spatially to determine what might be the best places to begin an investigation of the border.
diff --git a/solr/solr-ref-guide/src/controlling-results.adoc b/solr/solr-ref-guide/modules/query-guide/pages/controlling-results.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/controlling-results.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/controlling-results.adoc
diff --git a/solr/solr-ref-guide/src/curve-fitting.adoc b/solr/solr-ref-guide/modules/query-guide/pages/curve-fitting.adoc
similarity index 94%
rename from solr/solr-ref-guide/src/curve-fitting.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/curve-fitting.adoc
index d5a79ed..afd90f9 100644
--- a/solr/solr-ref-guide/src/curve-fitting.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/curve-fitting.adoc
@@ -33,7 +33,7 @@ The `polyfit` function can be visualized in a similar manner to linear regressio
 The example below uses the `polyfit` function to fit a non-linear curve to a scatter plot of a random sample.
 The blue points are the scatter plot of the original observations and the red points are the predicted curve.
 
-image::images/math-expressions/polyfit.png[]
+image::math-expressions/polyfit.png[]
 
 In the example above a random sample containing two fields, `filesize_d` and `response_d`, is drawn from the `logs` collection.
 The two fields are vectorized and set to the variables `x` and `y`.
@@ -44,7 +44,7 @@ The `polyfit` function returns a model that is then directly plotted by `zplot`
 The fitted model can also be used by the `predict` function in the same manner as linear regression.
 The example below uses the fitted model to predict a response time for a file size of 42000.
 
-image::images/math-expressions/polyfit-predict.png[]
+image::math-expressions/polyfit-predict.png[]
 
 If an array of predictor values is provided an array of predictions will be returned.
 
@@ -56,7 +56,7 @@ The residuals can be calculated and visualized in the same manner as linear regr
 In the example below the `ebeSubtract` function is used to subtract the fitted model from the observed values, to calculate a vector of residuals.
 The residuals are then plotted in a *residual plot* with the predictions along the x-axis and the model error on the y-axis.
 
-image::images/math-expressions/polyfit-resid.png[]
+image::math-expressions/polyfit-resid.png[]
 
 
 == Gaussian Curve Fitting
@@ -83,11 +83,11 @@ The bin count vector is then passed to `gaussfit` as the y-axis.
 In the example below, the blue line is the bin counts, and the smooth yellow line is the fitted curve.
 We can see that the binned residuals fit fairly well to a normal distribution.
 
-image::images/math-expressions/gaussfit.png[]
+image::math-expressions/gaussfit.png[]
 
 The second plot shows the two curves overlaid with an area chart:
 
-image::images/math-expressions/gaussfit2.png[]
+image::math-expressions/gaussfit2.png[]
 
 
 == Harmonic Curve Fitting
@@ -106,11 +106,11 @@ After the curve has been fit it can be extrapolated to any point in time in the
 
 In the example below the original control points are shown in blue and the fitted curve is shown in yellow.
 
-image::images/math-expressions/harmfit.png[]
+image::math-expressions/harmfit.png[]
 
 The output of `harmfit` is a model that can be used by the `predict` function to interpolate and extrapolate the sine wave.
 In the example below the `natural` function creates an x-axis from 0 to 127
 used to predict results for the model.
 This extrapolates the sine wave out to 128 points, when the original model curve had only 19 control points.
 
-image::images/math-expressions/harmfit2.png[]
+image::math-expressions/harmfit2.png[]
diff --git a/solr/solr-ref-guide/src/dismax-query-parser.adoc b/solr/solr-ref-guide/modules/query-guide/pages/dismax-query-parser.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/dismax-query-parser.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/dismax-query-parser.adoc
diff --git a/solr/solr-ref-guide/src/document-transformers.adoc b/solr/solr-ref-guide/modules/query-guide/pages/document-transformers.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/document-transformers.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/document-transformers.adoc
diff --git a/solr/solr-ref-guide/src/dsp.adoc b/solr/solr-ref-guide/modules/query-guide/pages/dsp.adoc
similarity index 94%
rename from solr/solr-ref-guide/src/dsp.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/dsp.adoc
index 7e014b2..e0662bc 100644
--- a/solr/solr-ref-guide/src/dsp.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/dsp.adoc
@@ -36,7 +36,7 @@ Notice that the original vector has 13 elements but the result of the moving ave
 This is because the `movingAvg` function only begins generating results when it has a full window.
 The `ltrim` function is used to trim the first four elements from the original `y` array to line up with the moving average.
 
-image::images/math-expressions/conv1.png[]
+image::math-expressions/conv1.png[]
 
 
 === Convolutional Smoothing
@@ -47,14 +47,14 @@ In the example below the `conv` function is used to compute the moving average o
 Looking at the result, we see that the convolution produced an array with 17 values instead of the 9 values created by the moving average.
 That is because the `conv` function pads zeros to the front and back of the first vector so that the window size is always full.
 
-image::images/math-expressions/conv2.png[]
+image::math-expressions/conv2.png[]
 
 We achieve the same result as the `movingAvg` function by trimming the first and last 4 values of the convolution result using the `ltrim` and `rtrim` functions.
 
 The example below plots both the trimmed convolution and the moving average on the same plot.
 Notice that they perfectly overlap.
 
-image::images/math-expressions/conv3.png[]
+image::math-expressions/conv3.png[]
 
 This demonstrates how convolution can be used to smooth a signal by sliding a filter across the signal and computing the dot product at each point.
 The smoothing effect is caused by the design of the filter.
@@ -83,7 +83,7 @@ The light blue line is the convolution and the orange line is the moving average
 Notice that the convolution responds quicker to the movements in the underlying array.
 This is because more weight has been placed at the front of the filter.
 
-image::images/math-expressions/conv4.png[]
+image::math-expressions/conv4.png[]
 
 == Cross-Correlation
 
@@ -101,7 +101,7 @@ The `conv` function reverses the second vector so it will be flipped back to its
 Notice in the result the highest value is 217.
 This is the point where the two vectors have the highest correlation.
 
-image::images/math-expressions/crosscorr.png[]
+image::math-expressions/crosscorr.png[]
 
 
 == Find Delay
@@ -112,7 +112,7 @@ Under the covers `finddelay` uses convolutional math to compute the cross-correl
 Below is an example of the `finddelay` function.
 Notice that the `finddelay` function reports a 3 period delay between the first and second signal.
 
-image::images/math-expressions/delay.png[]
+image::math-expressions/delay.png[]
 
 
 == Oscillate (Sine Wave)
@@ -127,7 +127,7 @@ Below is an example of the `oscillate` function called with an amplitude of
 1, and angular frequency of .28 and phase of 1.57.
 
 
-image::images/math-expressions/sinewave.png[]
+image::math-expressions/sinewave.png[]
 
 === Sine Wave Interpolation & Extrapolation
 
@@ -135,7 +135,7 @@ The `oscillate` function returns a function which can be used by the `predict` f
 
 The example below extrapolates the sine wave to an x-axis sequence of 0-256.
 
-image::images/math-expressions/sinewave256.png[]
+image::math-expressions/sinewave256.png[]
 
 
 == Autocorrelation
@@ -150,14 +150,14 @@ The result of this is plotted in the image below.
 Notice that there is a structure to the plot that is clearly not random.
 
 
-image::images/math-expressions/sinewave256.png[]
+image::math-expressions/sinewave256.png[]
 
 
 In the next example the `sample` function is used to draw 256 samples from a `uniformDistribution` to create a vector of random data.
 The result of this is plotted in the image below.
 Notice that there is no clear structure to the data and the data appears to be random.
 
-image::images/math-expressions/noise.png[]
+image::math-expressions/noise.png[]
 
 In the next example the random noise is added to the sine wave using the `ebeAdd` function.
 The result of this is plotted in the image below.
@@ -165,7 +165,7 @@ Notice that the sine wave has been hidden somewhat within the noise.
 Its difficult to say for sure if there is structure.
 As plots becomes more dense it can become harder to see a pattern hidden within noise.
 
-image::images/math-expressions/hidden-signal.png[]
+image::math-expressions/hidden-signal.png[]
 
 In the next examples autocorrelation is performed with each of the vectors shown above to see what the autocorrelation plots look like.
 
@@ -179,7 +179,7 @@ Following the peak the correlation moves up and down in decreasing intensity as
 
 This is the autocorrelation plot of a pure signal.
 
-image::images/math-expressions/signal-autocorrelation.png[]
+image::math-expressions/signal-autocorrelation.png[]
 
 In the example below autocorrelation is performed with the vector of pure noise.
 Notice that the autocorrelation plot has a very different plot then the sine wave.
@@ -189,13 +189,13 @@ This is followed by another long period of low intensity correlation.
 
 This is the autocorrelation plot of pure noise.
 
-image::images/math-expressions/noise-autocorrelation.png[]
+image::math-expressions/noise-autocorrelation.png[]
 
 In the example below autocorrelation is performed on the vector with the sine wave hidden within the noise.
 Notice that this plot shows very clear signs of structure which is similar to autocorrelation plot of the pure signal.
 The correlation is less intense due to noise but the shape of the correlation plot suggests strongly that there is an underlying signal hidden within the noise.
 
-image::images/math-expressions/hidden-signal-autocorrelation.png[]
+image::math-expressions/hidden-signal-autocorrelation.png[]
 
 == Discrete Fourier Transform
 
@@ -243,7 +243,7 @@ This is the power associated with the specific frequency of the sine wave.
 The vast majority of frequencies in the plot have close to 0 power associated with them.
 This `fft` shows a clear signal with very low levels of noise.
 
-image::images/math-expressions/signal-fft.png[]
+image::math-expressions/signal-fft.png[]
 
 In the second example the `fft` function is called on a vector of random data similar to one used in the autocorrelation example.
 The plot of the real values of the `fft` response is shown below.
@@ -252,7 +252,7 @@ Notice that in is this response there is no clear peak.
 Instead all frequencies have accumulated a random level of power.
 This `fft` shows no clear sign of signal and appears to be noise.
 
-image::images/math-expressions/noise-fft.png[]
+image::math-expressions/noise-fft.png[]
 
 In the third example the `fft` function is called on the same signal hidden within noise that was used for the autocorrelation example.
 The plot of the real values of the `fft` response is shown below.
@@ -261,4 +261,4 @@ Notice that there are two clear mirrored peaks, at the same locations as the `ff
 But there is also now considerable noise on the frequencies.
 The `fft` has found the signal and but also shows that there is considerable noise along with the signal.
 
-image::images/math-expressions/hidden-signal-fft.png[]
+image::math-expressions/hidden-signal-fft.png[]
diff --git a/solr/solr-ref-guide/src/edismax-query-parser.adoc b/solr/solr-ref-guide/modules/query-guide/pages/edismax-query-parser.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/edismax-query-parser.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/edismax-query-parser.adoc
diff --git a/solr/solr-ref-guide/src/enhancing-queries.adoc b/solr/solr-ref-guide/modules/query-guide/pages/enhancing-queries.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/enhancing-queries.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/enhancing-queries.adoc
diff --git a/solr/solr-ref-guide/src/exporting-result-sets.adoc b/solr/solr-ref-guide/modules/query-guide/pages/exporting-result-sets.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/exporting-result-sets.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/exporting-result-sets.adoc
diff --git a/solr/solr-ref-guide/src/faceting.adoc b/solr/solr-ref-guide/modules/query-guide/pages/faceting.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/faceting.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/faceting.adoc
diff --git a/solr/solr-ref-guide/src/function-queries.adoc b/solr/solr-ref-guide/modules/query-guide/pages/function-queries.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/function-queries.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/function-queries.adoc
diff --git a/solr/solr-ref-guide/src/graph-traversal.adoc b/solr/solr-ref-guide/modules/query-guide/pages/graph-traversal.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/graph-traversal.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/graph-traversal.adoc
diff --git a/solr/solr-ref-guide/src/graph.adoc b/solr/solr-ref-guide/modules/query-guide/pages/graph.adoc
similarity index 99%
rename from solr/solr-ref-guide/src/graph.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/graph.adoc
index f91506f..09845c1 100644
--- a/solr/solr-ref-guide/src/graph.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/graph.adoc
@@ -68,7 +68,7 @@ We won't include butter itself in the graph as it doesn't help with finding a co
 
 Below is an example of this bipartite subgraph represented as a matrix:
 
-image::images/math-expressions/graph1.png[]
+image::math-expressions/graph1.png[]
 
 In this example there are three shopping baskets shown by the rows: basket1, basket2, basket3.
 
@@ -180,7 +180,7 @@ For simplicity this document will sometimes refer to inbound degree simply as de
 
 Back to the shopping basket example:
 
-image::images/math-expressions/graph1.png[]
+image::math-expressions/graph1.png[]
 
 We can calculate the degree of the products in the graph by summing the columns:
 [source,text]
@@ -263,7 +263,7 @@ Because of this the `count(+++*+++)` aggregation always calculates the inbound d
 There is a direct relationship between the *inbound degree* with bipartite graph recommenders and the *dot product*.
 This relationship can be clearly seen in our working example once we include a column for butter:
 
-image::images/math-expressions/graph2.png[]
+image::math-expressions/graph2.png[]
 
 If we compute the dot product between the butter column and the other product columns you will find that the dot product equals the inbound degree in each case.
 This tells us that a nearest neighbor search, using a maximum inner product similarity, would select the column with the highest inbound degree.
diff --git a/solr/solr-ref-guide/src/highlighting.adoc b/solr/solr-ref-guide/modules/query-guide/pages/highlighting.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/highlighting.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/highlighting.adoc
diff --git a/solr/solr-ref-guide/src/jdbc-dbvisualizer.adoc b/solr/solr-ref-guide/modules/query-guide/pages/jdbc-dbvisualizer.adoc
similarity index 65%
rename from solr/solr-ref-guide/src/jdbc-dbvisualizer.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/jdbc-dbvisualizer.adoc
index fba53e8..7830596 100644
--- a/solr/solr-ref-guide/src/jdbc-dbvisualizer.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/jdbc-dbvisualizer.adoc
@@ -33,12 +33,12 @@ Once the driver has been created, you can create a connection to Solr with the c
 
 From the Tools menu, choose Driver Manager to add a driver.
 
-image::images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_1.png[image,width=673,height=400]
+image::jdbc-dbvisualizer/dbvisualizer_solrjdbc_1.png[image,width=673,height=400]
 
 
 === Create a New Driver
 
-image::images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_2.png[image,width=532,height=400]
+image::jdbc-dbvisualizer/dbvisualizer_solrjdbc_2.png[image,width=532,height=400]
 
 
 === Name the Driver in Driver Manager
@@ -47,7 +47,7 @@ Provide a name for the driver, and provide the URL format: `jdbc:solr://<zk_conn
 Do not fill in values for the variables "```zk_connection_string```" and "```collection```", those will be provided later when the connection to Solr is configured.
 The Driver Class will also be automatically added when the driver .jars are added.
 
-image::images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_3.png[image,width=532,height=400]
+image::jdbc-dbvisualizer/dbvisualizer_solrjdbc_3.png[image,width=532,height=400]
 
 
 === Add Driver Files to Classpath
@@ -57,19 +57,19 @@ The driver files to be added are:
 * all .jars in `$SOLR_HOME/dist/solrj-lib`
 * the SolrJ .jar found in `$SOLR_HOME/dist/solr-solrj-<version>.jar`
 
-image::images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_4.png[image,width=535,height=400]
+image::jdbc-dbvisualizer/dbvisualizer_solrjdbc_4.png[image,width=535,height=400]
 
 
-image::images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_5.png[image,width=664,height=400]
+image::jdbc-dbvisualizer/dbvisualizer_solrjdbc_5.png[image,width=664,height=400]
 
 
-image::images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_6.png[image,width=653,height=400]
+image::jdbc-dbvisualizer/dbvisualizer_solrjdbc_6.png[image,width=653,height=400]
 
 
-image::images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_7.png[image,width=655,height=400]
+image::jdbc-dbvisualizer/dbvisualizer_solrjdbc_7.png[image,width=655,height=400]
 
 
-image::images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_9.png[image,width=651,height=400]
+image::jdbc-dbvisualizer/dbvisualizer_solrjdbc_9.png[image,width=651,height=400]
 
 
 === Review and Close Driver Manager
@@ -82,20 +82,20 @@ Next, create a connection to Solr using the driver just created.
 
 === Use the Connection Wizard
 
-image::images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_11.png[image,width=763,height=400]
+image::jdbc-dbvisualizer/dbvisualizer_solrjdbc_11.png[image,width=763,height=400]
 
 
-image::images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_12.png[image,width=807,height=400]
+image::jdbc-dbvisualizer/dbvisualizer_solrjdbc_12.png[image,width=807,height=400]
 
 
 === Name the Connection
 
-image::images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_13.png[image,width=402,height=400]
+image::jdbc-dbvisualizer/dbvisualizer_solrjdbc_13.png[image,width=402,height=400]
 
 
 === Select the Solr driver
 
-image::images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_14.png[image,width=399,height=400]
+image::jdbc-dbvisualizer/dbvisualizer_solrjdbc_14.png[image,width=399,height=400]
 
 
 === Specify the Solr URL
@@ -103,24 +103,24 @@ image::images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_14.png[image,width=399,hei
 Provide the Solr URL, using the ZooKeeper host and port and the collection.
 For example, `jdbc:solr://localhost:9983?collection=test`
 
-image::images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_15.png[image,width=401,height=400]
+image::jdbc-dbvisualizer/dbvisualizer_solrjdbc_15.png[image,width=401,height=400]
 
 
 == Open and Connect to Solr
 
 Once the connection has been created, double-click on it to open the connection details screen and connect to Solr.
 
-image::images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_16.png[image,width=625,height=400]
+image::jdbc-dbvisualizer/dbvisualizer_solrjdbc_16.png[image,width=625,height=400]
 
 
-image::images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_17.png[image,width=592,height=400]
+image::jdbc-dbvisualizer/dbvisualizer_solrjdbc_17.png[image,width=592,height=400]
 
 
 == Open SQL Commander to Enter Queries
 
 When the connection is established, you can use the SQL Commander to issue queries and view data.
 
-image::images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_19.png[image,width=577,height=400]
+image::jdbc-dbvisualizer/dbvisualizer_solrjdbc_19.png[image,width=577,height=400]
 
 
-image::images/jdbc-dbvisualizer/dbvisualizer_solrjdbc_20.png[image,width=556,height=400]
+image::jdbc-dbvisualizer/dbvisualizer_solrjdbc_20.png[image,width=556,height=400]
diff --git a/solr/solr-ref-guide/src/jdbc-python-jython.adoc b/solr/solr-ref-guide/modules/query-guide/pages/jdbc-python-jython.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/jdbc-python-jython.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/jdbc-python-jython.adoc
diff --git a/solr/solr-ref-guide/src/jdbc-r.adoc b/solr/solr-ref-guide/modules/query-guide/pages/jdbc-r.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/jdbc-r.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/jdbc-r.adoc
diff --git a/solr/solr-ref-guide/src/jdbc-squirrel.adoc b/solr/solr-ref-guide/modules/query-guide/pages/jdbc-squirrel.adoc
similarity index 67%
rename from solr/solr-ref-guide/src/jdbc-squirrel.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/jdbc-squirrel.adoc
index 48017cf..77f557b 100644
--- a/solr/solr-ref-guide/src/jdbc-squirrel.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/jdbc-squirrel.adoc
@@ -31,12 +31,12 @@ Once the driver has been created, you can create a connection to Solr with the c
 
 === Open Drivers
 
-image::images/jdbc-squirrel/squirrelsql_solrjdbc_1.png[image,width=900,height=400]
+image::jdbc-squirrel/squirrelsql_solrjdbc_1.png[image,width=900,height=400]
 
 
 === Add Driver
 
-image::images/jdbc-squirrel/squirrelsql_solrjdbc_2.png[image,width=892,height=400]
+image::jdbc-squirrel/squirrelsql_solrjdbc_2.png[image,width=892,height=400]
 
 
 === Name the Driver
@@ -44,28 +44,28 @@ image::images/jdbc-squirrel/squirrelsql_solrjdbc_2.png[image,width=892,height=40
 Provide a name for the driver, and provide the URL format: `jdbc:solr://<zk_connection_string>/?collection=<collection>`.
 Do not fill in values for the variables "```zk_connection_string```" and "```collection```", those will be defined later when the connection to Solr is configured.
 
-image::images/jdbc-squirrel/squirrelsql_solrjdbc_3.png[image,width=467,height=400]
+image::jdbc-squirrel/squirrelsql_solrjdbc_3.png[image,width=467,height=400]
 
 
 === Add Solr JDBC jars to Classpath
 
-image::images/jdbc-squirrel/squirrelsql_solrjdbc_4.png[image,width=467,height=400]
+image::jdbc-squirrel/squirrelsql_solrjdbc_4.png[image,width=467,height=400]
 
 
-image::images/jdbc-squirrel/squirrelsql_solrjdbc_9.png[image,width=469,height=400]
+image::jdbc-squirrel/squirrelsql_solrjdbc_9.png[image,width=469,height=400]
 
 
-image::images/jdbc-squirrel/squirrelsql_solrjdbc_5.png[image,width=469,height=400]
+image::jdbc-squirrel/squirrelsql_solrjdbc_5.png[image,width=469,height=400]
 
 
-image::images/jdbc-squirrel/squirrelsql_solrjdbc_7.png[image,width=467,height=400]
+image::jdbc-squirrel/squirrelsql_solrjdbc_7.png[image,width=467,height=400]
 
 
 === Add the Solr JDBC driver class name
 
 After adding the .jars, you will need to additionally define the Class Name `org.apache.solr.client.solrj.io.sql.DriverImpl`.
 
-image::images/jdbc-squirrel/squirrelsql_solrjdbc_11.png[image,width=470,height=400]
+image::jdbc-squirrel/squirrelsql_solrjdbc_11.png[image,width=470,height=400]
 
 
 == Create an Alias
@@ -74,26 +74,26 @@ To define a JDBC connection, you must define an alias.
 
 === Open Aliases
 
-image::images/jdbc-squirrel/squirrelsql_solrjdbc_10.png[image,width=840,height=400]
+image::jdbc-squirrel/squirrelsql_solrjdbc_10.png[image,width=840,height=400]
 
 
 === Add an Alias
 
-image::images/jdbc-squirrel/squirrelsql_solrjdbc_12.png[image,width=959,height=400]
+image::jdbc-squirrel/squirrelsql_solrjdbc_12.png[image,width=959,height=400]
 
 
 === Configure the Alias
 
-image::images/jdbc-squirrel/squirrelsql_solrjdbc_14.png[image,width=470,height=400]
+image::jdbc-squirrel/squirrelsql_solrjdbc_14.png[image,width=470,height=400]
 
 
 === Connect to the Alias
 
-image::images/jdbc-squirrel/squirrelsql_solrjdbc_13.png[image,width=522,height=400]
+image::jdbc-squirrel/squirrelsql_solrjdbc_13.png[image,width=522,height=400]
 
 
 == Querying
 
 Once you've successfully connected to Solr, you can use the SQL interface to enter queries and work with data.
 
-image::images/jdbc-squirrel/squirrelsql_solrjdbc_15.png[image,width=655,height=400]
+image::jdbc-squirrel/squirrelsql_solrjdbc_15.png[image,width=655,height=400]
diff --git a/solr/solr-ref-guide/src/jdbc-zeppelin.adoc b/solr/solr-ref-guide/modules/query-guide/pages/jdbc-zeppelin.adoc
similarity index 88%
rename from solr/solr-ref-guide/src/jdbc-zeppelin.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/jdbc-zeppelin.adoc
index 672a63e..d7a7d1d 100644
--- a/solr/solr-ref-guide/src/jdbc-zeppelin.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/jdbc-zeppelin.adoc
@@ -34,13 +34,13 @@ The http://zeppelin.apache.org/docs/latest/interpreter/jdbc.html[Zeppelin JDBC i
 == Create the Apache Solr JDBC Interpreter
 
 .Click "Interpreter" in the top navigation
-image::images/jdbc-zeppelin/zeppelin_solrjdbc_1.png[image,height=400]
+image::jdbc-zeppelin/zeppelin_solrjdbc_1.png[image,height=400]
 
 .Click "Create"
-image::images/jdbc-zeppelin/zeppelin_solrjdbc_2.png[image,height=400]
+image::jdbc-zeppelin/zeppelin_solrjdbc_2.png[image,height=400]
 
 .Enter information about your Solr installation
-image::images/jdbc-zeppelin/zeppelin_solrjdbc_3.png[image,height=400]
+image::jdbc-zeppelin/zeppelin_solrjdbc_3.png[image,height=400]
 
 [NOTE]
 ====
@@ -51,10 +51,10 @@ The default driver can either be replaced by the Solr driver as outlined above o
 == Create a Notebook
 
 .Click Notebook -> Create new note
-image::images/jdbc-zeppelin/zeppelin_solrjdbc_4.png[image,width=517,height=400]
+image::jdbc-zeppelin/zeppelin_solrjdbc_4.png[image,width=517,height=400]
 
 .Provide a name and click "Create Note"
-image::images/jdbc-zeppelin/zeppelin_solrjdbc_5.png[image,width=839,height=400]
+image::jdbc-zeppelin/zeppelin_solrjdbc_5.png[image,width=839,height=400]
 
 == JDBC Interpreter Copy Sheet
 
@@ -79,7 +79,7 @@ Instructions on how to bind the JDBC interpreter to a notebook are available htt
 ====
 
 .Results of Solr query
-image::images/jdbc-zeppelin/zeppelin_solrjdbc_6.png[image,width=481,height=400]
+image::jdbc-zeppelin/zeppelin_solrjdbc_6.png[image,width=481,height=400]
 
 The below code block assumes that the Apache Solr driver is setup as the default JDBC interpreter driver.
 If that is not the case, instructions for using a different prefix is available https://zeppelin.apache.org/docs/latest/interpreter/jdbc.html#how-to-use[here].
diff --git a/solr/solr-ref-guide/src/join-query-parser.adoc b/solr/solr-ref-guide/modules/query-guide/pages/join-query-parser.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/join-query-parser.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/join-query-parser.adoc
diff --git a/solr/solr-ref-guide/src/json-facet-api.adoc b/solr/solr-ref-guide/modules/query-guide/pages/json-facet-api.adoc
similarity index 96%
rename from solr/solr-ref-guide/src/json-facet-api.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/json-facet-api.adoc
index bf5b63a..2adbef2 100644
--- a/solr/solr-ref-guide/src/json-facet-api.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/json-facet-api.adoc
@@ -1,7 +1,5 @@
 = JSON Facet API
 :page-children: json-faceting-domain-changes
-:solr-root-path: ../../
-:example-source-dir: {solr-root-path}solrj/src/test/org/apache/solr/client/ref_guide_examples/
 // 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
@@ -69,7 +67,7 @@ curl http://localhost:8983/solr/techproducts/query -d '
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-json-simple-terms-facet]
+include::example$JsonRequestApiTest.java[tag=solrj-json-simple-terms-facet]
 ----
 ====
 --
@@ -127,7 +125,7 @@ json.facet={
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-json-metrics-facet-1]
+include::example$JsonRequestApiTest.java[tag=solrj-json-metrics-facet-1]
 ----
 ====
 --
@@ -184,7 +182,7 @@ curl http://localhost:8983/solr/techproducts/query -d '
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-json-terms-facet-2]
+include::example$JsonRequestApiTest.java[tag=solrj-json-terms-facet-2]
 ----
 ====
 --
@@ -260,7 +258,7 @@ curl http://localhost:8983/solr/techproducts/query -d '
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-json-query-facet-simple]
+include::example$JsonRequestApiTest.java[tag=solrj-json-query-facet-simple]
 ----
 ====
 --
@@ -296,7 +294,7 @@ curl http://localhost:8983/solr/techproducts/query -d '
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-json-query-facet-expanded]
+include::example$JsonRequestApiTest.java[tag=solrj-json-query-facet-expanded]
 ----
 ====
 --
@@ -344,7 +342,7 @@ curl http://localhost:8983/solr/techproducts/query -d '
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-json-range-facet-simple]
+include::example$JsonRequestApiTest.java[tag=solrj-json-range-facet-simple]
 ----
 ====
 --
@@ -542,7 +540,7 @@ curl http://localhost:8983/solr/spatialdata/query -d '
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiHeatmapFacetingTest.java[tag=solrj-json-heatmap-facet-1]
+include::example$JsonRequestApiHeatmapFacetingTest.java[tag=solrj-json-heatmap-facet-1]
 ----
 ====
 --
@@ -622,7 +620,7 @@ curl http://localhost:8983/solr/techproducts/query -d '
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-json-metrics-facet-simple]
+include::example$JsonRequestApiTest.java[tag=solrj-json-metrics-facet-simple]
 ----
 ====
 --
@@ -662,7 +660,7 @@ curl http://localhost:8983/solr/techproducts/query -d '
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-json-metrics-facet-expanded]
+include::example$JsonRequestApiTest.java[tag=solrj-json-metrics-facet-expanded]
 ----
 ====
 --
@@ -707,7 +705,7 @@ curl http://localhost:8983/solr/techproducts/query -d '
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-json-simple-terms-facet]
+include::example$JsonRequestApiTest.java[tag=solrj-json-simple-terms-facet]
 ----
 ====
 --
@@ -750,7 +748,7 @@ curl http://localhost:8983/solr/techproducts/query -d '
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-json-nested-cat-facet]
+include::example$JsonRequestApiTest.java[tag=solrj-json-nested-cat-facet]
 ----
 ====
 --
@@ -816,7 +814,7 @@ curl http://localhost:8983/solr/techproducts/query -d '
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-json-nested-cat-facet-sorted]
+include::example$JsonRequestApiTest.java[tag=solrj-json-nested-cat-facet-sorted]
 ----
 ====
 --
diff --git a/solr/solr-ref-guide/src/json-faceting-domain-changes.adoc b/solr/solr-ref-guide/modules/query-guide/pages/json-faceting-domain-changes.adoc
similarity index 96%
rename from solr/solr-ref-guide/src/json-faceting-domain-changes.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/json-faceting-domain-changes.adoc
index d50bda8..9226373 100644
--- a/solr/solr-ref-guide/src/json-faceting-domain-changes.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/json-faceting-domain-changes.adoc
@@ -1,6 +1,4 @@
 = JSON Faceting Domain Changes
-:solr-root-path: ../../
-:example-source-dir: {solr-root-path}solrj/src/test/org/apache/solr/client/ref_guide_examples/
 // 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
@@ -67,7 +65,7 @@ curl http://localhost:8983/solr/techproducts/query -d '
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-json-facet-filtered-domain]
+include::example$JsonRequestApiTest.java[tag=solrj-json-facet-filtered-domain]
 ----
 ====
 --
@@ -158,7 +156,7 @@ curl http://localhost:8983/solr/techproducts/query -d '
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-json-facet-excludetags-domain]
+include::example$JsonRequestApiTest.java[tag=solrj-json-facet-excludetags-domain]
 ----
 ====
 --
@@ -205,7 +203,7 @@ curl http://localhost:8983/solr/techproducts/query -d '
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-json-facet-query-domain]
+include::example$JsonRequestApiTest.java[tag=solrj-json-facet-query-domain]
 ----
 ====
 --
diff --git a/solr/solr-ref-guide/src/json-query-dsl.adoc b/solr/solr-ref-guide/modules/query-guide/pages/json-query-dsl.adoc
similarity index 93%
rename from solr/solr-ref-guide/src/json-query-dsl.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/json-query-dsl.adoc
index 2876105..357e446 100644
--- a/solr/solr-ref-guide/src/json-query-dsl.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/json-query-dsl.adoc
@@ -1,6 +1,4 @@
 = JSON Query DSL
-:solr-root-path: ../../
-:example-source-dir: {solr-root-path}solrj/src/test/org/apache/solr/client/ref_guide_examples/
 // 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
@@ -57,7 +55,7 @@ curl -X GET "http://localhost:8983/solr/techproducts/query?q=name:iPod"
 [.tab-label]*SolrJ*
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-ipod-query-basic]
+include::example$JsonRequestApiTest.java[tag=solrj-ipod-query-basic]
 ----
 ====
 --
@@ -82,7 +80,7 @@ curl -X POST http://localhost:8983/solr/techproducts/query -d '
 [.tab-label]*SolrJ*
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-ipod-query-dsl-1]
+include::example$JsonRequestApiTest.java[tag=solrj-ipod-query-dsl-1]
 ----
 ====
 --
@@ -107,7 +105,7 @@ curl -X POST http://localhost:8983/solr/techproducts/query -d '
 [.tab-label]*SolrJ*
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-ipod-query-dsl-2]
+include::example$JsonRequestApiTest.java[tag=solrj-ipod-query-dsl-2]
 ----
 ====
 --
@@ -137,7 +135,7 @@ curl -X POST http://localhost:8983/solr/techproducts/query -d '
 [.tab-label]*SolrJ*
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-ipod-query-dsl-3]
+include::example$JsonRequestApiTest.java[tag=solrj-ipod-query-dsl-3]
 ----
 ====
 --
@@ -167,7 +165,7 @@ curl -X GET "http://localhost:8983/solr/techproducts/query?q={!boost b=log(popul
 [.tab-label]*SolrJ*
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-ipod-query-boosted-basic]
+include::example$JsonRequestApiTest.java[tag=solrj-ipod-query-boosted-basic]
 ----
 ====
 --
@@ -198,7 +196,7 @@ curl -X POST http://localhost:8983/solr/techproducts/query -d '
 [.tab-label]*SolrJ*
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-ipod-query-boosted-dsl-1]
+include::example$JsonRequestApiTest.java[tag=solrj-ipod-query-boosted-dsl-1]
 ----
 ====
 --
@@ -233,7 +231,7 @@ curl -X POST http://localhost:8983/solr/techproducts/query -d '
 [.tab-label]*SolrJ*
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-ipod-query-boosted-dsl-2]
+include::example$JsonRequestApiTest.java[tag=solrj-ipod-query-boosted-dsl-2]
 ----
 ====
 --
@@ -272,7 +270,7 @@ curl -X POST http://localhost:8983/solr/techproducts/query -d '
 [.tab-label]*SolrJ*
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-ipod-query-bool]
+include::example$JsonRequestApiTest.java[tag=solrj-ipod-query-bool]
 ----
 ====
 --
@@ -305,7 +303,7 @@ curl -X POST http://localhost:8983/solr/techproducts/query -d '
 [.tab-label]*SolrJ*
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-ipod-query-bool-condensed]
+include::example$JsonRequestApiTest.java[tag=solrj-ipod-query-bool-condensed]
 ----
 ====
 --
@@ -365,7 +363,7 @@ curl -X POST http://localhost:8983/solr/techproducts/query -d '
 [.tab-label]*SolrJ*
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-ipod-query-bool-filter]
+include::example$JsonRequestApiTest.java[tag=solrj-ipod-query-bool-filter]
 ----
 ====
 --
@@ -440,7 +438,7 @@ curl -X POST http://localhost:8983/solr/techproducts/select -d '
 [.tab-label]*SolrJ*
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-tagged-query]
+include::example$JsonRequestApiTest.java[tag=solrj-tagged-query]
 ----
 ====
 --
diff --git a/solr/solr-ref-guide/src/json-request-api.adoc b/solr/solr-ref-guide/modules/query-guide/pages/json-request-api.adoc
similarity index 93%
rename from solr/solr-ref-guide/src/json-request-api.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/json-request-api.adoc
index 811bba9..dd2723e 100644
--- a/solr/solr-ref-guide/src/json-request-api.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/json-request-api.adoc
@@ -44,7 +44,7 @@ curl http://localhost:8983/solr/techproducts/query -d '
 [.tab-label]*SolrJ*
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-json-query-simple]
+include::example$JsonRequestApiTest.java[tag=solrj-json-query-simple]
 ----
 ====
 --
@@ -84,7 +84,7 @@ curl 'http://localhost:8983/solr/techproducts/query?json.limit=5&json.filter="ca
 [.tab-label]*SolrJ*
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-json-query-param-overrides]
+include::example$JsonRequestApiTest.java[tag=solrj-json-query-param-overrides]
 ----
 ====
 --
@@ -111,7 +111,7 @@ curl http://localhost:8983/solr/techproducts/query -d '
 [.tab-label]*SolrJ*
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-json-query-param-overrides-equivalent]
+include::example$JsonRequestApiTest.java[tag=solrj-json-query-param-overrides-equivalent]
 ----
 ====
 --
@@ -135,7 +135,7 @@ curl http://localhost:8983/solr/techproducts/query -d 'q=*:*&rows=1&
 [.tab-label]*SolrJ*
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-json-facet-all-query-params]
+include::example$JsonRequestApiTest.java[tag=solrj-json-facet-all-query-params]
 ----
 ====
 --
@@ -169,7 +169,7 @@ curl http://localhost:8983/solr/techproducts/query -d '
 [.tab-label]*SolrJ*
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-json-facet-all-query-params-equivalent]
+include::example$JsonRequestApiTest.java[tag=solrj-json-facet-all-query-params-equivalent]
 ----
 ====
 --
@@ -237,7 +237,7 @@ curl "http://localhost:8983/solr/techproducts/query?fl=name,price"-d '
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-json-query-params-block]
+include::example$JsonRequestApiTest.java[tag=solrj-json-query-params-block]
 ----
 ====
 --
@@ -276,7 +276,7 @@ curl "http://localhost:8983/solr/techproducts/query?FIELD=text&TERM=memory" -d '
 
 [source,java,indent=0]
 ----
-include::{example-source-dir}JsonRequestApiTest.java[tag=solrj-json-query-macro-expansion]
+include::example$JsonRequestApiTest.java[tag=solrj-json-query-macro-expansion]
 ----
 ====
 --
diff --git a/solr/solr-ref-guide/src/learning-to-rank.adoc b/solr/solr-ref-guide/modules/query-guide/pages/learning-to-rank.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/learning-to-rank.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/learning-to-rank.adoc
diff --git a/solr/solr-ref-guide/src/loading.adoc b/solr/solr-ref-guide/modules/query-guide/pages/loading.adoc
similarity index 95%
rename from solr/solr-ref-guide/src/loading.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/loading.adoc
index 6f3454a..571bff9 100644
--- a/solr/solr-ref-guide/src/loading.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/loading.adoc
@@ -147,13 +147,13 @@ Once that data has been parsed into tuples with `parseCSV` or `parseTSV` it can
 
 The example below shows the output of the `parseCSV` function visualized as a table.
 
-image::images/math-expressions/csvtable.png[]
+image::math-expressions/csvtable.png[]
 
 Columns from the table can then be visualized using one of Apache Zeppelin's
 visualizations.
 The example below shows a scatter plot of the `petal_length` and `petal_width` grouped by `species`.
 
-image::images/math-expressions/csv.png[]
+image::math-expressions/csv.png[]
 
 == Selecting Fields and Field Types
 
@@ -165,7 +165,7 @@ This approach allows for fine grain control over schema field types without havi
 Below is an example of selecting fields and mapping them
 to specific field types.
 
-image::images/math-expressions/csvselect.png[]
+image::math-expressions/csvselect.png[]
 
 == Loading Data
 
@@ -176,7 +176,7 @@ The `update` function adds documents to Solr in batches and returns a tuple for
 In the example below the `update` expression is run using Zeppelin-Solr because the data set is small.
 For larger loads it's best to run the load from a curl command where the output of the `update` function can be spooled to disk.
 
-image::images/math-expressions/update.png[]
+image::math-expressions/update.png[]
 
 == Transforming Data
 
@@ -199,11 +199,11 @@ If the `uuid` function is used the data cannot be reloaded without first deletin
 
 Below is an example using the `concat` function to create a new id.
 
-image::images/math-expressions/selectconcat.png[]
+image::math-expressions/selectconcat.png[]
 
 Below is an example using the `uuid` function to create a new id.
 
-image::images/math-expressions/selectuuid.png[]
+image::math-expressions/selectuuid.png[]
 
 === Record Numbers
 
@@ -213,7 +213,7 @@ the <<Filtering Results>> section below.
 
 The example below shows the syntax of the `recNum` function:
 
-image::images/math-expressions/recNum.png[]
+image::math-expressions/recNum.png[]
 
 
 === Parsing Dates
@@ -297,7 +297,7 @@ The `upper`, `lower`, `split`, `valueAt`, `trim`, and `concat` functions can be
 The example below shows the `upper` function used to upper case the *species*
 field.
 
-image::images/math-expressions/selectupper.png[]
+image::math-expressions/selectupper.png[]
 
 The example below shows the `split` function which splits a field on
 a delimiter.
@@ -354,7 +354,7 @@ When this expression is sent to the `/stream` handler it responds with:
 
 The `valueAt` function can be used to select a specific index from a split array.
 
-image::images/math-expressions/valueat.png[]
+image::math-expressions/valueat.png[]
 
 === Filtering Results
 
@@ -373,21 +373,21 @@ Below are some strategies for using the `having` function to filter records.
 The `eq` (equals) function can be used with the `having` expression to filter the result set
 to a single record number:
 
-image::images/math-expressions/havingId.png[]
+image::math-expressions/havingId.png[]
 
 ==== Skipping
 
 The `gt` (greater than) function can be used on the `recNum` field to filter the result set to
 records with a recNum greater then a specific value:
 
-image::images/math-expressions/skipping.png[]
+image::math-expressions/skipping.png[]
 
 ==== Paging
 
 The `and` function with nested `lt` and `gt` functions can be used to select records within a specific
 record number range:
 
-image::images/math-expressions/paging.png[]
+image::math-expressions/paging.png[]
 
 ==== Striding
 
@@ -395,14 +395,14 @@ The `eq` and nested `mod` function can be used to stride through the data at spe
 record number interval
 This allows for a sample to be taken at different intervals in the data in a systematic way.
 
-image::images/math-expressions/striding.png[]
+image::math-expressions/striding.png[]
 
 ==== Regex Matching
 
 The `matches` function can be used to test if a field in the record matches a specific regular expression.
 This provides a powerful *grep* like capability over the record set.
 
-image::images/math-expressions/matches.png[]
+image::math-expressions/matches.png[]
 
 === Handling Nulls
 
@@ -425,12 +425,12 @@ values.
 In the example below the `having` function returns zero documents because the `notNull` function is applied to
  *field_a* in each tuple.
 
-image::images/math-expressions/havingNotNull.png[]
+image::math-expressions/havingNotNull.png[]
 
 In the example below the `having` function returns all documents because the `isNull` function is applied to
 *field_a* in each tuple.
 
-image::images/math-expressions/havingIsNull.png[]
+image::math-expressions/havingIsNull.png[]
 
 ==== Replacing Nulls
 
@@ -441,7 +441,7 @@ In the example below the `if` function applies the `isNull` boolean expression t
 In the first example it replaces null *petal_width* values with 0, and returns the *petal_width* if present.
 In the second example it replaces null *field1* values with the string literal "NA" and returns *field1* if present.
 
-image::images/math-expressions/ifIsNull.png[]
+image::math-expressions/ifIsNull.png[]
 
 === Text Analysis
 
@@ -525,4 +525,4 @@ This allows each term to be indexed in a separate document so the relationships
 graph expressions or aggregations.
 
 
-image::images/math-expressions/cartesian.png[]
+image::math-expressions/cartesian.png[]
diff --git a/solr/solr-ref-guide/src/local-params.adoc b/solr/solr-ref-guide/modules/query-guide/pages/local-params.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/local-params.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/local-params.adoc
diff --git a/solr/solr-ref-guide/src/logs.adoc b/solr/solr-ref-guide/modules/query-guide/pages/logs.adoc
similarity index 92%
rename from solr/solr-ref-guide/src/logs.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/logs.adoc
index 2e9c7ca..c58b760 100644
--- a/solr/solr-ref-guide/src/logs.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/logs.adoc
@@ -60,7 +60,7 @@ The first step in exploration is to take a random sample from the `logs` collect
 
 In the example below the `random` function is run with one parameter which is the name of the collection to sample.
 
-image::images/math-expressions/logs-sample.png[]
+image::math-expressions/logs-sample.png[]
 
 The sample contains 500 random records with their full field list.
 By looking at this sample we can quickly learn about the *fields* available in the `logs` collection.
@@ -72,7 +72,7 @@ Its often useful to understand what time period the logs cover and how many log
 
 The `stats` function can be run to display this information.
 
-image::images/math-expressions/logs-dates.png[]
+image::math-expressions/logs-dates.png[]
 
 
 === Record Types
@@ -81,7 +81,7 @@ One of the key fields in the index is the `type_s` field which is the type of lo
 
 The `facet` expression can be used to visualize the different types of log records and how many records of each type are in the index.
 
-image::images/math-expressions/logs-type.png[]
+image::math-expressions/logs-type.png[]
 
 
 === Collections
@@ -90,14 +90,14 @@ Another important field is the `collection_s` field which is the collection that
 
 The `facet` expression can be used to visualize the different collections and how many log records they generate.
 
-image::images/math-expressions/logs-collection.png[]
+image::math-expressions/logs-collection.png[]
 
 
 === Record Type by Collection
 
 A two dimensional `facet` can be run to visualize the record types by collection.
 
-image::images/math-expressions/logs-type-collection.png[]
+image::math-expressions/logs-type-collection.png[]
 
 
 === Time Series
@@ -106,7 +106,7 @@ The `timeseries` function can be used to visualize a time series for a specific
 
 In the example below a time series is used to visualize the log record counts at 15 second intervals.
 
-image::images/math-expressions/logs-time-series.png[]
+image::math-expressions/logs-time-series.png[]
 
 Notice that there is a very low level of log activity up until hour 21 minute 27.
 Then a burst of log activity occurs from minute 27 to minute 52.
@@ -116,7 +116,7 @@ This is then followed by a large spike of log activity.
 The example below breaks this down further by adding a query on the `type_s` field to only visualize *query* activity in the log.
 
 
-image::images/math-expressions/logs-time-series2.png[]
+image::math-expressions/logs-time-series2.png[]
 
 Notice the query activity accounts for more then half of the burst of log records between 21:27 and 21:52.
 But the query activity does not account for the large spike in log activity that follows.
@@ -125,7 +125,7 @@ We can account for that spike by changing the search to include only *update*, *
 We can also narrow by collection so we know where these activities are taking place.
 
 
-image::images/math-expressions/logs-time-series3.png[]
+image::math-expressions/logs-time-series3.png[]
 
 Through the various exploratory queries and visualizations we now have a much
 better understanding of what's contained in the logs.
@@ -147,21 +147,21 @@ for specific types of query records.
 
 To find all the top level queries in the logs, add a query to limit results to log records with `distrib_s:true` as follows:
 
-image::images/math-expressions/query-top-level.png[]
+image::math-expressions/query-top-level.png[]
 
 
 === Shard Level Queries
 
 To find all the shard level queries that are not IDs queries, adjust the query to limit results to logs with `distrib_s:false AND ids_s:false` as follows:
 
-image::images/math-expressions/query-shard-level.png[]
+image::math-expressions/query-shard-level.png[]
 
 
 === ID Queries
 
 To find all the *ids* queries, adjust the query to limit results to logs with `distrib_s:false AND ids_s:true` as follows:
 
-image::images/math-expressions/query-ids.png[]
+image::math-expressions/query-ids.png[]
 
 
 == Query Performance
@@ -184,7 +184,7 @@ In this example, `qtime_i` is plotted on the y-axis and the x-axis is simply a s
 NOTE: The `x` field is included in the field list.
 The `random` function automatically generates a sequence for the x-axis when `x` is included in the field list.
 
-image::images/math-expressions/qtime-scatter.png[]
+image::math-expressions/qtime-scatter.png[]
 
 From this scatter plot we can tell a number of important things about the query times:
 
@@ -205,7 +205,7 @@ Then the `zplot` function is used plot the query times on the y-axis of the scat
 
 NOTE: The `rev` function is used to reverse the query times vector so the visualization displays from lowest to highest query times.
 
-image::images/math-expressions/qtime-highest-scatter.png[]
+image::math-expressions/qtime-highest-scatter.png[]
 
 From this plot we can see that the 500 highest query times start at 510ms and slowly move higher, until the last 10 spike upwards, culminating at the highest query time of 2529ms.
 
@@ -233,7 +233,7 @@ The resulting frequency table is shown in the visualization below.
 The x-axis is the number of seconds.
 The y-axis is the number of query times that rounded to each second.
 
-image::images/math-expressions/qtime-dist.png[]
+image::math-expressions/qtime-dist.png[]
 
 Notice that roughly 93 percent of the query times rounded to 0, meaning they were under 500ms.
 About 6 percent round to 1 and the rest rounded to either 2 or 3 seconds.
@@ -254,7 +254,7 @@ The array of percentiles set to variable `p` tells the `percentile` function whi
 
 Then the `zplot` function is used to plot the *percentiles* on the x-axis and the *query time* at each percentile on the y-axis.
 
-image::images/math-expressions/query-qq.png[]
+image::math-expressions/query-qq.png[]
 
 From the plot we can see that the 80th percentile has a query time of 464ms.
 This means that 80% percent of queries are below 464ms.
@@ -265,7 +265,7 @@ A time series aggregation can also be run to visualization how QTime changes ove
 
 The example below shows a time series, area chart that visualizes *average query time* at 15 second intervals for a 3 minute section of a log.
 
-image::images/math-expressions/qtime-series.png[]
+image::math-expressions/qtime-series.png[]
 
 
 == Performance Troubleshooting
@@ -285,7 +285,7 @@ The `core_s` field is particularly useful as its the most granular element and t
 
 The example below uses the `facet` function to calculate `avg(qtime_i)` by core.
 
-image::images/math-expressions/slow-nodes.png[]
+image::math-expressions/slow-nodes.png[]
 
 Notice in the results that the `core_s` field contains information about the
 *collection*, *shard*, and *replica*.
@@ -302,7 +302,7 @@ The `q_s` field is a string field and the `q_t` field has been tokenized.
 The `search` function can be used to return the top N slowest queries in the logs by sorting the results by `qtime_i desc`.
 The example below demonstrates this:
 
-image::images/math-expressions/slow-queries.png[]
+image::math-expressions/slow-queries.png[]
 
 Once the queries have been retrieved they can be inspected and tried individually to determine if the query is consistently slow.
 If the query is shown to be slow a plan to improve the query performance can be devised.
@@ -318,7 +318,7 @@ The time series below limits the log results to records that are type `query` an
 The plot shows the day, hour and minute on the x-axis and `max(qtime_i)` in milliseconds on the y-axis.
 Notice there are some extreme spikes in max `qtime_i` that need to be understood.
 
-image::images/math-expressions/query-spike.png[]
+image::math-expressions/query-spike.png[]
 
 
 The next step is to generate a time series that counts commits across the same time intervals.
@@ -328,7 +328,7 @@ The count for the commits is calculated and plotted on y-axis.
 
 Notice that there are spikes in commit activity that appear near the spikes in max `qtime_i`.
 
-image::images/math-expressions/commit-series.png[]
+image::math-expressions/commit-series.png[]
 
 The final step is to overlay the two time series in the same plot.
 
@@ -343,7 +343,7 @@ The `zplot` function is then used to plot the time stamp vector on the x-axis an
 NOTE: The `minMaxScale` function is used to scale both vectors
 between 0 and 1 so they can be visually compared on the same plot.
 
-image::images/math-expressions/overlay-series.png[]
+image::math-expressions/overlay-series.png[]
 
 Notice in this plot that the commit count seems to be closely related to spikes
 in max `qtime_i`.
@@ -355,10 +355,10 @@ Error records will have a `type_s` field value of `error`.
 
 The example below searches for error records:
 
-image::images/math-expressions/search-error.png[]
+image::math-expressions/search-error.png[]
 
 
 If the error is followed by a stack trace the stack trace will be present in the searchable field `stack_t`.
 The example below shows a search on the `stack_t` field and the stack trace presented in the result.
 
-image::images/math-expressions/stack.png[]
+image::math-expressions/stack.png[]
diff --git a/solr/solr-ref-guide/src/machine-learning.adoc b/solr/solr-ref-guide/modules/query-guide/pages/machine-learning.adoc
similarity index 97%
rename from solr/solr-ref-guide/src/machine-learning.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/machine-learning.adoc
index c7952a6..aed8a0a 100644
--- a/solr/solr-ref-guide/src/machine-learning.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/machine-learning.adoc
@@ -114,11 +114,11 @@ Finally the `zplot` function is used to plot the distance matrix as a heat map.
 Notice that the heat map has been configured so that the intensity of color increases as the distance between vectors decreases.
 
 
-image::images/math-expressions/distance.png[]
+image::math-expressions/distance.png[]
 
 The heat map is interactive, so mousing over one of the cells pops up the values for the cell.
 
-image::images/math-expressions/distanceview.png[]
+image::math-expressions/distanceview.png[]
 
 Notice that HEAT/HOT WATER and UNSANITARY CONDITION complaints have a cosine distance of .1 (rounded to the nearest tenth).
 
@@ -173,7 +173,7 @@ The `topFeatures` function is used to extract the top 5 column labels for each z
 Then `zplot` outputs the data in a format that can be visualized in
 a table with Zeppelin-Solr.
 
-image::images/math-expressions/knn.png[]
+image::math-expressions/knn.png[]
 
 The table above shows each zip code returned by the `knn` function along with the list of complaints and distances.
 These are the zip codes that are most similar to the 10280 zip code based on their top 5 complaint types.
@@ -197,7 +197,7 @@ The `knnRegress` function is then applied with `20` as the nearest neighbor para
 The `predict` function is then called on the KNN function to predict values for the original `x` vector.
 Finally `zplot` is used to plot the original `x` and `y` vectors along with the predictions.
 
-image::images/math-expressions/knnRegress.png[]
+image::math-expressions/knnRegress.png[]
 
 Notice that the regression plot shows a non-linear relations ship between the `filesize_d` field and the `eresponse_d` field.
 Also note that KNN regression plots a non-linear curve through the scatter plot.
@@ -231,7 +231,7 @@ The `ebeSubtract` function is used to perform the element-by-element subtraction
 
 Finally the `zplot` function formats the predictions and errors for the visualization of the *residual plot*.
 
-image::images/math-expressions/redwine1.png[]
+image::math-expressions/redwine1.png[]
 
 The residual plot plots the *predicted* values on the x-axis and the *error* for the prediction on the y-axis.
 The scatter plot shows how the errors are distributed across the full range of predictions.
@@ -252,7 +252,7 @@ The example below shows the same KNN regression as above with a plot of the dist
 
 In the example the `zplot` function is used to plot the `empiricalDistribution` function of the residuals, with an 11 bin histogram.
 
-image::images/math-expressions/redwine2.png[]
+image::math-expressions/redwine2.png[]
 
 Notice that the errors follow a bell curve centered close to 0.
 From this plot we can see the probability of getting prediction errors between -1 and 1 is quite high.
@@ -304,7 +304,7 @@ The search returns the 50 documents most similar to a specific document ID (`83e
 The `mindf` and `maxdf` specify the minimum and maximum document frequency of the terms used to perform the search.
 These parameters can make the query faster by eliminating high frequency terms and also improves accuracy by removing noise terms from the search.
 
-image::images/math-expressions/knnSearch.png[]
+image::math-expressions/knnSearch.png[]
 
 NOTE: In this example the `select` function is used to truncate the review in the output to 220 characters to make it easier to read in a table.
 
@@ -346,7 +346,7 @@ The example uses `haversineMeters` which returns the distance in meters which is
 Finally, the `zplot` function is used to visualize the clusters on a map with Zeppelin-Solr.
 The map below has been zoomed to a specific area of Brooklyn with a high density of rat sightings.
 
-image::images/math-expressions/dbscan1.png[]
+image::math-expressions/dbscan1.png[]
 
 Notice in the visualization that only 1019 points were returned from the 5000 samples.
 This is the power of the DBSCAN algorithm to filter records that don't match the criteria of a cluster.
@@ -355,7 +355,7 @@ The points that are plotted all belong to clearly defined clusters.
 The map visualization can be zoomed further to explore the locations of specific clusters.
 The example below shows a zoom into an area of dense clusters.
 
-image::images/math-expressions/dbscan2.png[]
+image::math-expressions/dbscan2.png[]
 
 
 == K-Means Clustering
@@ -379,7 +379,7 @@ The matrix is transposed so each row contains a single latitude, longitude point
 The `kmeans` function is then used to cluster the latitude and longitude points into 21 clusters.
 Finally, the `zplot` function is used to visualize the clusters as a scatter plot.
 
-image::images/math-expressions/2DCluster1.png[]
+image::math-expressions/2DCluster1.png[]
 
 The scatter plot above shows each lat/lon point plotted on a Euclidean plain with longitude on the x-axis and latitude on the y-axis.
 The plot is dense enough so the outlines of the different boroughs are visible if you know the boroughs of New York City.
@@ -398,12 +398,12 @@ The centroids matrix contains 2D lat/lon points.
 The `colAt` function can then be used to extract the latitude and longitude columns by index from the matrix so they can be plotted with `zplot`.
 A map visualization is used below to display the centroids.
 
-image::images/math-expressions/centroidplot.png[]
+image::math-expressions/centroidplot.png[]
 
 
 The map can then be zoomed to get a closer look at the centroids in the high density areas shown in the cluster scatter plot.
 
-image::images/math-expressions/centroidzoom.png[]
+image::math-expressions/centroidzoom.png[]
 
 
 === Phrase Extraction
@@ -583,7 +583,7 @@ The distance matrix is then visualized with the `zplot` function as a heat map.
 In the example `cluster1` and `cluster5` have the shortest distance between the clusters.
 Further analysis of the features in both clusters can be performed to understand the relationship between `cluster1` and `cluster5`.
 
-image::images/math-expressions/fuzzyk.png[]
+image::math-expressions/fuzzyk.png[]
 
 NOTE: The heat map has been configured to increase in color intensity as the distance shortens.
 
@@ -601,7 +601,7 @@ By default it will scale between `0` and `1` if min/max values are not provided.
 
 Below is a plot of a sine wave, with an amplitude of 1, before and after it has been scaled between -5 and 5.
 
-image::images/math-expressions/minmaxscale.png[]
+image::math-expressions/minmaxscale.png[]
 
 Below is a simple example of min/max scaling of a matrix between 0 and 1.
 Notice that once brought into the same scale the vectors are the same.
@@ -652,7 +652,7 @@ The `standardize` function scales a vector so that it has a mean of 0 and a stan
 
 Below is a plot of a sine wave, with an amplitude of 1, before and after it has been standardized.
 
-image::images/math-expressions/standardize.png[]
+image::math-expressions/standardize.png[]
 
 Below is a simple example of of a standardized matrix.
 Notice that once brought into the same scale the vectors are the same.
@@ -706,7 +706,7 @@ Unit vectors are preferred when the vector math deals with vector direction rath
 
 Below is a plot of a sine wave, with an amplitude of 1, before and after it has been unitized.
 
-image::images/math-expressions/unitize.png[]
+image::math-expressions/unitize.png[]
 
 Below is a simple example of a unitized matrix.
 Notice that once brought into the same scale the vectors are the same.
diff --git a/solr/solr-ref-guide/src/math-expressions.adoc b/solr/solr-ref-guide/modules/query-guide/pages/math-expressions.adoc
similarity index 98%
rename from solr/solr-ref-guide/src/math-expressions.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/math-expressions.adoc
index f78f15f..598fafb 100644
--- a/solr/solr-ref-guide/src/math-expressions.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/math-expressions.adoc
@@ -41,7 +41,7 @@
 
 == A Visual Guide
 
-image::images/math-expressions/searchiris.png[]
+image::math-expressions/searchiris.png[]
 
 == Table of Contents
 
diff --git a/solr/solr-ref-guide/src/math-start.adoc b/solr/solr-ref-guide/modules/query-guide/pages/math-start.adoc
similarity index 97%
rename from solr/solr-ref-guide/src/math-start.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/math-start.adoc
index 3551776..1127811 100644
--- a/solr/solr-ref-guide/src/math-start.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/math-start.adoc
@@ -44,11 +44,11 @@ The easiest way to run streaming expressions and math expressions is through the
 
 A sample `search` streaming expression is shown in the screenshot below:
 
-image::images/math-expressions/search.png[]
+image::math-expressions/search.png[]
 
 A sample `add` math expression is shown in the screenshot below:
 
-image::images/math-expressions/add.png[]
+image::math-expressions/add.png[]
 
 === Curl Example
 
@@ -102,7 +102,7 @@ https://github.com/lucidworks/zeppelin-solr
 Once installed the Solr Interpreter can be configured to connect to your Solr instance.
 The screenshot below shows the panel for configuring Zeppelin-Solr.
 
-image::images/math-expressions/zepconf.png[]
+image::math-expressions/zepconf.png[]
 
 Configure the `solr.baseUrl` and `solr.collection` to point to the location where the streaming expressions and math expressions will be sent for execution.
 The `solr.collection` is just the execution collection and does not need to hold data, although it can hold data.
diff --git a/solr/solr-ref-guide/src/matrix-math.adoc b/solr/solr-ref-guide/modules/query-guide/pages/matrix-math.adoc
similarity index 99%
rename from solr/solr-ref-guide/src/matrix-math.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/matrix-math.adoc
index dd60b54..89dfbc6 100644
--- a/solr/solr-ref-guide/src/matrix-math.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/matrix-math.adoc
@@ -125,7 +125,7 @@ visualization in Apache Zeppelin.
 
 NOTE: In the visualization below the rows are read from the *bottom* up, which is a common convention for heat maps.
 
-image::images/math-expressions/matrix.png[]
+image::math-expressions/matrix.png[]
 
 
 == Accessing Rows and Columns
diff --git a/solr/solr-ref-guide/src/morelikethis.adoc b/solr/solr-ref-guide/modules/query-guide/pages/morelikethis.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/morelikethis.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/morelikethis.adoc
diff --git a/solr/solr-ref-guide/src/numerical-analysis.adoc b/solr/solr-ref-guide/modules/query-guide/pages/numerical-analysis.adoc
similarity index 97%
rename from solr/solr-ref-guide/src/numerical-analysis.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/numerical-analysis.adoc
index 6c644b3..bf8b412 100644
--- a/solr/solr-ref-guide/src/numerical-analysis.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/numerical-analysis.adoc
@@ -44,7 +44,7 @@ Then a spline is used to interpolate the smoothed control points.
 One way to better understand interpolation is to visualize what it means to sample along a curve.
 The example below zooms in on a specific region of a curve by sampling the curve between a specific x-axis range.
 
-image::images/math-expressions/interpolate1.png[]
+image::math-expressions/interpolate1.png[]
 
 The visualization above first creates two arrays with x and y-axis points.
 Notice that the x-axis ranges from 0 to 9.
@@ -81,7 +81,7 @@ The `loess` function returns the fitted model of smoothed data points.
 
 The `zplot` function is then used to plot the `x`, `y` and `y1` variables.
 
-image::images/math-expressions/loess.png[]
+image::math-expressions/loess.png[]
 
 
 == Derivatives
@@ -101,7 +101,7 @@ The `derivative` function is then applied to the linear interpolation.
 `zplot` is then used to plot the *`hours`* on the x-axis and `miles` on the y-axis, and the `derivative` as `mph`, at each x-axis point.
 
 
-image::images/math-expressions/derivative.png[]
+image::math-expressions/derivative.png[]
 
 Notice that the *miles_traveled* line has a slope of 10 until the 5th hour where it changes to a slope of 50.
 The *mph* line, which is the derivative, visualizes the *velocity* of the *miles_traveled* line.
@@ -121,7 +121,7 @@ Notice that the second derivative `d2` is taken by applying the derivative funct
 
 The second derivative is plotted as *acceleration* on the chart.
 
-image::images/math-expressions/derivatives.png[]
+image::math-expressions/derivatives.png[]
 
 Notice that the acceleration line is 0 until the *mph* line increases from 10 to 50.
 At this point the *acceleration* line moves to 40.
@@ -134,7 +134,7 @@ In the example a monthly time series is generated for the average closing price
 The `avg(close)` column is vectorized and interpolated using linear interpolation (`lerp`).
 The `zplot` function is then used to plot the derivative of the time series.
 
-image::images/math-expressions/derivative2.png[]
+image::math-expressions/derivative2.png[]
 
 Notice that the derivative plot clearly shows the rates of change in the stock price over time.
 
@@ -202,7 +202,7 @@ The `avg(close)` column is vectorized and interpolated using a `spline`.
 
 The `zplot` function is then used to plot the cumulative integral of the time series.
 
-image::images/math-expressions/integral.png[]
+image::math-expressions/integral.png[]
 
 The plot above visualizes the volume under the curve as the *AMZN* stock price changes over time.
 Because this plot is cumulative, the volume under a stock price time series which stays the same over time, will have a positive *linear* slope.
diff --git a/solr/solr-ref-guide/src/other-parsers.adoc b/solr/solr-ref-guide/modules/query-guide/pages/other-parsers.adoc
similarity index 99%
rename from solr/solr-ref-guide/src/other-parsers.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/other-parsers.adoc
index f0459ed..5c4ecaf 100644
--- a/solr/solr-ref-guide/src/other-parsers.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/other-parsers.adoc
@@ -444,7 +444,7 @@ The `graph` parser only works in single-node Solr installations, or with SolrClo
 
 To understand how the graph parser works, consider the following Directed Cyclic Graph, containing 8 nodes (A to H) and 9 edges (1 to 9):
 
-image::images/other-parsers/graph_qparser_example.png[image,height=100]
+image::other-parsers/graph_qparser_example.png[image,height=100]
 
 One way to model this graph as Solr documents, would be to create one document per node, with mutivalued fields identifying the incoming and outgoing edges for each node:
 
diff --git a/solr/solr-ref-guide/src/pagination-of-results.adoc b/solr/solr-ref-guide/modules/query-guide/pages/pagination-of-results.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/pagination-of-results.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/pagination-of-results.adoc
diff --git a/solr/solr-ref-guide/src/parallel-sql-interface.adoc b/solr/solr-ref-guide/modules/query-guide/pages/parallel-sql-interface.adoc
similarity index 99%
rename from solr/solr-ref-guide/src/parallel-sql-interface.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/parallel-sql-interface.adoc
index b542df6..8ba7ac4 100644
--- a/solr/solr-ref-guide/src/parallel-sql-interface.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/parallel-sql-interface.adoc
@@ -507,7 +507,7 @@ This means the tuples are always sorted and partitioned before they hit the netw
 The partitioned tuples are sent directly to the correct worker nodes in the proper sort order, ready to be reduced.
 
 .How Parallel SQL Queries are Distributed
-image::images/parallel-sql-interface/cluster.png[image,width=492,height=250]
+image::parallel-sql-interface/cluster.png[image,width=492,height=250]
 
 The image above shows the three tiers broken out into different SolrCloud collections for clarity.
 In practice the `/sql` handler and worker collection by default share the same collection.
diff --git a/solr/solr-ref-guide/src/probability-distributions.adoc b/solr/solr-ref-guide/modules/query-guide/pages/probability-distributions.adoc
similarity index 92%
rename from solr/solr-ref-guide/src/probability-distributions.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/probability-distributions.adoc
index b82bbd5..b47e37e 100644
--- a/solr/solr-ref-guide/src/probability-distributions.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/probability-distributions.adoc
@@ -36,56 +36,56 @@ The `empiricalDistribution` function creates a continuous probability distributi
 Empirical distributions can be used to conveniently visualize the probability density function of a random sample from a SolrCloud collection.
 The example below shows the `zplot` function visualizing the probability density of a random sample with a 32 bin histogram.
 
-image::images/math-expressions/empirical.png[]
+image::math-expressions/empirical.png[]
 
 ==== normalDistribution
 
 The visualization below shows a normal distribution with a `mean` of 0 and `standard deviation` of 1.
 
-image::images/math-expressions/dist.png[]
+image::math-expressions/dist.png[]
 
 
 ==== logNormalDistribution
 
 The visualization below shows a log normal distribution with a `shape` of .25 and `scale` of 0.
 
-image::images/math-expressions/lognormal.png[]
+image::math-expressions/lognormal.png[]
 
 ==== gammaDistribution
 
 The visualization below shows a gamma distribution with a `shape` of 7.5 and `scale` of 1.
 
-image::images/math-expressions/gamma.png[]
+image::math-expressions/gamma.png[]
 
 ==== betaDistribution
 
 The visualization below shows a beta distribution with a `shape1` of 2 and `shape2` of 2.
 
-image::images/math-expressions/beta.png[]
+image::math-expressions/beta.png[]
 
 ==== uniformDistribution
 
 The visualization below shows a uniform distribution between 0 and 10.
 
-image::images/math-expressions/uniformr.png[]
+image::math-expressions/uniformr.png[]
 
 ==== weibullDistribution
 
 The visualization below shows a Weibull distribution with a `shape` of 5 and `scale` of 1.
 
-image::images/math-expressions/weibull.png[]
+image::math-expressions/weibull.png[]
 
 ==== triangularDistribution
 
 The visualization below shows a triangular distribution with a low of 5 a mode of 10 and a high value of 20.
 
-image::images/math-expressions/triangular.png[]
+image::math-expressions/triangular.png[]
 
 ==== constantDistribution
 
 The visualization below shows a constant distribution of 10.5.
 
-image::images/math-expressions/constant.png[]
+image::math-expressions/constant.png[]
 
 === Discrete Distributions
 
@@ -99,45 +99,45 @@ from an enumerated list of values and probabilities or from a data set of discre
 
 The visualization below shows an enumerated distribution created from a list of discrete values and probabilities.
 
-image::images/math-expressions/enum1.png[]
+image::math-expressions/enum1.png[]
 
 The visualization below shows an enumerated distribution generated from a search result that has been transformed into a vector of discrete values.
 
-image::images/math-expressions/enum2.png[]
+image::math-expressions/enum2.png[]
 
 ==== poissonDistribution
 
 The visualization below shows a Poisson distribution with a `mean` of 15.
 
-image::images/math-expressions/poisson.png[]
+image::math-expressions/poisson.png[]
 
 
 ==== binomialDistribution
 
 The visualization below shows a binomial distribution with a 100 trials and .15 probability of success.
 
-image::images/math-expressions/binomial.png[]
+image::math-expressions/binomial.png[]
 
 
 ==== uniformIntegerDistribution
 
 The visualization below shows a uniform integer distribution between 0 and 10.
 
-image::images/math-expressions/uniform.png[]
+image::math-expressions/uniform.png[]
 
 
 ==== geometricDistribution
 
 The visualization below shows a geometric distribution probability of success of .25.
 
-image::images/math-expressions/geometric.png[]
+image::math-expressions/geometric.png[]
 
 
 ==== zipFDistribution
 
 The visualization below shows a ZipF distribution with a size of 50 and exponent of 1.
 
-image::images/math-expressions/zipf.png[]
+image::math-expressions/zipf.png[]
 
 
 
@@ -281,15 +281,15 @@ Vectors of samples can be visualized as scatter plots to gain an intuitive under
 
 The first example shows the scatter plot of a normal distribution with a mean of 0 and a standard deviation of 5.
 
-image::images/math-expressions/sample-scatter.png[]
+image::math-expressions/sample-scatter.png[]
 
 The next example shows a scatter plot of the same distribution with an ascending sort applied to the sample vector.
 
-image::images/math-expressions/sample-scatter1.png[]
+image::math-expressions/sample-scatter1.png[]
 
 The next example shows two different distributions overlaid in the same scatter plot.
 
-image::images/math-expressions/sample-overlay.png[]
+image::math-expressions/sample-overlay.png[]
 
 === Multivariate Normal Distribution
 
diff --git a/solr/solr-ref-guide/src/query-elevation-component.adoc b/solr/solr-ref-guide/modules/query-guide/pages/query-elevation-component.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/query-elevation-component.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/query-elevation-component.adoc
diff --git a/solr/solr-ref-guide/src/query-guide.adoc b/solr/solr-ref-guide/modules/query-guide/pages/query-guide.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/query-guide.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/query-guide.adoc
diff --git a/solr/solr-ref-guide/src/query-re-ranking.adoc b/solr/solr-ref-guide/modules/query-guide/pages/query-re-ranking.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/query-re-ranking.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/query-re-ranking.adoc
diff --git a/solr/solr-ref-guide/src/query-screen.adoc b/solr/solr-ref-guide/modules/query-guide/pages/query-screen.adoc
similarity index 98%
rename from solr/solr-ref-guide/src/query-screen.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/query-screen.adoc
index ee27bc5..cb60a81 100644
--- a/solr/solr-ref-guide/src/query-screen.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/query-screen.adoc
@@ -21,7 +21,7 @@ You can use the *Query* screen to submit a search query to a Solr collection and
 In the example in the screenshot, a query has been submitted, and the screen shows the query results sent to the browser as JSON.
 
 .JSON Results of a Query
-image::images/query-screen/query-top.png[image,height=400]
+image::query-screen/query-top.png[image,height=400]
 
 In this example, a query for `genre:Fantasy` was sent to a "films" collection.
 Defaults were used for all other options in the form, which are explained briefly in the table below, and covered in detail in later parts of this Guide.
diff --git a/solr/solr-ref-guide/src/query-syntax-and-parsers.adoc b/solr/solr-ref-guide/modules/query-guide/pages/query-syntax-and-parsers.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/query-syntax-and-parsers.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/query-syntax-and-parsers.adoc
diff --git a/solr/solr-ref-guide/src/regression.adoc b/solr/solr-ref-guide/modules/query-guide/pages/regression.adoc
similarity index 98%
rename from solr/solr-ref-guide/src/regression.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/regression.adoc
index 928c60d..36cd11f 100644
--- a/solr/solr-ref-guide/src/regression.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/regression.adoc
@@ -71,7 +71,7 @@ This means that changes in `filesize_d` explain 75% of the variability of the `r
 
 The diagnostics can be visualized in a table using Zeppelin-Solr.
 
-image::images/math-expressions/diagnostics.png[]
+image::math-expressions/diagnostics.png[]
 
 
 === Prediction
@@ -160,7 +160,7 @@ When this expression is sent to the `/stream` handler it responds with:
 Using `zplot` and the Zeppelin-Solr interpreter we can visualize both the observations and the predictions in the same scatter plot.
 In the example below `zplot` is plotting the `filesize_d` observations on the x-axis, the `response_d` observations on the y-axis and the predictions on the y1-axis.
 
-image::images/math-expressions/linear.png[]
+image::math-expressions/linear.png[]
 
 === Residuals
 
@@ -219,7 +219,7 @@ When this expression is sent to the `/stream` handler it responds with:
 Using `zplot` and Zeppelin-Solr we can visualize the residuals with a residuals plot.
 The example residual plot below plots the predicted value on the x-axis and the error of the prediction on the y-axis.
 
-image::images/math-expressions/residual-plot.png[]
+image::math-expressions/residual-plot.png[]
 
 The residual plot can be used to interpret reliability of the model.
 Three things to look for are:
@@ -450,6 +450,6 @@ When this expression is sent to the `/stream` handler it responds with:
 The residual plot for multi-variate linear regression is the same as for simple linear regression.
 The predictions are plotted on the x-axis and the error is plotted on the y-axis.
 
-image::images/math-expressions/residual-plot2.png[]
+image::math-expressions/residual-plot2.png[]
 
 The residual plot for multi-variate linear regression can be interpreted in the exact same way as simple linear regression.
diff --git a/solr/solr-ref-guide/src/response-writers.adoc b/solr/solr-ref-guide/modules/query-guide/pages/response-writers.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/response-writers.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/response-writers.adoc
diff --git a/solr/solr-ref-guide/src/result-clustering.adoc b/solr/solr-ref-guide/modules/query-guide/pages/result-clustering.adoc
similarity index 99%
rename from solr/solr-ref-guide/src/result-clustering.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/result-clustering.adoc
index 4ace945..a50c09f 100644
--- a/solr/solr-ref-guide/src/result-clustering.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/result-clustering.adoc
@@ -30,7 +30,7 @@ Clusters discovered for a given query can be perceived as _dynamic facets_.
 This is beneficial when regular faceting is difficult (field values are not known in advance) or when the queries are exploratory in nature.
 Take a look at the https://search.carrot2.org/#/search/web/apache%20solr/treemap[Carrot^2^] project's demo page to see an example of search results clustering in action (the groups in the visualization have been discovered automatically in search results to the right, there is no external information involved).
 
-image::images/result-clustering/carrot2.png[image,width=900]
+image::result-clustering/carrot2.png[image,width=900]
 
 The query issued to the system was _Apache Solr_.
 It seems clear that faceting could not yield a similar set of groups, although the goals of both techniques are similar -- to let the user explore the set of search results and either rephrase the query or narrow the focus to a subset of current documents.
@@ -501,13 +501,13 @@ For example, let's assume the following engine configuration:
 First, locate the configuration parameters for the Lingo algorithm
 at https://carrot2.github.io/release/latest/[Carrot^2^ documentation site]:
 
-image::images/result-clustering/carrot2-docs-attrs1.png[image,scaledwidth=75%]
+image::result-clustering/carrot2-docs-attrs1.png[image,scaledwidth=75%]
 
 Then locate the particular setting you'd like to change and note the
 REST API path to that setting (in this case the parameter is
 `minClusterSize` and its path is `preprocessing.documentAssigner.minClusterSize`):
 
-image::images/result-clustering/carrot2-docs-attrs2.png[image,scaledwidth=75%]
+image::result-clustering/carrot2-docs-attrs2.png[image,scaledwidth=75%]
 
 Now add the full path-value pair to the engine's configuration:
 
diff --git a/solr/solr-ref-guide/src/result-grouping.adoc b/solr/solr-ref-guide/modules/query-guide/pages/result-grouping.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/result-grouping.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/result-grouping.adoc
diff --git a/solr/solr-ref-guide/src/scalar-math.adoc b/solr/solr-ref-guide/modules/query-guide/pages/scalar-math.adoc
similarity index 95%
rename from solr/solr-ref-guide/src/scalar-math.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/scalar-math.adoc
index b219b14..7ba024e 100644
--- a/solr/solr-ref-guide/src/scalar-math.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/scalar-math.adoc
@@ -76,11 +76,11 @@ This expression returns the following response:
 
 In the Zeppelin-Solr interpreter you can simply type in scalar math functions and the result will be shown in a table format.
 
-image::images/math-expressions/scalar.png[]
+image::math-expressions/scalar.png[]
 
 The *Number* visualization can be used to visualize the number with text and icons.
 
-image::images/math-expressions/num.png[]
+image::math-expressions/num.png[]
 
 == Streaming Scalar Math
 
@@ -134,11 +134,11 @@ When this expression is sent to the `/stream` handler it responds with:
 
 The expression above can be visualized as a table using Zeppelin-Solr.
 
-image::images/math-expressions/stream.png[]
+image::math-expressions/stream.png[]
 
 By switching to one of the line chart visualizations the two variables can be plotted on the x and y-axis.
 
-image::images/math-expressions/line.png[]
+image::math-expressions/line.png[]
 
 
 == More Scalar Math Functions
diff --git a/solr/solr-ref-guide/src/search-sample.adoc b/solr/solr-ref-guide/modules/query-guide/pages/search-sample.adoc
similarity index 94%
rename from solr/solr-ref-guide/src/search-sample.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/search-sample.adoc
index 74e5092..b636633 100644
--- a/solr/solr-ref-guide/src/search-sample.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/search-sample.adoc
@@ -32,7 +32,7 @@ In the example the `search` function is passed only the name of the collection b
 This returns a result set of 10 records with all fields.
 This simple function is useful for exploring the fields in the data and understanding how to start refining the search criteria.
 
-image::images/math-expressions/search1.png[]
+image::math-expressions/search1.png[]
 
 === Searching and Sorting
 
@@ -42,11 +42,11 @@ In the example below a search query, field list, rows and sort have been added t
 Now the search is limited to records within a specific time range and returns a maximum result set of 750 records sorted by `tdate_dt` ascending.
 We have also limited the result set to three specific fields.
 
-image::images/math-expressions/search-sort.png[]
+image::math-expressions/search-sort.png[]
 
 Once the data is loaded into the table we can switch to a scatter plot and plot the `filesize_d` column on the *x-axis* and the `response_d` column on the *y-axis*.
 
-image::images/math-expressions/search-sort-plot.png[]
+image::math-expressions/search-sort-plot.png[]
 
 This allows us to quickly visualize the relationship between two variables selected from a very specific slice of the index.
 
@@ -55,7 +55,7 @@ This allows us to quickly visualize the relationship between two variables selec
 The `search` function will score and rank documents when a query is performed on a text field.
 The example below shows an example of the scoring and ranking of results.
 
-image::images/math-expressions/scoring.png[]
+image::math-expressions/scoring.png[]
 
 == Sampling
 
@@ -89,7 +89,7 @@ Based on this the *mean* and *mode* would appear to be around 40,000.
 
 This sample can be re-run multiple times to see if the samples produce similar plots.
 
-image::images/math-expressions/univariate.png[]
+image::math-expressions/univariate.png[]
 
 === Bivariate Scatter Plots
 
@@ -107,7 +107,7 @@ By studying the scatter plot we can learn the following:
 * The variance of the data at each `filesize_d` point seems fairly consistent.
 This means a predictive model would have consistent error across the range of predictions.
 
-image::images/math-expressions/bivariate.png[]
+image::math-expressions/bivariate.png[]
 
 == Aggregation
 
@@ -124,12 +124,12 @@ Any number and combination of statistics can be calculated in a single function
 The `stats` function can be visualized in Zeppelin-Solr as a table.
 In the example below two statistics are calculated over a result set and are displayed in a table:
 
-image::images/math-expressions/stats-table.png[]
+image::math-expressions/stats-table.png[]
 
 The `stats` function can also be visualized using the *number* visualization which is used to highlight important numbers.
 The example below shows the `count(*)` aggregation displayed in the number visualization:
 
-image::images/math-expressions/stats.png[]
+image::math-expressions/stats.png[]
 
 === facet
 
@@ -140,21 +140,21 @@ The example below performs a single dimension aggregation from the nyc311 (NYC c
 The aggregation returns the top five *complaint types* by *count* for records with a status of *Pending*.
 The results are displayed with Zeppelin-Solr in a table.
 
-image::images/math-expressions/facettab1.png[]
+image::math-expressions/facettab1.png[]
 
 The example below shows the table visualized using a pie chart.
 
-image::images/math-expressions/facetviz1.png[]
+image::math-expressions/facetviz1.png[]
 
 The next example demonstrates a multi-dimension aggregation.
 Notice that the `buckets` parameter now contains two dimensions: `borough_s` and `complaint_type_s`.
 This returns the top 20 combinations of borough and complaint type by count.
 
-image::images/math-expressions/facettab2.png[]
+image::math-expressions/facettab2.png[]
 
 The example below shows the multi-dimension aggregation visualized as a grouped bar chart.
 
-image::images/math-expressions/facetviz2.png[]
+image::math-expressions/facetviz2.png[]
 
 The `facet` function supports any combination of the following aggregate functions: count(*), sum, avg, min, max.
 
@@ -170,7 +170,7 @@ The example below visualizes the output of the `facet2D` function.
 In the example `facet2D` returns the top 5 boroughs and the top 5 complaint types for each borough.
 The output is then visualized as a heatmap.
 
-image::images/math-expressions/facet2D.png[]
+image::math-expressions/facet2D.png[]
 
 The `facet2D` function supports one of the following aggregate functions: `count(*)`, `sum`, `avg`, `min`, `max`.
 
@@ -183,7 +183,7 @@ In this example the average monthly closing price is calculated for the stock ti
 
 The output of the `timeseries` function is then visualized with a line chart.
 
-image::images/math-expressions/timeseries1.png[]
+image::math-expressions/timeseries1.png[]
 
 The `timeseries` function supports any combination of the following aggregate functions: `count(*)`, `sum`, `avg`, `min`, `max`.
 
@@ -203,14 +203,14 @@ The example below illustrates the difference between the `facet` function and th
 In the first example the `facet` function aggregates the top 5 complaint types in Brooklyn.
 This returns the five most common complaint types in Brooklyn, but it's not clear that these terms appear more frequently in Brooklyn then then the other boroughs.
 
-image::images/math-expressions/significantTermsCompare.png[]
+image::math-expressions/significantTermsCompare.png[]
 
 In the next example the `significantTerms` function returns the top 5 significant terms in the `complaint_type_s` field for the borough of Brooklyn.
 The highest scoring term, Elder Abuse, has a foreground count of 285 and background count of 298.
 This means that there were 298 Elder Abuse complaints in the entire data set, and 285 of them were in Brooklyn.
 This shows that Elder Abuse complaints have a much higher occurrence rate in Brooklyn than the other boroughs.
 
-image::images/math-expressions/significantTerms2.png[]
+image::math-expressions/significantTerms2.png[]
 
 The final example shows a visualization of the `significantTerms` from a text field containing movie reviews.
 The result shows the significant terms that appear in movie reviews that have the phrase "sci-fi".
@@ -218,7 +218,7 @@ The result shows the significant terms that appear in movie reviews that have th
 The results are visualized using a bubble chart with the *foreground* count on plotted on the x-axis and the *background* count on the y-axis.
 Each term is shown in a bubble sized by the *score*.
 
-image::images/math-expressions/sterms.png[]
+image::math-expressions/sterms.png[]
 
 === nodes
 
@@ -248,6 +248,6 @@ The result below shows the ticker symbols in the `nodes` field and the counts fo
 Notice *jpm* is first, which shows how many days *jpm* had a change greater then .25 in this time period.
 The next set of ticker symbols (*mtb*, *slvb*, *gs* and *pnc*) are the symbols with highest number of days with a change greater then .25 on the same days that *jpm* had a change greater then .25.
 
-image::images/math-expressions/nodestab.png[]
+image::math-expressions/nodestab.png[]
 
 The `nodes` function supports any combination of the following aggregate functions: `count(*)`, `sum`, `avg`, `min`, `max`.
diff --git a/solr/solr-ref-guide/src/searching-nested-documents.adoc b/solr/solr-ref-guide/modules/query-guide/pages/searching-nested-documents.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/searching-nested-documents.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/searching-nested-documents.adoc
diff --git a/solr/solr-ref-guide/src/simulations.adoc b/solr/solr-ref-guide/modules/query-guide/pages/simulations.adoc
similarity index 95%
rename from solr/solr-ref-guide/src/simulations.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/simulations.adoc
index cd7c9a3..711dd40 100644
--- a/solr/solr-ref-guide/src/simulations.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/simulations.adoc
@@ -31,7 +31,7 @@ A useful first step in understanding the difference is to visualize daily stock
 The example below uses the `search` function to return 1000 days of daily stock returns for the ticker *CVX* (Chevron).
 The `change_d` field, which is the change in price for the day, is then plotted as a time series.
 
-image::images/math-expressions/randomwalk1.png[]
+image::math-expressions/randomwalk1.png[]
 
 Notice that the time series of daily price changes moves randomly above and
 below zero.
@@ -62,7 +62,7 @@ This is followed by another long period of low intensity correlation.
 This is the autocorrelation plot of pure noise.
 The daily stock changes appear to be a random time series.
 
-image::images/math-expressions/randomwalk2.png[]
+image::math-expressions/randomwalk2.png[]
 
 === Visualizing the Distribution
 
@@ -72,7 +72,7 @@ In the example below the `change_d` vector is plotted using the `empiricalDistri
 Notice that the distribution appears to be normally distributed.
 Daily stock price changes do tend to be normally distributed although *CVX* was chosen specifically for this example because of this characteristic.
 
-image::images/math-expressions/randomwalk3.png[]
+image::math-expressions/randomwalk3.png[]
 
 
 === Fitting the Distribution
@@ -84,7 +84,7 @@ The `ks` test is checking the reference distribution against the `change_d` vect
 Notice in the example below the `ks` test reports a p-value of .16278.
 A p-value of .05 or less is typically used to invalidate the null hypothesis of the test which is that the vector could have been drawn from the reference distribution.
 
-image::images/math-expressions/randomwalk4.png[]
+image::math-expressions/randomwalk4.png[]
 
 
 The `ks` test, which tends to be fairly sensitive, has confirmed the visualization which appeared to be normal.
@@ -116,14 +116,14 @@ The result of the simulation is set to variable `s`, which contains the total re
 The `empiricalDistribution` function is then used to visualize the output of the simulation as a 50 bin histogram.
 The distribution visualizes the probability of the different total returns from 100 days of stock returns for ticker *CVX*.
 
-image::images/math-expressions/randomwalk5.png[]
+image::math-expressions/randomwalk5.png[]
 
 The `probability` and `cumulativeProbability` functions can then used to learn more about the `empiricalDistribution`.
 For example the `probability` function can be used to calculate the probability of a non-negative return from 100 days of stock returns.
 
 The example below uses the `probability` function to return the probability of a return between the range of 0 and 40 from the `empiricalDistribution` of the simulation.
 
-image::images/math-expressions/randomwalk5.1.png[]
+image::math-expressions/randomwalk5.1.png[]
 
 === Random Walk
 
@@ -136,7 +136,7 @@ The variable `v` is maintained between iterations so each iteration uses the pre
 The `double` function is the final function run each iteration, which simply returns the value of `v` as a double.
 The example iterates 1000 times to create a random walk with 1000 steps.
 
-image::images/math-expressions/randomwalk6.png[]
+image::math-expressions/randomwalk6.png[]
 
 Notice the autocorrelation in the daily stock prices caused by the dependency between steps produces a very different plot then the random daily change in stock price.
 
@@ -156,13 +156,13 @@ Before getting started with actual simulations it's useful to first understand t
 The example below runs two searches to retrieve the daily stock returns for all Allstate and Chevron.
 The `change_d` vectors from both returns are read into variables (`all` and `cvx`) and Pearson's correlation is calculated for the two vectors with the `corr` function.
 
-image::images/math-expressions/corrsim1.png[]
+image::math-expressions/corrsim1.png[]
 
 Covariance is an unscaled measure of correlation.
 Covariance is the measure used by the multivariate simulations so it's useful to also compute the covariance for the two stock returns.
 The example below computes the covariance.
 
-image::images/math-expressions/corrsim2.png[]
+image::math-expressions/corrsim2.png[]
 
 === Covariance Matrix
 
@@ -174,7 +174,7 @@ The matrix is then transposed with the `transpose` function so that the `all` ve
 
 The `cov` function then computes the covariance matrix for the columns of the matrix and returns the result.
 
-image::images/math-expressions/corrsim3.png[]
+image::math-expressions/corrsim3.png[]
 
 The covariance matrix is a square matrix which contains the variance of each vector and the covariance between the vectors as follows:
 
@@ -209,7 +209,7 @@ The output of the simulation is a vector which can be treated as an empirical di
 In this example it is plotted as a 50 bin histogram which visualizes the probability of the different total returns from 100 days of stock returns for the tickers `all` and `cvx`.
 
 
-image::images/math-expressions/mnorm.png[]
+image::math-expressions/mnorm.png[]
 
 === The Effect of Correlation
 
@@ -218,4 +218,4 @@ The example below demonstrates this by providing a hard coded covariance matrix
 This results is a simulated outcome distribution with a higher standard deviation or larger spread from the mean.
 This measures the degree that higher correlation produces higher volatility in the random walk.
 
-image::images/math-expressions/mnorm2.png[]
+image::math-expressions/mnorm2.png[]
diff --git a/solr/solr-ref-guide/src/spatial-search.adoc b/solr/solr-ref-guide/modules/query-guide/pages/spatial-search.adoc
similarity index 99%
rename from solr/solr-ref-guide/src/spatial-search.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/spatial-search.adoc
index 23c6941..ac96a83 100644
--- a/solr/solr-ref-guide/src/spatial-search.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/spatial-search.adoc
@@ -173,7 +173,7 @@ For example, to find all documents within five kilometers of a given lat/lon poi
 
 This filter returns all results within a circle of the given radius around the initial point:
 
-image::images/spatial-search/circle.png[5KM radius]
+image::spatial-search/circle.png[5KM radius]
 
 
 === bbox
@@ -191,7 +191,7 @@ The rectangular shape is faster to compute and so it's sometimes used as an alte
 However, if the ideal goal is a circle but you want it to run faster, then instead consider using the RPT field and try a large `distErrPct` value like `0.1` (10% radius).
 This will return results outside the radius but it will do so somewhat uniformly around the shape.
 
-image::images/spatial-search/bbox.png[Bounding box]
+image::spatial-search/bbox.png[Bounding box]
 
 [IMPORTANT]
 ====
diff --git a/solr/solr-ref-guide/src/spell-checking.adoc b/solr/solr-ref-guide/modules/query-guide/pages/spell-checking.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/spell-checking.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/spell-checking.adoc
diff --git a/solr/solr-ref-guide/src/standard-query-parser.adoc b/solr/solr-ref-guide/modules/query-guide/pages/standard-query-parser.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/standard-query-parser.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/standard-query-parser.adoc
diff --git a/solr/solr-ref-guide/src/statistics.adoc b/solr/solr-ref-guide/modules/query-guide/pages/statistics.adoc
similarity index 97%
rename from solr/solr-ref-guide/src/statistics.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/statistics.adoc
index 5644bcf..2427c90 100644
--- a/solr/solr-ref-guide/src/statistics.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/statistics.adoc
@@ -68,7 +68,7 @@ Samples of this size can be used to reliably estimate the statistics for very la
 
 The `describe` function can also be visualized in a table with Zeppelin-Solr:
 
-image::images/math-expressions/describe.png[]
+image::math-expressions/describe.png[]
 
 
 == Histograms and Frequency Tables
@@ -138,15 +138,15 @@ When this expression is sent to the `/stream` handler it responds with:
 
 With Zeppelin-Solr the histogram can be first visualized as a table:
 
-image::images/math-expressions/histtable.png[]
+image::math-expressions/histtable.png[]
 
 Then the histogram can be visualized with an area chart by plotting the *mean* of the bins on the *x-axis* and the *prob* (probability) on the *y-axis*:
 
-image::images/math-expressions/hist.png[]
+image::math-expressions/hist.png[]
 
 The cumulative probability can be plotted by switching the *y-axis* to the *cumProb* column:
 
-image::images/math-expressions/cumProb.png[]
+image::math-expressions/cumProb.png[]
 
 === Custom Histograms
 
@@ -169,7 +169,7 @@ Then an `array` of labels is created and set to variable *l*.
 Finally the `zplot` function is used to plot the labels vector and the `count(*)` column.
 Notice the `col` function is used inside of the `zplot` function to extract the counts from the `stats` results.
 
-image::images/math-expressions/custom-hist.png[]
+image::math-expressions/custom-hist.png[]
 
 
 === Frequency Tables
@@ -242,11 +242,11 @@ When this expression is sent to the `/stream` handler it responds with:
 
 With Zeppelin-Solr the frequency table can be first visualized as a table:
 
-image::images/math-expressions/freqTable.png[]
+image::math-expressions/freqTable.png[]
 
 The frequency table can then be plotted by switching to a scatter chart and selecting the *value* column for the *x-axis* and the *count* column for the *y-axis*
 
-image::images/math-expressions/freqTable1.png[]
+image::math-expressions/freqTable1.png[]
 
 Notice that the visualization nicely displays the frequency of daily change in stock prices rounded to integers.
 The most frequently occurring value is 0 with 1494 occurrences followed by -1 and 1 with around 700 occurrences.
@@ -337,7 +337,7 @@ Notice that the variable *p* is used to specify the list of percentiles that are
 Finally `zplot` is used to plot the percentiles sequence on the *x-axis* and the calculated percentile values for both distributions on the *y-axis*.
 And a line plot is used to visualize the QQ plot.
 
-image::images/math-expressions/quantile-plot.png[]
+image::math-expressions/quantile-plot.png[]
 
 This quantile plot provides a clear picture of the distributions of daily price changes for *amzn* and *googl*.
 In the plot the *x-axis* is the percentiles and the *y-axis* is the percentile value calculated.
@@ -366,7 +366,7 @@ The type of correlation is specified by adding the *type* named parameter in the
 In the example below a random sample containing two fields, `filesize_d` and `response_d`, is drawn from the logs collection using the `random` function.
 The fields are vectorized into the variables *x* and *y* and then *Spearman's* correlation for the two vectors is calculated using the `corr` function.
 
-image::images/math-expressions/correlation.png[]
+image::math-expressions/correlation.png[]
 
 ==== Correlation Matrices
 
@@ -390,14 +390,14 @@ Another way to look at this is it shows how the different complaint types tend t
 
 Finally the `zplot` function is used to plot the correlation matrix as a heat map.
 
-image::images/math-expressions/corrmatrix.png[]
+image::math-expressions/corrmatrix.png[]
 
 Notice in the example the correlation matrix is square with complaint types shown on both the *x* and y-axises.
 The color of the cells in the heat map shows the intensity of the correlation between the complaint types.
 
 The heat map is interactive, so mousing over one of the cells pops up the values for the cell.
 
-image::images/math-expressions/corrmatrix2.png[]
+image::math-expressions/corrmatrix2.png[]
 
 Notice that HEAT/HOT WATER and UNSANITARY CONDITION complaints have a correlation of 8 (rounded to the nearesttenth).
 
@@ -410,7 +410,7 @@ The `cov` function calculates the covariance of two vectors of data.
 In the example below a random sample containing two fields, `filesize_d` and `response_d`, is drawn from the logs collection using the `random` function.
 The fields are vectorized into the variables *x* and *y* and then the covariance for the two vectors is calculated using the `cov` function.
 
-image::images/math-expressions/covariance.png[]
+image::math-expressions/covariance.png[]
 
 If a matrix is passed to the `cov` function it will automatically compute a covariance matrix for the *columns* of the matrix.
 
diff --git a/solr/solr-ref-guide/src/stats-component.adoc b/solr/solr-ref-guide/modules/query-guide/pages/stats-component.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/stats-component.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/stats-component.adoc
diff --git a/solr/solr-ref-guide/src/stream-api.adoc b/solr/solr-ref-guide/modules/query-guide/pages/stream-api.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/stream-api.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/stream-api.adoc
diff --git a/solr/solr-ref-guide/src/stream-decorator-reference.adoc b/solr/solr-ref-guide/modules/query-guide/pages/stream-decorator-reference.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/stream-decorator-reference.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/stream-decorator-reference.adoc
diff --git a/solr/solr-ref-guide/src/stream-evaluator-reference.adoc b/solr/solr-ref-guide/modules/query-guide/pages/stream-evaluator-reference.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/stream-evaluator-reference.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/stream-evaluator-reference.adoc
diff --git a/solr/solr-ref-guide/src/stream-screen.adoc b/solr/solr-ref-guide/modules/query-guide/pages/stream-screen.adoc
similarity index 96%
rename from solr/solr-ref-guide/src/stream-screen.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/stream-screen.adoc
index 0478510..5267c31 100644
--- a/solr/solr-ref-guide/src/stream-screen.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/stream-screen.adoc
@@ -28,4 +28,4 @@ Under this, the streamed results are shown.
 A URL to be able to view the output in a browser is also available.
 
 .Stream Screen with query and results
-image::images/stream-screen/StreamScreen.png[image,height=400]
+image::stream-screen/StreamScreen.png[image,height=400]
diff --git a/solr/solr-ref-guide/src/stream-source-reference.adoc b/solr/solr-ref-guide/modules/query-guide/pages/stream-source-reference.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/stream-source-reference.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/stream-source-reference.adoc
diff --git a/solr/solr-ref-guide/src/streaming-expressions.adoc b/solr/solr-ref-guide/modules/query-guide/pages/streaming-expressions.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/streaming-expressions.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/streaming-expressions.adoc
diff --git a/solr/solr-ref-guide/src/suggester.adoc b/solr/solr-ref-guide/modules/query-guide/pages/suggester.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/suggester.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/suggester.adoc
diff --git a/solr/solr-ref-guide/src/tagger-handler.adoc b/solr/solr-ref-guide/modules/query-guide/pages/tagger-handler.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/tagger-handler.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/tagger-handler.adoc
diff --git a/solr/solr-ref-guide/src/term-vector-component.adoc b/solr/solr-ref-guide/modules/query-guide/pages/term-vector-component.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/term-vector-component.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/term-vector-component.adoc
diff --git a/solr/solr-ref-guide/src/term-vectors.adoc b/solr/solr-ref-guide/modules/query-guide/pages/term-vectors.adoc
similarity index 99%
rename from solr/solr-ref-guide/src/term-vectors.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/term-vectors.adoc
index 4a7c348..7ca5527 100644
--- a/solr/solr-ref-guide/src/term-vectors.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/term-vectors.adoc
@@ -130,7 +130,7 @@ The `hashRollup` function then aggregates the bigrams and the `top` function emi
 
 Then Zeppelin-Solr is used to visualize the top 10 ten bigrams.
 
-image::images/math-expressions/text-analytics.png[]
+image::math-expressions/text-analytics.png[]
 
 Lucene/Solr analyzers can be configured in many different ways to support aggregations over NLP entities (people, places, companies, etc.) as well as tokens extracted with regular expressions or dictionaries.
 
diff --git a/solr/solr-ref-guide/src/terms-component.adoc b/solr/solr-ref-guide/modules/query-guide/pages/terms-component.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/terms-component.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/terms-component.adoc
diff --git a/solr/solr-ref-guide/src/time-series.adoc b/solr/solr-ref-guide/modules/query-guide/pages/time-series.adoc
similarity index 94%
rename from solr/solr-ref-guide/src/time-series.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/time-series.adoc
index c24cb75..bd5d039 100644
--- a/solr/solr-ref-guide/src/time-series.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/time-series.adoc
@@ -77,7 +77,7 @@ When this expression is sent to the `/stream` handler it responds with:
 
 Using Zeppelin-Solr this time series can be visualized using a line chart.
 
-image::images/math-expressions/timeseries1.png[]
+image::math-expressions/timeseries1.png[]
 
 
 == Vectorizing the Time Series
@@ -88,7 +88,7 @@ The `col` function can be used to copy a column of data from a list of tuples in
 The expression below demonstrates the vectorization of the `date_dt` and `avg(close_d)` fields.
 The `zplot` function is then used to plot the months on the x-axis and the average closing prices on the y-axis.
 
-image::images/math-expressions/timeseries2.png[]
+image::math-expressions/timeseries2.png[]
 
 
 == Smoothing
@@ -114,7 +114,7 @@ The `zplot` function is then used to plot the months on the x-axis, and the aver
 Notice that the `ltrim` function is used to trim the first 4 values from the x-axis and the average closing prices.
 This is done to line up the three arrays so they start from the 5th value.
 
-image::images/math-expressions/movingavg.png[]
+image::math-expressions/movingavg.png[]
 
 === Exponential Moving Average
 
@@ -124,7 +124,7 @@ This means that it is less of a lagging indicator than the simple moving average
 Below is an example that computes a moving average and exponential moving average and plots them along with the original y values.
 Notice how the exponential moving average is more sensitive to changes in the y values.
 
-image::images/math-expressions/expmoving.png[]
+image::math-expressions/expmoving.png[]
 
 
 === Moving Median
@@ -134,7 +134,7 @@ In many cases the moving median will be more *robust* to outliers than moving av
 
 Below is an example computing the moving median:
 
-image::images/math-expressions/movingMedian.png[]
+image::math-expressions/movingMedian.png[]
 
 
 == Differencing
@@ -152,24 +152,24 @@ The examples below uses the first difference to make two time series stationary
 In this example we'll be comparing the average monthly closing price for two stocks: Amazon and Google.
 The image below plots both time series before differencing is applied.
 
-image::images/math-expressions/timecompare.png[]
+image::math-expressions/timecompare.png[]
 
 In the next example the `diff` function is applied to both time series inside the `zplot` function.
 The `diff` can be applied inside the `zplot` function or like any other function inside of the `let` function.
 
 Notice that both time series now have the trend removed and the monthly movements of the stock price can be studied without being influenced by the trend.
 
-image::images/math-expressions/diff1.png[]
+image::math-expressions/diff1.png[]
 
 In the next example the `zoom` function of the time series visualization is used to zoom into a specific range of months.
 This allows for closer inspection of the data.
 With closer inspection of the data there appears to be some correlation between the monthly movements of the two stocks.
 
-image::images/math-expressions/diffzoom.png[]
+image::math-expressions/diffzoom.png[]
 
 In the final example the differenced time series are correlated with the `corr` function.
 
-image::images/math-expressions/diffcorr.png[]
+image::math-expressions/diffcorr.png[]
 
 === Lagged Differences
 
@@ -181,14 +181,14 @@ The simple example below demonstrates how lagged differencing works.
 Notice that the array in the example follows a simple repeated pattern.
 This type of pattern is often displayed with seasonality.
 
-image::images/math-expressions/season.png[]
+image::math-expressions/season.png[]
 
 In this example we remove this pattern using the `diff` function with a lag of 4.
 This will subtract the value lagging four indexes behind the current index.
 Notice that the result set size is the original array size minus the lag.
 This is because the `diff` function only returns results for values where the lag of 4 is possible to compute.
 
-image::images/math-expressions/seasondiff.png[]
+image::math-expressions/seasondiff.png[]
 
 == Anomaly Detection
 
@@ -202,19 +202,19 @@ The daily stock data will provide a larger data set to study.
 
 In the example below the `search` expression is used to return the daily closing price for the ticker *AMZN* over a two year period.
 
-image::images/math-expressions/anomaly.png[]
+image::math-expressions/anomaly.png[]
 
 The next step is to apply the `movingMAD` function to the data to calculate the moving mean absolute deviation over a 10 day window.
 The example below shows the function being applied and visualized.
 
-image::images/math-expressions/mad.png[]
+image::math-expressions/mad.png[]
 
 Once the moving MAD has been calculated we can visualize the distribution of dispersion with the `empiricalDistribution` function.
 The example below plots the empirical distribution with 10 bins, creating a 10 bin histogram of the dispersion of the time series.
 
 This visualization shows that most of the mean absolute deviations fall between 0 and 9.2 with the mean of the final bin at 11.94.
 
-image::images/math-expressions/maddist.png[]
+image::math-expressions/maddist.png[]
 
 The final step is to detect outliers in the series using the `outliers` function.
 The `outliers` function uses a probability distribution to find outliers in a numeric vector.
@@ -242,7 +242,7 @@ The final parameter is the original result set containing the `close_d` and `dat
 The output of the `outliers` function contains the results where an outlier was detected.
 In this case 5 results above the .99 probability threshold were detected.
 
-image::images/math-expressions/outliers.png[]
+image::math-expressions/outliers.png[]
 
 
 == Modeling
@@ -264,7 +264,7 @@ The fitted model is then directly plotted with `zplot` along with the original `
 
 The visualization shows the smooth line fit through the average closing price data.
 
-image::images/math-expressions/timemodel.png[]
+image::math-expressions/timemodel.png[]
 
 
 == Forecasting
@@ -283,4 +283,4 @@ The `predict` function uses the fitted model to predict values for the new x-axi
 The `zplot` function is then used to plot the `x10` vector on the x-axis and the `y10` vector and extrapolated model on the y-axis.
 Notice that the `y10` vector drops to zero where the observed data ends, but the forecast continues along the fitted curve of the model.
 
-image::images/math-expressions/forecast.png[]
+image::math-expressions/forecast.png[]
diff --git a/solr/solr-ref-guide/src/transform.adoc b/solr/solr-ref-guide/modules/query-guide/pages/transform.adoc
similarity index 90%
rename from solr/solr-ref-guide/src/transform.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/transform.adoc
index adc0610..fa0dc93 100644
--- a/solr/solr-ref-guide/src/transform.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/transform.adoc
@@ -32,11 +32,11 @@ Below is an example showing the `select` function wrapping a `search` function a
 The `recNum` function is a math expression which simply returns the current record number of the tuple.
 The `select` expression can call any math expression to compute new values.
 
-image::images/math-expressions/select1.png[]
+image::math-expressions/select1.png[]
 
 Below is an example using the `div` function to compute a new field from two existing fields:
 
-image::images/math-expressions/select-math.png[]
+image::math-expressions/select-math.png[]
 
 
 == Filtering Tuples
@@ -45,7 +45,7 @@ The `having` function can be used to filter tuples in the stream based on boolea
 
 In the example below the `having` function is filtering the output of the `facet` function to only emit tuples that have `count(*)` greater than 20404.
 
-image::images/math-expressions/having.png[]
+image::math-expressions/having.png[]
 
 
 == Paging
@@ -54,7 +54,7 @@ The *record number*, added with the `recNum` function, can be filtered on to sup
 
 In the example below the `and` function with nested `lt` and `gt` functions are used to select records within a specific record number range:
 
-image::images/math-expressions/search-page.png[]
+image::math-expressions/search-page.png[]
 
 
 == Handling Nulls
@@ -67,18 +67,18 @@ The first is a boolean expression, in this case `isNull`.
 The `if` function returns the second parameter if the boolean function returns true, and the third parameter if it returns false.
 In this case `isNull` is always true because its checking for a field in the tuples that is not included in the result set.
 
-image::images/math-expressions/select2.png[]
+image::math-expressions/select2.png[]
 
 `notNull` and `isNull` can also be used with the `having` function to filter out tuples with null values.
 
 The example below emits all the documents because it is evaluating `isNull` for a field that is not in the result set, which always returns true.
 
-image::images/math-expressions/having2.png[]
+image::math-expressions/having2.png[]
 
 The example below emits zero documents because it is evaluating `notNull` for
 a field that is not in the result set, which always returns false.
 
-image::images/math-expressions/having3.png[]
+image::math-expressions/having3.png[]
 
 == Regex Matching and Filtering
 
@@ -87,7 +87,7 @@ This allows for sophisticated regex matching over search results.
 
 The example below uses the `matches` function to return all records where the `complaint_type_s` field ends with *Commercial*.
 
-image::images/math-expressions/search-matches.png[]
+image::math-expressions/search-matches.png[]
 
 == Sorting
 
@@ -95,7 +95,7 @@ The `sort` and `top` function can be used to resort a result set in memory.
 The `sort` function sorts and returns the entire result set based on the sort criteria.
 The `top` function can be used to return the top N values in a result set based on the sort criteria.
 
-image::images/math-expressions/search-resort.png[]
+image::math-expressions/search-resort.png[]
 
 == Rollups
 
@@ -110,4 +110,4 @@ This requires enough memory to store all the distinct group by fields in memory,
 The example below shows a visualization of the top 5 complaint types from a random sample of the `nyc311` complaint database.
 The `top` function is used to select the top 5 complaint types based on the `count(*)` field output by the `hashRollup`.
 
-image::images/math-expressions/hashRollup.png[]
+image::math-expressions/hashRollup.png[]
diff --git a/solr/solr-ref-guide/src/variables.adoc b/solr/solr-ref-guide/modules/query-guide/pages/variables.adoc
similarity index 98%
rename from solr/solr-ref-guide/src/variables.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/variables.adoc
index 548ed1f..2df2df6 100644
--- a/solr/solr-ref-guide/src/variables.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/variables.adoc
@@ -188,12 +188,12 @@ When this expression is sent to the `/stream` handler it responds with:
 Using this approach variables can by visualized using Zeppelin-Solr.
 In the example below the arrays are shown in table format.
 
-image::images/math-expressions/variables.png[]
+image::math-expressions/variables.png[]
 
 Once in table format we can plot the variables using one of the plotting or charting visualizations.
 The example below shows variables plotted on a line chart:
 
-image::images/math-expressions/variables1.png[]
+image::math-expressions/variables1.png[]
 
 
 == Caching Variables
diff --git a/solr/solr-ref-guide/src/vector-math.adoc b/solr/solr-ref-guide/modules/query-guide/pages/vector-math.adoc
similarity index 98%
rename from solr/solr-ref-guide/src/vector-math.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/vector-math.adoc
index 504ec35..1803116 100644
--- a/solr/solr-ref-guide/src/vector-math.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/vector-math.adoc
@@ -58,7 +58,7 @@ The `zplot` function can be used to visualize vectors using Zeppelin-Solr.
 
 Let's first see what happens when we visualize the array function as a table.
 
-image::images/math-expressions/array.png[]
+image::math-expressions/array.png[]
 
 It appears as one row with a comma-delimited list of values.
 You'll find that you can't visualize this output
@@ -138,12 +138,12 @@ Now we have three tuples with `x` and `y` fields.
 
 Let's see how Zeppelin-Solr handles this output in table format:
 
-image::images/math-expressions/xy.png[]
+image::math-expressions/xy.png[]
 
 Now that we have `x` and `y` columns defined we can simply switch to one of the line charts
 and plugin the fields to plot using the chart settings:
 
-image::images/math-expressions/line1.png[]
+image::math-expressions/line1.png[]
 
 Each chart has settings which can be explored by clicking on *settings*.
 
@@ -151,7 +151,7 @@ You can switch between chart types for different types of visualizations.
 Below is an example of
 a bar chart:
 
-image::images/math-expressions/bar.png[]
+image::math-expressions/bar.png[]
 
 
 == Array Operations
diff --git a/solr/solr-ref-guide/src/visualization.adoc b/solr/solr-ref-guide/modules/query-guide/pages/visualization.adoc
similarity index 53%
rename from solr/solr-ref-guide/src/visualization.adoc
rename to solr/solr-ref-guide/modules/query-guide/pages/visualization.adoc
index 1cc02ea..8e6a2c7 100644
--- a/solr/solr-ref-guide/src/visualization.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/visualization.adoc
@@ -21,126 +21,126 @@
 
 === Result Tables
 
-image::images/math-expressions/search-sort.png[]
+image::math-expressions/search-sort.png[]
 
 === Random Sampling & Scatter Plots
 
-image::images/math-expressions/bivariate.png[]
+image::math-expressions/bivariate.png[]
 
 === Correlation Matrices and Heat Maps
 
-image::images/math-expressions/corrmatrix.png[]
+image::math-expressions/corrmatrix.png[]
 
 === Visualizing CSV Files
 
-image::images/math-expressions/csv.png[]
+image::math-expressions/csv.png[]
 
 === Probability Distributions
 
-image::images/math-expressions/dist.png[]
+image::math-expressions/dist.png[]
 
 === Histograms
 
-image::images/math-expressions/cumProb.png[]
+image::math-expressions/cumProb.png[]
 
 === Frequency Tables
 
-image::images/math-expressions/freqTable1.png[]
+image::math-expressions/freqTable1.png[]
 
 === Quantile Plots
 
-image::images/math-expressions/quantiles.png[]
+image::math-expressions/quantiles.png[]
 
 === Time Series Aggregation
 
-image::images/math-expressions/timeseries1.png[]
+image::math-expressions/timeseries1.png[]
 
 === Time Series With Moving Average
 
-image::images/math-expressions/movingavg.png[]
+image::math-expressions/movingavg.png[]
 
 === Time Series Forecast
 
-image::images/math-expressions/forecast.png[]
+image::math-expressions/forecast.png[]
 
 === Multiple Time Lines
 
-image::images/math-expressions/timecompare.png[]
+image::math-expressions/timecompare.png[]
 
 === Linear Regression
 
-image::images/math-expressions/linear.png[]
+image::math-expressions/linear.png[]
 
 === Knn Regression
 
-image::images/math-expressions/knnRegress.png[]
+image::math-expressions/knnRegress.png[]
 
 === Multivariate, Non-linear Regression with Residual Plot
 
-image::images/math-expressions/redwine1.png[]
+image::math-expressions/redwine1.png[]
 
 === Monte Carlo Simulations
 
-image::images/math-expressions/randomwalk5.png[]
+image::math-expressions/randomwalk5.png[]
 
 === Random Walks
 
-image::images/math-expressions/randomwalk6.png[]
+image::math-expressions/randomwalk6.png[]
 
 === Distance Matrices
 
-image::images/math-expressions/distance.png[]
+image::math-expressions/distance.png[]
 
 === DBSCAN Clustering
 
-image::images/math-expressions/dbscan1.png[]
+image::math-expressions/dbscan1.png[]
 
 === KMeans Clustering
 
-image::images/math-expressions/2DCluster1.png[]
+image::math-expressions/2DCluster1.png[]
 
 === Mapping Cluster Centroids
 
-image::images/math-expressions/centroidplot.png[]
+image::math-expressions/centroidplot.png[]
 
 === Convex Hulls
 
-image::images/math-expressions/convex2.png[]
+image::math-expressions/convex2.png[]
 
 === Significant Terms
 
-image::images/math-expressions/sterms.png[]
+image::math-expressions/sterms.png[]
 
 === Phrase Aggregation
 
-image::images/math-expressions/text-analytics.png[]
+image::math-expressions/text-analytics.png[]
 
 === Curve Fitting
 
-image::images/math-expressions/hfit.png[]
+image::math-expressions/hfit.png[]
 
 === Interpolation
 
-image::images/math-expressions/interpolate1.png[]
+image::math-expressions/interpolate1.png[]
 
 === Derivatives
 
-image::images/math-expressions/sined.png[]
+image::math-expressions/sined.png[]
 
 === Integrals
 
-image::images/math-expressions/integral.png[]
+image::math-expressions/integral.png[]
 
 === Convolutional Smoothing
 
-image::images/math-expressions/conv-smooth.png[]
+image::math-expressions/conv-smooth.png[]
 
 === Autocorrelation
 
-image::images/math-expressions/noise-autocorrelation.png[]
+image::math-expressions/noise-autocorrelation.png[]
 
 === Fourier Transform
 
-image::images/math-expressions/signal-fft.png[]
+image::math-expressions/signal-fft.png[]
 
 
diff --git a/solr/solr-ref-guide/modules/query-guide/querying-nav.adoc b/solr/solr-ref-guide/modules/query-guide/querying-nav.adoc
new file mode 100644
index 0000000..e1d045b
--- /dev/null
+++ b/solr/solr-ref-guide/modules/query-guide/querying-nav.adoc
@@ -0,0 +1,84 @@
+.Query Guide
+* xref:query-guide.adoc[]
+
+** xref:query-syntax-and-parsers.adoc[]
+*** xref:common-query-parameters.adoc[]
+*** xref:standard-query-parser.adoc[]
+*** xref:dismax-query-parser.adoc[]
+*** xref:edismax-query-parser.adoc[]
+*** xref:function-queries.adoc[]
+*** xref:local-params.adoc[]
+*** xref:json-request-api.adoc[]
+**** xref:json-query-dsl.adoc[]
+*** xref:searching-nested-documents.adoc[]
+*** xref:block-join-query-parser.adoc[]
+*** xref:join-query-parser.adoc[]
+*** xref:spatial-search.adoc[]
+*** xref:other-parsers.adoc[]
+*** xref:parallel-sql-interface.adoc[]
+**** xref:jdbc-dbvisualizer.adoc[]
+**** xref:jdbc-squirrel.adoc[]
+**** xref:jdbc-zeppelin.adoc[]
+**** xref:jdbc-python-jython.adoc[]
+**** xref:jdbc-r.adoc[]
+*** xref:query-screen.adoc[]
+
+** xref:enhancing-queries.adoc[]
+*** xref:spell-checking.adoc[]
+*** xref:suggester.adoc[]
+*** xref:morelikethis.adoc[]
+*** xref:query-re-ranking.adoc[]
+*** xref:learning-to-rank.adoc[]
+*** xref:tagger-handler.adoc[]
+*** xref:analytics.adoc[]
+**** xref:analytics-expression-sources.adoc[]
+**** xref:analytics-mapping-functions.adoc[]
+**** xref:analytics-reduction-functions.adoc[]
+*** xref:terms-component.adoc[]
+*** xref:term-vector-component.adoc[]
+*** xref:stats-component.adoc[]
+
+** xref:controlling-results.adoc[]
+*** xref:faceting.adoc[]
+*** xref:json-facet-api.adoc[]
+**** xref:json-faceting-domain-changes.adoc[]
+*** xref:collapse-and-expand-results.adoc[]
+*** xref:result-grouping.adoc[]
+*** xref:result-clustering.adoc[]
+*** xref:highlighting.adoc[]
+*** xref:query-elevation-component.adoc[]
+*** xref:document-transformers.adoc[]
+*** xref:response-writers.adoc[]
+*** xref:exporting-result-sets.adoc[]
+*** xref:pagination-of-results.adoc[]
+
+** xref:streaming-expressions.adoc[]
+*** xref:stream-source-reference.adoc[]
+*** xref:stream-decorator-reference.adoc[]
+*** xref:stream-evaluator-reference.adoc[]
+*** xref:math-expressions.adoc[]
+**** xref:visualization.adoc[]
+**** xref:math-start.adoc[]
+**** xref:loading.adoc[]
+**** xref:search-sample.adoc[]
+**** xref:transform.adoc[]
+**** xref:scalar-math.adoc[]
+**** xref:vector-math.adoc[]
+**** xref:variables.adoc[]
+**** xref:matrix-math.adoc[]
+**** xref:term-vectors.adoc[]
+**** xref:probability-distributions.adoc[]
+**** xref:statistics.adoc[]
+**** xref:regression.adoc[]
+**** xref:curve-fitting.adoc[]
+**** xref:time-series.adoc[]
+**** xref:numerical-analysis.adoc[]
+**** xref:dsp.adoc[]
+**** xref:simulations.adoc[]
+**** xref:machine-learning.adoc[]
+**** xref:graph.adoc[]
+**** xref:computational-geometry.adoc[]
+**** xref:logs.adoc[]
+*** xref:graph-traversal.adoc[]
+*** xref:stream-api.adoc[]
+*** xref:stream-screen.adoc[]
diff --git a/solr/solr-ref-guide/src/major-changes-in-solr-6.adoc b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-6.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/major-changes-in-solr-6.adoc
rename to solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-6.adoc
diff --git a/solr/solr-ref-guide/src/major-changes-in-solr-7.adoc b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-7.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/major-changes-in-solr-7.adoc
rename to solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-7.adoc
diff --git a/solr/solr-ref-guide/src/major-changes-in-solr-8.adoc b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-8.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/major-changes-in-solr-8.adoc
rename to solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-8.adoc
diff --git a/solr/solr-ref-guide/src/major-changes-in-solr-9.adoc b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-9.adoc
similarity index 100%
rename from solr/solr-ref-guide/src/major-changes-in-solr-9.adoc
rename to solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-9.adoc
diff --git a/solr/solr-ref-guide/src/solr-upgrade-notes.adoc b/solr/solr-ref-guide/modules/upgrade-notes/pages/solr-upgrade-notes.adoc
similarity index 88%
rename from solr/solr-ref-guide/src/solr-upgrade-notes.adoc
rename to solr/solr-ref-guide/modules/upgrade-notes/pages/solr-upgrade-notes.adoc
index 661f5dd..b8c8251 100644
--- a/solr/solr-ref-guide/src/solr-upgrade-notes.adoc
+++ b/solr/solr-ref-guide/modules/upgrade-notes/pages/solr-upgrade-notes.adoc
@@ -33,7 +33,7 @@ file found in your Solr package.
 That file includes all the changes and updates
 that may effect your existing implementation.
 
-Detailed steps for upgrading a Solr cluster are in the section <<upgrading-a-solr-cluster.adoc#,Upgrading a Solr Cluster>>.
+Detailed steps for upgrading a Solr cluster are in the section xref:deployment-guide:upgrading-a-solr-cluster.adoc[].
 
 == Upgrading to 9.x Releases (NOT RELEASED)
 
@@ -133,18 +133,18 @@ The old format is officially deprecated, and support for it is likely to be remo
 For the time-being the old format can be created by defining a parameter `incremental=false`.
 Again, though, this support is likely to be removed in Solr 9.0.
 
-More documentation on backups is available at <<backup-restore.adoc#,Backup and Restore>>.
+More documentation on backups is available at xref:deployment-guide:backup-restore.adoc[].
 
 New Collections API commands for backups:
 
 * LISTBACKUP: Lists information about each backup stored at the specified repository location.
-See <<collection-management.adoc#listbackup,List Backups>> for more details.
+See xref:deployment-guide:collection-management.adoc#listbackup[List Backups] for more details.
 * DELETEBACKUP: Deletes specified backups from the repository.
-See <<collection-management.adoc#deletebackup,Delete Backups>> for more details.
+See xref:deployment-guide:collection-management.adoc#deletebackup[Delete Backups] for more details.
 
 A new option for backup repository is also available in 8.9, which is to use Google Cloud Storage (GCS).
 This is a contrib (located in `contrib/gcs-repository`).
-See <<backup-restore.adoc#gcsbackuprepository,GCSBackupRepository>> for configuration details.
+See xref:deployment-guide:backup-restore.adoc#gcsbackuprepository[GCSBackupRepository] for configuration details.
 The Solr community is working to add support for S3 buckets in the near future.
 
 *Nested Docs*
@@ -158,15 +158,15 @@ There was no escaping here prior to 8.0 either.
 
 * BlockCollapse: If documents have been (or could be) indexed in a way where documents with the same collapse key have been indexed contiguously in the index, a new "block collapse" provides a significant speed improvement over traditional collapse.
 +
-See <<collapse-and-expand-results.adoc#block-collapsing,Block Collapsing>> for details.
+See xref:query-guide:collapse-and-expand-results.adoc#block-collapsing[Block Collapsing] for details.
 
 * Expand Null Groups: A new parameter `expand.nullGroup` allows an expanded group to be returned containing document with no value in the expanded field.
-See <<collapse-and-expand-results.adoc#expand-component,Expand Component>> for details.
+See xref:query-guide:collapse-and-expand-results.adoc#expand-component[Expand Component] for details.
 
 *In-Place Updates*
 
 A new request parameter `update.partial.requireInPlace=true` allows telling Solr to "fail fast" if all of the necessary conditions are not satisfied to allow an in-place update to succeed.
-See also <<partial-document-updates.adoc#in-place-updates,In-Place Updates>>.
+See also xref:indexing-guide:partial-document-updates.adoc#in-place-updates[In-Place Updates].
 
 *Metrics History*
 
@@ -203,7 +203,7 @@ The contrib will be re-introduced in Solr 9.0.
 
 * Interleaving support has been added to Learning to Rank (LTR).
 Currently only the Team Draft Interleaving algorithm is supported.
-For examples using this feature, see the section <<learning-to-rank.adoc#running-a-rerank-query-interleaving-two-models,Running a Rerank Query Interleaving Two Models>>.
+For examples using this feature, see the section xref:query-guide:learning-to-rank.adoc#running-a-rerank-query-interleaving-two-models[Running a Rerank Query Interleaving Two Models].
 
 *Metrics*
 
@@ -214,7 +214,7 @@ For examples using this feature, see the section <<learning-to-rank.adoc#running
 *Prometheus Exporter*
 
 * The `./bin` scripts included with the Prometheus Exporter contrib now allow use of custom java options with environment variables.
-See the section <<monitoring-with-prometheus-and-grafana.adoc#environment-variable-options,Environment Variable Options>> for more details.
+See the section <xref:deployment-guide:monitoring-with-prometheus-and-grafana.adoc#environment-variable-options[Environment Variable Options] for more details.
 * The default Grafana dashboards now include panels for query performance monitoring.
 The default Prometheus Exporter configuration includes metrics like queries-per-second (QPS) and 95th percentiles (P95) to populate the new panels.
 * The default Prometheus Exporter configuration also includes the two new metrics mentioned in the Metrics above.
@@ -271,7 +271,7 @@ Corresponding
 This functionality has only changed in terms of parameter names changed, and we do not expect any back-compatibility issues on upgrade to 8.7 or even 9.0 later.
 +
 However, users should update their `solrconfig.xml` files after completing the upgrade on all nodes of a cluster.
-Comparing your configuration to the updated configuration examples in <<user-managed-index-replication.adoc#,Index Replication>> will show examples of what needs to change, but here are the main changes:
+Comparing your configuration to the updated configuration examples in xref:deployment-guide:user-managed-index-replication.adoc[] will show examples of what needs to change, but here are the main changes:
 +
 . On the replication leader, in the definition of the `/replication` request handler:
 .. Replace "master" with "leader".
@@ -286,7 +286,7 @@ This file can be named anything, so you can change it to whatever you'd like to
 
 * Performance enhancements for the `relatedness()` statistics function are included with 8.7.
 These yield the highest benefits with high-cardinality fields and can be disabled if working with lower cardinality fields with a new `sweep_collection` parameter.
-See the section <<json-facet-api.adoc#relatedness-options,relatedness() Options>> for details.
+See the section xref:query-guide:json-facet-api.adoc#relatedness-options[relatedness() Options] for details.
 
 *solr.in.sh / solr.in.cmd*
 
@@ -301,7 +301,7 @@ By default, this parameter is set to the same value as `SOLR_STOP_WAIT`.
 
 *Configsets*
 
-* It's now possible to overwrite an existing configset when uploading changes by supplying the `overwrite=true` parameter to the <<configsets-api.adoc#configsets-upload,Configset API>>.
+* It's now possible to overwrite an existing configset when uploading changes by supplying the `overwrite=true` parameter to the xref:configuration-guide:configsets-api.adoc#configsets-upload[Configset API].
 +
 A related parameter is `cleanup=true`, which allows deleting any files from the old configset that are left behind after the overwrite.
 +
@@ -359,7 +359,7 @@ It is guaranteed that the hit count is accurate up to the value of `minExactCoun
 
 A new boolean attribute `numFoundExact` is included in all responses to indicate if the hit count in the response is expected to be exact or not.
 
-More information about this new feature is available in the section <<common-query-parameters.adoc#minexactcount-parameter,minExactCount Parameter>>.
+More information about this new feature is available in the section xref:query-guide:common-query-parameters.adoc#minexactcount-parameter[minExactCount Parameter].
 
 *Autoscaling*
 
@@ -382,7 +382,7 @@ When using the `solr.xml` file that ships with 8.6, you can configure the list o
 Please see `bin/solr.in.sh` or `bin\solr.in.cmd` for example usage.
 Using the value `*` will allow any path as in earlier versions.
 +
-For more on this, see the section <<configuring-solr-xml.adoc#the-solr-element,Solr.xml Parameters>>.
+For more on this, see the section xref:configuration-guide:configuring-solr-xml.adoc#the-solr-element[Solr.xml Parameters].
 +
 Windows SMB shares on the UNC format, such as `\\myhost\myshare\mypath` are now always disallowed.
 Please use drive letter mounts instead, i.e., `S:\mypath`.
@@ -397,7 +397,7 @@ A new link will also appear in the left-hand navigation to allow a user to log o
 
 * The `/export` handler now supports streaming expressions to allow limiting the output of the export to only matching documents.
 +
-For more information about how to use this, see the section <<exporting-result-sets.adoc#specifying-the-local-streaming-expression,Specifying the Local Streaming Expression>>.
+For more information about how to use this, see the section xref:query-guide:exporting-result-sets.adoc#specifying-the-local-streaming-expression[Specifying the Local Streaming Expression].
 
 * The `stats`, `facet`, and `timeseries` expressions now support percentiles and standard deviation aggregations.
 
@@ -450,7 +450,7 @@ If you are upgrading Solr with an atomic restart strategy:
 * If you don’t use async or REQUESTSTATUS operations, you should be able to restart and not see any issues.
 * If you do use Collection API operations:
 . Pause Collection API operations.
-. Cleanup queues (See the section <<collections-api.adoc#deletestatus,DELETESTATUS>> for examples)
+. Cleanup queues (See the section xref:configuration-guide:collections-api.adoc#deletestatus[DELETESTATUS] for examples)
 if you use async operations.
 . Upgrade and restart the nodes.
 . Resume all normal operations.
@@ -463,7 +463,7 @@ any issues.
 way is to:
 . Pause Collection API operations.
 . Upgrade and restart all nodes.
-. Cleanup queues (See the section <<collections-api.adoc#deletestatus,DELETESTATUS>> for examples)
+. Cleanup queues (See the section xref:configuration-guide:collections-api.adoc#deletestatus[DELETESTATUS] for examples)
 if you use async operations.
 . Resume all normal operations.
 
@@ -495,17 +495,17 @@ Solr has two new parameters to allow you to restrict access to Solr using IP add
 Use `SOLR_IP_WHITELIST` to configure a whitelist, and `SOLR_IP_BLACKLIST` to configure a blacklist.
 These properties are defined in `solr.in.sh` or `solr.in.cmd`.
 
-See also the section <<securing-solr.adoc#ip-access-control,Enable IP Access Control>>.
+See also the section xref:deployment-guide:securing-solr.adoc#ip-access-control[Enable IP Access Control].
 
 *BlockJoin Facet Deprecation*
 
 The BlockJoinFacetComponent is marked for deprecation and will be removed in 9.0.
 Users are encouraged to migrate to `uniqueBlock()` in JSON Facet API.
-More information about this is available in the section <<json-faceting-domain-changes.adoc#block-join-domain-changes,Block Join Domain Changes>>.
+More information about this is available in the section xref:query-guide:json-faceting-domain-changes.adoc#block-join-domain-changes[Block Join Domain Changes].
 
 *Caching with the Boolean Query Parser*
 
-By default, the <<other-parsers.adoc#boolean-query-parser,Boolean Query Parser>> caches queries in Solr's filterCache.
+By default, the xref:query-guide:other-parsers.adoc#boolean-query-parser[Boolean Query Parser] caches queries in Solr's filterCache.
 It's now possible to disable this with the local param `cache=false`.
 
 *Indexing Log Files*
@@ -513,12 +513,12 @@ It's now possible to disable this with the local param `cache=false`.
 Solr now includes a command line tool, `bin/postlogs` which will index Solr's log files into a collection.
 This provides an easy way to use Solr or visualization tools (such as Zeppelin) to troubleshoot problems with the system.
 
-This tool is not yet officially documented in the Reference Guide, but draft documentation is available in a branch and can be accessed https://github.com/apache/lucene-solr/blob/visual-guide/solr/solr-ref-guide/src/logs.adoc[via GitHub^].
+See the documentation for more details at xref:query-guide:logs.adoc[].
 
 *Highlighting*
 
 Solr's Unified Highlighter now has two parameters to help control passage sizing, `hl.fragAlignRatio` and `hl.fragsizeIsMinimum`.
-See the section <<highlighting.adoc#unified-highlighter,Unified Highlighter>> for details about these new parameters.
+See the section xref:query-guide:highlighting.adoc#unified-highlighter[Unified Highlighter] for details about these new parameters.
 Regardless of the settings, the passages may be sized differently than before.
 _Warning: These default settings were found to be a significant performance regression for apps that highlight lots of text with the default sentence break iterator.
 See the 8.6 upgrade notes for advise you can apply in 8.5._
@@ -556,7 +556,7 @@ to Solr.
 The system is currently considered experimental, so use with caution.
 It must
 be enabled with a system parameter passed at start up before it can be used.
-For details, please see the section <<package-manager.adoc#,Package Management>>.
+For details, please see the section xref:configuration-guide:package-manager.adoc[].
 
 With this feature Solr's Blob Store functionality is now deprecated and will likely be removed in 9.0.
 
@@ -576,7 +576,7 @@ the `/browse` sample search interface) are no longer enabled out of the box.
 ** The XSLT and Velocity response writers.
 +
 All of these items can be added to your Solr implementation by manually editing
-`solrconfig.xml` to add them back in, or use the <<config-api.adoc#,Config API>>.
+`solrconfig.xml` to add them back in, or use the xref:configuration-guide:config-api.adoc[].
 +
 The `sample_techproducts_configs` and the examples found in `./example` are unchanged.
 
@@ -591,14 +591,11 @@ directives, their corresponding collections will not load (they will cease to
 work).
 You have a few options in this case:
 
-** You can secure your Solr instance with <<authentication-and-authorization-plugins.adoc#,authentication>>
-and re-upload the configset (using the `bin/solr zk upconfig ...`
-<<solr-control-script-reference.adoc#,Solr CLI>> command);
+** You can secure your Solr instance with xref:deployment-guide:authentication-and-authorization-plugins.adoc[authentication] and re-upload the configset (using the `bin/solr zk upconfig ...` xref:deployment-guide:solr-control-script-reference.adoc[Solr CLI] command);
 ** You can put your custom Jars in Solr's classpath instead of `lib` directories;
 ** You can try the new package management system to manage your custom Jars.
 +
-See the section <<configsets-api.adoc#configsets-upload,Upload a Configset>>
- for more details about trusted vs. untrusted configsets.
+See the section xref:configuration-guide:configsets-api.adoc#configsets-upload[Upload a Configset] for more details about trusted vs. untrusted configsets.
 
 * Our default Jetty configuration has been updated to now set a
 Content-Security-Policy (CSP) by default.
@@ -619,9 +616,7 @@ It has been replaced with the new package management system.
 
 *Using Collapse with Group Disallowed*
 
-Using the <<collapse-and-expand-results.adoc#,CollapsingQueryParser>>
-with <<result-grouping.adoc#,Result Grouping>> has never been
-supported as it causes inconsistent behavior and NullPointerException errors.
+Using the xref:query-guide:collapse-and-expand-results.adoc[CollapsingQueryParser] with xref:query-guide:result-grouping.adoc[] has never been supported as it causes inconsistent behavior and NullPointerException errors.
 We have now explicitly disallowed this combination to prevent these errors.
 If you are using these together, you will need to modify your queries.
 
@@ -630,8 +625,7 @@ If you are using these together, you will need to modify your queries.
 * SolrJ now supports the `shards.preference` parameter for single-shard
 scenarios to ensure multi-shard and single-shard request routing works in the same way.
 +
-See <<solrj.adoc#cloud-request-routing,Cloud Request Routing>> and
-<<solrcloud-distributed-requests.adoc#shards-preference-parameter,shards.preference Parameter>> for details.
+See xref:deployment-guide:solrj.adoc#cloud-request-routing[Cloud Request Routing] and xref:deployment-guide:solrcloud-distributed-requests.adoc#shards-preference-parameter[shards.preference Parameter] for details.
 
 * `QueryResponse.getExplainMap()` type has changed from `Map<String, String>` to `Map<String, Object>` in order to support structured explanations.
 +
@@ -692,7 +686,7 @@ Since caching has a direct impact on the performance of your Solr
 * A new parameter, `maxIdleTime`, allows automatic eviction of cache items that have not been used in the defined amount of time.
 This allows the cache to release some memory and should aid those who want or need to fine-tune their caches.
 
-See the section <<caches-warming.adoc#,Caches and Query Warming>> for more details about these and other cache options and parameters.
+See the section xref:configuration-guide:caches-warming.adoc[] for more details about these and other cache options and parameters.
 
 === Solr 8.2
 
@@ -709,7 +703,7 @@ It is recommended that external ensembles set up to work with Solr also be updat
 This ZooKeeper release includes many new security features.
 In order for Solr's Admin UI to work with 3.5.5, the `zoo.cfg` file must allow access to ZooKeeper's "four-letter commands".
 At a minimum, `ruok`, `conf`, and `mntr` must be enabled, but other commands can optionally be enabled if you choose.
-See the section <<zookeeper-ensemble.adoc#configuration-for-a-zookeeper-ensemble,Configuration for a ZooKeeper Ensemble>> for details.
+See the section xref:deployment-guide:zookeeper-ensemble.adoc#configuration-for-a-zookeeper-ensemble[Configuration for a ZooKeeper Ensemble] for details.
 
 [WARNING]
 Until 8.3, https://issues.apache.org/jira/browse/SOLR-13672[SOLR-13672] causes the ZK Status screen in the Admin UI to not be able to report status.
@@ -733,7 +727,7 @@ Collections created with older versions will continue to work.
 *Distributed Tracing Support*
 
 This release adds support for tracing requests in Solr.
-Please review the section <<distributed-tracing.adoc#,Distributed Tracing>> for details on how to configure this feature.
+Please review the section xref:deployment-guide:distributed-tracing.adoc[] for details on how to configure this feature.
 
 === Solr 8.1
 
@@ -753,18 +747,18 @@ An identical parameter is available in `solrconfig.xml` for limiting the size of
 +
 If your use case demands that you a lot of OR or AND clauses in your queries, upon upgrade to 8.1 you may need to adjust the global `maxBooleanClauses` parameter since between 7.0 and 8.1 the limit was effectively unbounded.
 +
-For more information about the new parameter, see the section <<configuring-solr-xml.adoc#global-maxbooleanclauses,Format of solr.xml: maxBooleanClauses>>.
+For more information about the new parameter, see the section xref:configuration-guide:configuring-solr-xml.adoc#global-maxbooleanclauses[maxBooleanClauses].
 
 *Security*
 
 * JSON Web Tokens (JWT) are now supported for authentication.
 These allow Solr to assert a user is already authenticated via an external identity provider, such as an OpenID Connect-enabled IdP.
-For more information, see the section <<jwt-authentication-plugin.adoc#,JWT Authentication Plugin>>.
+For more information, see the section xref:deployment-guide:jwt-authentication-plugin.adoc[].
 
 * A new security plugin for audit logging has been added.
 A default class `SolrLogAuditLoggerPlugin` is available and configurable in `security.json`.
 The base class is also extendable for adding custom audit plugins if needed.
-See the section <<audit-logging.adoc#,Audit Logging>> for more information.
+See the section xref:deployment-guide:audit-logging.adoc[] for more information.
 
 *Collections API*
 
@@ -775,13 +769,13 @@ Previously, it always returned `0`, even in failure.
 
 * The MODIFYCOLLECTION command now accepts an attribute to set a collection as read-only.
 This can be used to block a collection from receiving any updates while still allowing queries to be served.
-See the section <<collection-management.adoc#modifycollection,MODIFYCOLLECTION>> for details on how to use it.
+See the section xref:deployment-guide:collection-management.adoc#modifycollection[MODIFYCOLLECTION] for details on how to use it.
 
 * A new command RENAME allows renaming a collection by setting up a one-to-one alias using the new name.
-For more information, see the section <<collection-management.adoc#rename,RENAME>>.
+For more information, see the section xref:deployment-guide:collection-management.adoc#rename[RENAME].
 
 * A new command REINDEXCOLLECTION allows indexing existing stored fields from a source collection into a new collection.
-For more information, please see the section <<collection-management.adoc#reindexcollection,REINDEXCOLLECTION>>.
+For more information, please see the section xref:deployment-guide:collection-management.adoc#reindexcollection[REINDEXCOLLECTION].
 
 *Logging*
 
@@ -812,7 +806,7 @@ If you prefer to use CMS or any other GC method, you can modify the `GC_TUNE` se
 == Upgrading from 7.x Releases
 
 The upgrade from 7.x to Solr 8.0 introduces several major changes that you should be aware of before upgrading.
-These changes are described in the section <<major-changes-in-solr-8.adoc#,Major Changes in Solr 8>>.
+These changes are described in the section xref:major-changes-in-solr-8.adoc[].
 It's strongly recommended that you do a thorough review of that section before starting your upgrade.
 
 [NOTE]
@@ -823,6 +817,6 @@ If you run in SolrCloud mode, you must be on Solr version 7.3 or higher in order
 Users upgrading from versions of Solr prior to 7.x are strongly encouraged to consult {solr-javadocs}/changes/Changes.html[`CHANGES.txt`] for the details of _all_ changes since the version they are upgrading from.
 
 The upgrade from Solr 6.x to Solr 7.0 introduced several *major* changes that you should be aware of before upgrading.
-Please do a thorough review of the section <<major-changes-in-solr-7.adoc#,Major Changes in Solr 7>> before starting your upgrade.
+Please do a thorough review of the section xref:major-changes-in-solr-7.adoc[] before starting your upgrade.
 
-A summary of the significant changes between Solr 5.x and Solr 6.0 is in the section <<major-changes-in-solr-6.adoc#,Major Changes in Solr 6>>.
+A summary of the significant changes between Solr 5.x and Solr 6.0 is in the section xref:major-changes-in-solr-6.adoc[].
diff --git a/solr/solr-ref-guide/modules/upgrade-notes/upgrade-nav.adoc b/solr/solr-ref-guide/modules/upgrade-notes/upgrade-nav.adoc
new file mode 100644
index 0000000..844b76a
--- /dev/null
+++ b/solr/solr-ref-guide/modules/upgrade-notes/upgrade-nav.adoc
@@ -0,0 +1,6 @@
+.Solr Upgrade Notes
+* xref:solr-upgrade-notes.adoc[]
+** xref:major-changes-in-solr-9.adoc[]
+** xref:major-changes-in-solr-8.adoc[]
+** xref:major-changes-in-solr-7.adoc[]
+** xref:major-changes-in-solr-6.adoc[]
diff --git a/solr/solr-ref-guide/package-lock.json b/solr/solr-ref-guide/package-lock.json
new file mode 100644
index 0000000..048b63c
--- /dev/null
+++ b/solr/solr-ref-guide/package-lock.json
@@ -0,0 +1,1888 @@
+{
+  "requires": true,
+  "lockfileVersion": 1,
+  "dependencies": {
+    "@antora/asciidoc-loader": {
+      "version": "3.0.0-alpha.9",
+      "resolved": "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-3.0.0-alpha.9.tgz",
+      "integrity": "sha512-fAhx0BdNtEWy6p26Cde5sXlm5KfNAEiNrvuA57CvP88bZAyoeEkW5DqPZBbAIKpu4RNNFLKhWHQ8h2UCsxFxAQ==",
+      "requires": {
+        "@antora/logger": "3.0.0-alpha.9",
+        "@antora/user-require-helper": "~2.0",
+        "@asciidoctor/core": "~2.2"
+      }
+    },
+    "@antora/content-aggregator": {
+      "version": "3.0.0-alpha.9",
+      "resolved": "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-3.0.0-alpha.9.tgz",
+      "integrity": "sha512-sxJpLDky6PPBeC0KX9LL/7Q2/SCu3gOhZW/7tGqZXClu6o2lDIXnIYNQYULIpjjbUIy+Yg4lcTjf+o0Xn+hR6w==",
+      "requires": {
+        "@antora/expand-path-helper": "~2.0",
+        "@antora/user-require-helper": "~2.0",
+        "braces": "~3.0",
+        "cache-directory": "~2.0",
+        "camelcase-keys": "~6.2",
+        "hpagent": "~0.1.0",
+        "isomorphic-git": "~1.10",
+        "js-yaml": "~4.1",
+        "matcher": "~4.0",
+        "multi-progress": "~4.0",
+        "picomatch": "~2.3",
+        "progress": "~2.0",
+        "should-proxy": "~1.0",
+        "simple-get": "~4.0",
+        "vinyl": "~2.2",
+        "vinyl-fs": "~3.0"
+      }
+    },
+    "@antora/content-classifier": {
+      "version": "3.0.0-alpha.9",
+      "resolved": "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-3.0.0-alpha.9.tgz",
+      "integrity": "sha512-LlE/claJ+lE7M/kBPILMYXD9IpcSHFH3Fn1AgqUJbstYeKRpLbHJCKAaoRSJEvBB4JBuVBx19oV6NhD8pUpDPw==",
+      "requires": {
+        "@antora/logger": "3.0.0-alpha.9",
+        "mime-types": "~2.1",
+        "vinyl": "~2.2"
+      }
+    },
+    "@antora/document-converter": {
+      "version": "3.0.0-alpha.9",
+      "resolved": "https://registry.npmjs.org/@antora/document-converter/-/document-converter-3.0.0-alpha.9.tgz",
+      "integrity": "sha512-/WxTBjsT+cHQOEvRNnMT6Ox3WZcDPU+QkRjIZcmdxE4uu1yfrJ/YEHi9gA6Yzvs92Ai02AzrRtEs3P4vK1+1Ag==",
+      "requires": {
+        "@antora/asciidoc-loader": "3.0.0-alpha.9"
+      }
+    },
+    "@antora/expand-path-helper": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/@antora/expand-path-helper/-/expand-path-helper-2.0.0.tgz",
+      "integrity": "sha512-CSMBGC+tI21VS2kGW3PV7T2kQTM5eT3f2GTPVLttwaNYbNxDve08en/huzszHJfxo11CcEs26Ostr0F2c1QqeA=="
+    },
+    "@antora/logger": {
+      "version": "3.0.0-alpha.9",
+      "resolved": "https://registry.npmjs.org/@antora/logger/-/logger-3.0.0-alpha.9.tgz",
+      "integrity": "sha512-Gg0LL1b0RAae+EuMzaY1s6sYp2w8E9FmCT5bo9cyp0nWv84Pl4VNURnGkGkAUVrkVuky/MIbqn8lujdOgjLO2g==",
+      "requires": {
+        "@antora/expand-path-helper": "~2.0",
+        "pino": "~6.13",
+        "pino-pretty": "~6.0",
+        "sonic-boom": "~2.1"
+      }
+    },
+    "@antora/navigation-builder": {
+      "version": "3.0.0-alpha.9",
+      "resolved": "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-3.0.0-alpha.9.tgz",
+      "integrity": "sha512-i6BIC7AxfbDHaI8jAttmusa/2Xme7AF/M0EzZw7+5p/NVMBgx2NqTJsu0HXK9mg8sue2Mb3SvhXLQEe5PRvUpA==",
+      "requires": {
+        "@antora/asciidoc-loader": "3.0.0-alpha.9"
+      }
+    },
+    "@antora/page-composer": {
+      "version": "3.0.0-alpha.9",
+      "resolved": "https://registry.npmjs.org/@antora/page-composer/-/page-composer-3.0.0-alpha.9.tgz",
+      "integrity": "sha512-GAy2GCVcGxfxANSViuZ212T1dtfcIGbiFeCzkefhCsU56h4FVe/dorv7KSWf1bnmVoibHKaX18JaRU4GidDfww==",
+      "requires": {
+        "@antora/logger": "3.0.0-alpha.9",
+        "handlebars": "~4.7",
+        "require-from-string": "~2.0"
+      }
+    },
+    "@antora/playbook-builder": {
+      "version": "3.0.0-alpha.9",
+      "resolved": "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-3.0.0-alpha.9.tgz",
+      "integrity": "sha512-gP27VisP+4a3MR+g6YenLFRVlc4yUAom0tHue7yQsqXxE8JyEwccPM3FpbubAWuBj4ETzILvfIy6odBwBdRyHA==",
+      "requires": {
+        "@antora/logger": "3.0.0-alpha.9",
+        "@iarna/toml": "~2.2",
+        "camelcase-keys": "~6.2",
+        "convict": "~6.1",
+        "js-yaml": "~4.1",
+        "json5": "~2.2"
+      }
+    },
+    "@antora/redirect-producer": {
+      "version": "3.0.0-alpha.9",
+      "resolved": "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-3.0.0-alpha.9.tgz",
+      "integrity": "sha512-F4M+dv/230WIHWTic2i6+tRAHZLNGnFlHJvSuS09K0tQ40Z50ToUe0q6267H0DPo55slUZ1wBqeD89aN+5HPnQ==",
+      "requires": {
+        "@antora/asciidoc-loader": "3.0.0-alpha.9",
+        "vinyl": "~2.2"
+      }
+    },
+    "@antora/site-generator-default": {
+      "version": "3.0.0-alpha.10",
+      "resolved": "https://registry.npmjs.org/@antora/site-generator-default/-/site-generator-default-3.0.0-alpha.10.tgz",
+      "integrity": "sha512-6QhENIBu3mNGgfBIl+gC67YUJHV1j8EkGz4kWdqfL4P6a93/x/EVWT6GiDhAazxSuT7NFYv1kW+RDA0AetCSGg==",
+      "requires": {
+        "@antora/asciidoc-loader": "3.0.0-alpha.10",
+        "@antora/content-aggregator": "3.0.0-alpha.10",
+        "@antora/content-classifier": "3.0.0-alpha.10",
+        "@antora/document-converter": "3.0.0-alpha.10",
+        "@antora/navigation-builder": "3.0.0-alpha.10",
+        "@antora/page-composer": "3.0.0-alpha.10",
+        "@antora/playbook-builder": "3.0.0-alpha.10",
+        "@antora/redirect-producer": "3.0.0-alpha.10",
+        "@antora/site-mapper": "3.0.0-alpha.10",
+        "@antora/site-publisher": "3.0.0-alpha.10",
+        "@antora/ui-loader": "3.0.0-alpha.10",
+        "@antora/user-require-helper": "~2.0"
+      },
+      "dependencies": {
+        "@antora/asciidoc-loader": {
+          "version": "3.0.0-alpha.10",
+          "resolved": "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-3.0.0-alpha.10.tgz",
+          "integrity": "sha512-79tQSwCDg9YJ0OUivwRT6AZ8xO0kqrdZcUVMVRkB2IjK4Bsa5jjc1+1zMO6FxfSv00WU0HfpgAJZHKbPsfIUBA==",
+          "requires": {
+            "@antora/logger": "3.0.0-alpha.10",
+            "@antora/user-require-helper": "~2.0",
+            "@asciidoctor/core": "~2.2"
+          }
+        },
+        "@antora/content-aggregator": {
+          "version": "3.0.0-alpha.10",
+          "resolved": "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-3.0.0-alpha.10.tgz",
+          "integrity": "sha512-sguVx8dZKBu78dI1082oPbepWmY12Uq0CHukfMrj230M3nDEEVyZEVERfsmmLSCaW7ihks7tmSHkNK2tdO7yHA==",
+          "requires": {
+            "@antora/expand-path-helper": "~2.0",
+            "@antora/user-require-helper": "~2.0",
+            "braces": "~3.0",
+            "cache-directory": "~2.0",
+            "camelcase-keys": "~6.2",
+            "hpagent": "~0.1.0",
+            "isomorphic-git": "~1.10",
+            "js-yaml": "~4.1",
+            "matcher": "~4.0",
+            "multi-progress": "~4.0",
+            "picomatch": "~2.3",
+            "progress": "~2.0",
+            "should-proxy": "~1.0",
+            "simple-get": "~4.0",
+            "vinyl": "~2.2",
+            "vinyl-fs": "~3.0"
+          }
+        },
+        "@antora/content-classifier": {
+          "version": "3.0.0-alpha.10",
+          "resolved": "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-3.0.0-alpha.10.tgz",
+          "integrity": "sha512-9Z5hgvu12ls/JE79v5tNpXzH0pgQhZ04BclWab8+NGm7WB3DSFfC3z+GEYCJ7cMKtyc8ldQqpI7tip5xacFRtg==",
+          "requires": {
+            "@antora/logger": "3.0.0-alpha.10",
+            "mime-types": "~2.1",
+            "vinyl": "~2.2"
+          }
+        },
+        "@antora/document-converter": {
+          "version": "3.0.0-alpha.10",
+          "resolved": "https://registry.npmjs.org/@antora/document-converter/-/document-converter-3.0.0-alpha.10.tgz",
+          "integrity": "sha512-cZFfcACO1edH8ZX7assW85gnwh9jwtsW87huVRkKk3HK1J/4wla3d64pfFUEms9gQkmW3SsT0BB/bIGxF1TMaw==",
+          "requires": {
+            "@antora/asciidoc-loader": "3.0.0-alpha.10"
+          }
+        },
+        "@antora/logger": {
+          "version": "3.0.0-alpha.10",
+          "resolved": "https://registry.npmjs.org/@antora/logger/-/logger-3.0.0-alpha.10.tgz",
+          "integrity": "sha512-O/qMZ8fSWY2wrGvST3go0Nl+Q40H4RQNXwiPheRMQVrQLZzchCiYkJkcMhpDfy+Z3MWgwQvLn9J7zGRjk4xgKg==",
+          "requires": {
+            "@antora/expand-path-helper": "~2.0",
+            "pino": "~6.13",
+            "pino-pretty": "~7.1",
+            "sonic-boom": "~2.1"
+          }
+        },
+        "@antora/navigation-builder": {
+          "version": "3.0.0-alpha.10",
+          "resolved": "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-3.0.0-alpha.10.tgz",
+          "integrity": "sha512-dnNGicGRxKl1XiKzWQVLztNvcyLkEdbWN5ZSezPStkTchQAuk4S/KoHwPEaEUh4au4f+tQsRIEMY8ArXhtnJmQ==",
+          "requires": {
+            "@antora/asciidoc-loader": "3.0.0-alpha.10"
+          }
+        },
+        "@antora/page-composer": {
+          "version": "3.0.0-alpha.10",
+          "resolved": "https://registry.npmjs.org/@antora/page-composer/-/page-composer-3.0.0-alpha.10.tgz",
+          "integrity": "sha512-j5k7kxxa6Hy9vU8Lirk6Fi2GtF7ohDnhFvGuVmx7+kQbqIm9K+SStNbsMiVikWuLvIQ8Kqp+AKa3dsU0296ymQ==",
+          "requires": {
+            "@antora/logger": "3.0.0-alpha.10",
+            "handlebars": "~4.7",
+            "require-from-string": "~2.0"
+          }
+        },
+        "@antora/playbook-builder": {
+          "version": "3.0.0-alpha.10",
+          "resolved": "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-3.0.0-alpha.10.tgz",
+          "integrity": "sha512-9hEEAVNt33L+vsnbw5zULXbdD0FVKMVd1UvPah+rSkUvroP6+GMzNbsK2GNtg2+VtAci0/ChgTPx/Dq3yAinag==",
+          "requires": {
+            "@antora/logger": "3.0.0-alpha.10",
+            "@iarna/toml": "~2.2",
+            "camelcase-keys": "~6.2",
+            "convict": "~6.2",
+            "js-yaml": "~4.1",
+            "json5": "~2.2"
+          }
+        },
+        "@antora/redirect-producer": {
+          "version": "3.0.0-alpha.10",
+          "resolved": "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-3.0.0-alpha.10.tgz",
+          "integrity": "sha512-q6cx0njmUWqfYEzzBkpNi0+qVNITiEv/h4u2bewimx3KnoaKjhkFilK/ojh0xfnapT/rkBJmFwFBhxw/mJsUOQ==",
+          "requires": {
+            "@antora/asciidoc-loader": "3.0.0-alpha.10",
+            "vinyl": "~2.2"
+          }
+        },
+        "@antora/site-mapper": {
+          "version": "3.0.0-alpha.10",
+          "resolved": "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-3.0.0-alpha.10.tgz",
+          "integrity": "sha512-aErF9Mbj7tToHWXhTc7SH3P6JZVNWnqA/ThlitCz2fL0AvlGWDGZOyLks/rn3FHRfRNIilCey9rqtrx+dhq0pw==",
+          "requires": {
+            "@antora/content-classifier": "3.0.0-alpha.10",
+            "vinyl": "~2.2"
+          }
+        },
+        "@antora/site-publisher": {
+          "version": "3.0.0-alpha.10",
+          "resolved": "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-3.0.0-alpha.10.tgz",
+          "integrity": "sha512-KTSASxiM1W4KM/5N4kvNTKWe8LT+DStbjsC+QWLC6oia2V0C5p38FCPdBTn6OZG3N0AbmI5/B+xyeqmVEwAKhA==",
+          "requires": {
+            "@antora/expand-path-helper": "~2.0",
+            "@antora/user-require-helper": "~2.0",
+            "gulp-vinyl-zip": "~2.5",
+            "vinyl": "~2.2",
+            "vinyl-fs": "~3.0"
+          }
+        },
+        "@antora/ui-loader": {
+          "version": "3.0.0-alpha.10",
+          "resolved": "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-3.0.0-alpha.10.tgz",
+          "integrity": "sha512-7aKZa4NUwGnJQT4qDbsKV0mvAx7SeCEozQVl6HMFzeMn6vhWQYlfBmWYcG54vzLaMo6lh1QOQlScl/l7OHzQ5A==",
+          "requires": {
+            "@antora/expand-path-helper": "~2.0",
+            "cache-directory": "~2.0",
+            "camelcase-keys": "~6.2",
+            "gulp-vinyl-zip": "~2.5",
+            "hpagent": "~0.1.0",
+            "js-yaml": "~4.1",
+            "minimatch-all": "~1.1",
+            "should-proxy": "~1.0",
+            "simple-concat": "~1.0",
+            "simple-get": "~4.0",
+            "vinyl": "~2.2",
+            "vinyl-fs": "~3.0"
+          }
+        },
+        "colorette": {
+          "version": "2.0.16",
+          "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz",
+          "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g=="
+        },
+        "convict": {
+          "version": "6.2.1",
+          "resolved": "https://registry.npmjs.org/convict/-/convict-6.2.1.tgz",
+          "integrity": "sha512-Mn4AJiYkR3TAZH1Xm/RU7gFS/0kM5TBSAQDry8y40Aez0ASY+3boUhv+3QE5XbOXiXM2JjdhkKve3IsBvWCibQ==",
+          "requires": {
+            "lodash.clonedeep": "^4.5.0",
+            "yargs-parser": "^20.2.7"
+          }
+        },
+        "pino-pretty": {
+          "version": "7.1.0",
+          "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-7.1.0.tgz",
+          "integrity": "sha512-khuvWuuf2ABRp388AlPOv3sOzj+zEgnj9EeFOXw1VUqmSuPK1JqKfdvITk6prhxddVgnjQtbi5x63QeIcWencw==",
+          "requires": {
+            "args": "^5.0.1",
+            "colorette": "^2.0.7",
+            "dateformat": "^4.6.3",
+            "fast-safe-stringify": "^2.0.7",
+            "joycon": "^3.0.0",
+            "pino-abstract-transport": "^0.4.0",
+            "pump": "^3.0.0",
+            "readable-stream": "^3.6.0",
+            "rfdc": "^1.3.0",
+            "secure-json-parse": "^2.4.0",
+            "sonic-boom": "^2.2.0",
+            "strip-json-comments": "^3.1.1"
+          },
+          "dependencies": {
+            "sonic-boom": {
+              "version": "2.3.0",
+              "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.3.0.tgz",
+              "integrity": "sha512-lEPaw654/4/rCJHz/TNzV4GIthqCq4inO+O3aFhbdOvR1bE+2//sVkcS+xlqPdb8gdjQCEE0hE9BuvnVixbnWQ==",
+              "requires": {
+                "atomic-sleep": "^1.0.0"
+              }
+            }
+          }
+        },
+        "yargs-parser": {
+          "version": "20.2.9",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+          "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
+        }
+      }
+    },
+    "@antora/site-mapper": {
+      "version": "3.0.0-alpha.9",
+      "resolved": "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-3.0.0-alpha.9.tgz",
+      "integrity": "sha512-9PFPzzmzvNQjMumjlWsgH1nQRWatu+4fyuU7GT682BUYU7A184TcwD3UxVloat7t80QA3TKl+Jp9OwvzVv4Ljg==",
+      "requires": {
+        "@antora/content-classifier": "3.0.0-alpha.9",
+        "vinyl": "~2.2"
+      }
+    },
+    "@antora/site-publisher": {
+      "version": "3.0.0-alpha.9",
+      "resolved": "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-3.0.0-alpha.9.tgz",
+      "integrity": "sha512-nTKCMTFWF4dNZbQmzENBIOzeISsdkiyQYbtyMzZJiAt8Eu5SJUfEtT1odovNXmmNqTt4dLORvDU7JArsPHUOBQ==",
+      "requires": {
+        "@antora/expand-path-helper": "~2.0",
+        "@antora/user-require-helper": "~2.0",
+        "gulp-vinyl-zip": "~2.5",
+        "vinyl": "~2.2",
+        "vinyl-fs": "~3.0"
+      }
+    },
+    "@antora/ui-loader": {
+      "version": "3.0.0-alpha.9",
+      "resolved": "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-3.0.0-alpha.9.tgz",
+      "integrity": "sha512-cB7j/Lxb1fVf3LiUIFdiHTkEiqgG/ns7ceCa8e8PkLf1rWr04b0ukPz1kDACVfeVWgRDtBGoVajSSe4YXhvRsg==",
+      "requires": {
+        "@antora/expand-path-helper": "~2.0",
+        "cache-directory": "~2.0",
+        "camelcase-keys": "~6.2",
+        "gulp-vinyl-zip": "~2.5",
+        "hpagent": "~0.1.0",
+        "js-yaml": "~4.1",
+        "minimatch-all": "~1.1",
+        "should-proxy": "~1.0",
+        "simple-concat": "~1.0",
+        "simple-get": "~4.0",
+        "vinyl": "~2.2",
+        "vinyl-fs": "~3.0"
+      }
+    },
+    "@antora/user-require-helper": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/@antora/user-require-helper/-/user-require-helper-2.0.0.tgz",
+      "integrity": "sha512-5fMfBZfw4zLoFdDAPMQX6Frik90uvfD8rXOA4UpXPOUikkX4uT1Rk6m0/4oi8oS3fcjiIl0k/7Nc+eTxW5TcQQ==",
+      "requires": {
+        "@antora/expand-path-helper": "~2.0"
+      }
+    },
+    "@asciidoctor/core": {
+      "version": "2.2.5",
+      "resolved": "https://registry.npmjs.org/@asciidoctor/core/-/core-2.2.5.tgz",
+      "integrity": "sha512-jtQPQ5EivgFbwvSyGKas4ANnMGGHPbmu791H9xrZKooA65JNI30jM2em5MvUXTTetSPgb6saUf+PJibEuSB6uw==",
+      "requires": {
+        "asciidoctor-opal-runtime": "0.3.3",
+        "unxhr": "1.0.1"
+      }
+    },
+    "@hapi/bourne": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz",
+      "integrity": "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg=="
+    },
+    "@iarna/toml": {
+      "version": "2.2.5",
+      "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz",
+      "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg=="
+    },
+    "ansi-styles": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+      "requires": {
+        "color-convert": "^1.9.0"
+      }
+    },
+    "append-buffer": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz",
+      "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=",
+      "requires": {
+        "buffer-equal": "^1.0.0"
+      }
+    },
+    "argparse": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+    },
+    "args": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz",
+      "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==",
+      "requires": {
+        "camelcase": "5.0.0",
+        "chalk": "2.4.2",
+        "leven": "2.1.0",
+        "mri": "1.1.4"
+      }
+    },
+    "asciidoctor-opal-runtime": {
+      "version": "0.3.3",
+      "resolved": "https://registry.npmjs.org/asciidoctor-opal-runtime/-/asciidoctor-opal-runtime-0.3.3.tgz",
+      "integrity": "sha512-/CEVNiOia8E5BMO9FLooo+Kv18K4+4JBFRJp8vUy/N5dMRAg+fRNV4HA+o6aoSC79jVU/aT5XvUpxSxSsTS8FQ==",
+      "requires": {
+        "glob": "7.1.3",
+        "unxhr": "1.0.1"
+      }
+    },
+    "async-lock": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.3.0.tgz",
+      "integrity": "sha512-8A7SkiisnEgME2zEedtDYPxUPzdv3x//E7n5IFktPAtMYSEAV7eNJF0rMwrVyUFj6d/8rgajLantbjcNRQYXIg=="
+    },
+    "atomic-sleep": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz",
+      "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ=="
+    },
+    "balanced-match": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+    },
+    "brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "requires": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "braces": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+      "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+      "requires": {
+        "fill-range": "^7.0.1"
+      }
+    },
+    "buffer-crc32": {
+      "version": "0.2.13",
+      "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+      "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI="
+    },
+    "buffer-equal": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz",
+      "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74="
+    },
+    "cache-directory": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/cache-directory/-/cache-directory-2.0.0.tgz",
+      "integrity": "sha512-7YKEapH+2Uikde8hySyfobXBqPKULDyHNl/lhKm7cKf/GJFdG/tU/WpLrOg2y9aUrQrWUilYqawFIiGJPS6gDA==",
+      "requires": {
+        "xdg-basedir": "^3.0.0"
+      }
+    },
+    "call-bind": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+      "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+      "requires": {
+        "function-bind": "^1.1.1",
+        "get-intrinsic": "^1.0.2"
+      }
+    },
+    "camelcase": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
+      "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA=="
+    },
+    "camelcase-keys": {
+      "version": "6.2.2",
+      "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
+      "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
+      "requires": {
+        "camelcase": "^5.3.1",
+        "map-obj": "^4.0.0",
+        "quick-lru": "^4.0.1"
+      },
+      "dependencies": {
+        "camelcase": {
+          "version": "5.3.1",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+          "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+        }
+      }
+    },
+    "chalk": {
+      "version": "2.4.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+      "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+      "requires": {
+        "ansi-styles": "^3.2.1",
+        "escape-string-regexp": "^1.0.5",
+        "supports-color": "^5.3.0"
+      }
+    },
+    "clean-git-ref": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/clean-git-ref/-/clean-git-ref-2.0.1.tgz",
+      "integrity": "sha512-bLSptAy2P0s6hU4PzuIMKmMJJSE6gLXGH1cntDu7bWJUksvuM+7ReOK61mozULErYvP6a15rnYl0zFDef+pyPw=="
+    },
+    "clone": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+      "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18="
+    },
+    "clone-buffer": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz",
+      "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg="
+    },
+    "clone-stats": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz",
+      "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA="
+    },
+    "cloneable-readable": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz",
+      "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==",
+      "requires": {
+        "inherits": "^2.0.1",
+        "process-nextick-args": "^2.0.0",
+        "readable-stream": "^2.3.5"
+      },
+      "dependencies": {
+        "readable-stream": {
+          "version": "2.3.7",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+          "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+          "requires": {
+            "core-util-is": "~1.0.0",
+            "inherits": "~2.0.3",
+            "isarray": "~1.0.0",
+            "process-nextick-args": "~2.0.0",
+            "safe-buffer": "~5.1.1",
+            "string_decoder": "~1.1.1",
+            "util-deprecate": "~1.0.1"
+          }
+        },
+        "safe-buffer": {
+          "version": "5.1.2",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+        },
+        "string_decoder": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+          "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+          "requires": {
+            "safe-buffer": "~5.1.0"
+          }
+        }
+      }
+    },
+    "color-convert": {
+      "version": "1.9.3",
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+      "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+      "requires": {
+        "color-name": "1.1.3"
+      }
+    },
+    "color-name": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+    },
+    "colorette": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
+      "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g=="
+    },
+    "concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+    },
+    "convert-source-map": {
+      "version": "1.8.0",
+      "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
+      "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
+      "requires": {
+        "safe-buffer": "~5.1.1"
+      },
+      "dependencies": {
+        "safe-buffer": {
+          "version": "5.1.2",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+        }
+      }
+    },
+    "convict": {
+      "version": "6.1.0",
+      "resolved": "https://registry.npmjs.org/convict/-/convict-6.1.0.tgz",
+      "integrity": "sha512-8dzppr6Z9URlm6P8N9NiydFRq2NWtQyf4RZOK5m0Q48fWWuKamHLXD7Qz/SiLvRXnjQcKCuHayIk9Fk51sax0w==",
+      "requires": {
+        "lodash.clonedeep": "^4.5.0",
+        "yargs-parser": "^18.1.3"
+      }
+    },
+    "core-util-is": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+      "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+    },
+    "crc-32": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz",
+      "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==",
+      "requires": {
+        "exit-on-epipe": "~1.0.1",
+        "printj": "~1.1.0"
+      }
+    },
+    "dateformat": {
+      "version": "4.6.3",
+      "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz",
+      "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA=="
+    },
+    "decamelize": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
+    },
+    "decompress-response": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
+      "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
+      "requires": {
+        "mimic-response": "^2.0.0"
+      }
+    },
+    "define-properties": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+      "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+      "requires": {
+        "object-keys": "^1.0.12"
+      }
+    },
+    "diff3": {
+      "version": "0.0.3",
+      "resolved": "https://registry.npmjs.org/diff3/-/diff3-0.0.3.tgz",
+      "integrity": "sha1-1OXDpM305f4SEatC5pP8tDIVgPw="
+    },
+    "duplexify": {
+      "version": "3.7.1",
+      "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+      "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+      "requires": {
+        "end-of-stream": "^1.0.0",
+        "inherits": "^2.0.1",
+        "readable-stream": "^2.0.0",
+        "stream-shift": "^1.0.0"
+      },
+      "dependencies": {
+        "readable-stream": {
+          "version": "2.3.7",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+          "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+          "requires": {
+            "core-util-is": "~1.0.0",
+            "inherits": "~2.0.3",
+            "isarray": "~1.0.0",
+            "process-nextick-args": "~2.0.0",
+            "safe-buffer": "~5.1.1",
+            "string_decoder": "~1.1.1",
+            "util-deprecate": "~1.0.1"
+          }
+        },
+        "safe-buffer": {
+          "version": "5.1.2",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+        },
+        "string_decoder": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+          "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+          "requires": {
+            "safe-buffer": "~5.1.0"
+          }
+        }
+      }
+    },
+    "end-of-stream": {
+      "version": "1.4.4",
+      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+      "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+      "requires": {
+        "once": "^1.4.0"
+      }
+    },
+    "escape-string-regexp": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+    },
+    "exit-on-epipe": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
+      "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw=="
+    },
+    "extend": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+    },
+    "fast-redact": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.2.tgz",
+      "integrity": "sha512-YN+CYfCVRVMUZOUPeinHNKgytM1wPI/C/UCLEi56EsY2dwwvI00kIJHJoI7pMVqGoMew8SMZ2SSfHKHULHXDsg=="
+    },
+    "fast-safe-stringify": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
+      "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="
+    },
+    "fastify-warning": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/fastify-warning/-/fastify-warning-0.2.0.tgz",
+      "integrity": "sha512-s1EQguBw/9qtc1p/WTY4eq9WMRIACkj+HTcOIK1in4MV5aFaQC9ZCIt0dJ7pr5bIf4lPpHvAtP2ywpTNgs7hqw=="
+    },
+    "fd-slicer": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+      "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
+      "requires": {
+        "pend": "~1.2.0"
+      }
+    },
+    "fill-range": {
+      "version": "7.0.1",
+      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+      "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+      "requires": {
+        "to-regex-range": "^5.0.1"
+      }
+    },
+    "flatstr": {
+      "version": "1.0.12",
+      "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz",
+      "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw=="
+    },
+    "flush-write-stream": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
+      "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
+      "requires": {
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.3.6"
+      },
+      "dependencies": {
+        "readable-stream": {
+          "version": "2.3.7",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+          "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+          "requires": {
+            "core-util-is": "~1.0.0",
+            "inherits": "~2.0.3",
+            "isarray": "~1.0.0",
+            "process-nextick-args": "~2.0.0",
+            "safe-buffer": "~5.1.1",
+            "string_decoder": "~1.1.1",
+            "util-deprecate": "~1.0.1"
+          }
+        },
+        "safe-buffer": {
+          "version": "5.1.2",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+        },
+        "string_decoder": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+          "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+          "requires": {
+            "safe-buffer": "~5.1.0"
+          }
+        }
+      }
+    },
+    "fs-mkdirp-stream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz",
+      "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=",
+      "requires": {
+        "graceful-fs": "^4.1.11",
+        "through2": "^2.0.3"
+      }
+    },
+    "fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+    },
+    "function-bind": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+    },
+    "get-intrinsic": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
+      "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+      "requires": {
+        "function-bind": "^1.1.1",
+        "has": "^1.0.3",
+        "has-symbols": "^1.0.1"
+      }
+    },
+    "glob": {
+      "version": "7.1.3",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+      "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+      "requires": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.0.4",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      }
+    },
+    "glob-parent": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+      "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+      "requires": {
+        "is-glob": "^3.1.0",
+        "path-dirname": "^1.0.0"
+      }
+    },
+    "glob-stream": {
+      "version": "6.1.0",
+      "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz",
+      "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=",
+      "requires": {
+        "extend": "^3.0.0",
+        "glob": "^7.1.1",
+        "glob-parent": "^3.1.0",
+        "is-negated-glob": "^1.0.0",
+        "ordered-read-streams": "^1.0.0",
+        "pumpify": "^1.3.5",
+        "readable-stream": "^2.1.5",
+        "remove-trailing-separator": "^1.0.1",
+        "to-absolute-glob": "^2.0.0",
+        "unique-stream": "^2.0.2"
+      },
+      "dependencies": {
+        "readable-stream": {
+          "version": "2.3.7",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+          "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+          "requires": {
+            "core-util-is": "~1.0.0",
+            "inherits": "~2.0.3",
+            "isarray": "~1.0.0",
+            "process-nextick-args": "~2.0.0",
+            "safe-buffer": "~5.1.1",
+            "string_decoder": "~1.1.1",
+            "util-deprecate": "~1.0.1"
+          }
+        },
+        "safe-buffer": {
+          "version": "5.1.2",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+        },
+        "string_decoder": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+          "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+          "requires": {
+            "safe-buffer": "~5.1.0"
+          }
+        }
+      }
+    },
+    "graceful-fs": {
+      "version": "4.2.8",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
+      "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
+    },
+    "gulp-vinyl-zip": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/gulp-vinyl-zip/-/gulp-vinyl-zip-2.5.0.tgz",
+      "integrity": "sha512-KPi5/2SUmkXXDvKU4L2U1dkPOP03SbhONTOgNZlL23l9Yopt+euJ1bBXwWrSMbsyh3JLW/TYuC8CI4c4Kq4qrw==",
+      "requires": {
+        "queue": "^4.2.1",
+        "through": "^2.3.8",
+        "through2": "^2.0.3",
+        "vinyl": "^2.0.2",
+        "vinyl-fs": "^3.0.3",
+        "yauzl": "^2.2.1",
+        "yazl": "^2.2.1"
+      }
+    },
+    "handlebars": {
+      "version": "4.7.7",
+      "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
+      "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
+      "requires": {
+        "minimist": "^1.2.5",
+        "neo-async": "^2.6.0",
+        "source-map": "^0.6.1",
+        "uglify-js": "^3.1.4",
+        "wordwrap": "^1.0.0"
+      }
+    },
+    "has": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+      "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+      "requires": {
+        "function-bind": "^1.1.1"
+      }
+    },
+    "has-flag": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+      "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+    },
+    "has-symbols": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
+      "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
+    },
+    "hpagent": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-0.1.2.tgz",
+      "integrity": "sha512-ePqFXHtSQWAFXYmj+JtOTHr84iNrII4/QRlAAPPE+zqnKy4xJo7Ie1Y4kC7AdB+LxLxSTTzBMASsEcy0q8YyvQ=="
+    },
+    "ignore": {
+      "version": "5.1.8",
+      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
+      "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw=="
+    },
+    "inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+      "requires": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+    },
+    "is-absolute": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
+      "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
+      "requires": {
+        "is-relative": "^1.0.0",
+        "is-windows": "^1.0.1"
+      }
+    },
+    "is-buffer": {
+      "version": "1.1.6",
+      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+      "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+    },
+    "is-extglob": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+      "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+    },
+    "is-glob": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+      "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+      "requires": {
+        "is-extglob": "^2.1.0"
+      }
+    },
+    "is-negated-glob": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz",
+      "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI="
+    },
+    "is-number": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+    },
+    "is-relative": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
+      "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
+      "requires": {
+        "is-unc-path": "^1.0.0"
+      }
+    },
+    "is-unc-path": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
+      "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
+      "requires": {
+        "unc-path-regex": "^0.1.2"
+      }
+    },
+    "is-utf8": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+      "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
+    },
+    "is-valid-glob": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz",
+      "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao="
+    },
+    "is-windows": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+      "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
+    },
+    "isarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+    },
+    "isomorphic-git": {
+      "version": "1.10.1",
+      "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.10.1.tgz",
+      "integrity": "sha512-abbPpKkykIVDJ92rtYoD4AOuT5/7PABHR2fDBrsm7H0r2ZT+MGpPL/FynrEJM6nTcFSieaIDxnHNGhfHO/v+bA==",
+      "requires": {
+        "async-lock": "^1.1.0",
+        "clean-git-ref": "^2.0.1",
+        "crc-32": "^1.2.0",
+        "diff3": "0.0.3",
+        "ignore": "^5.1.4",
+        "minimisted": "^2.0.0",
+        "pako": "^1.0.10",
+        "pify": "^4.0.1",
+        "readable-stream": "^3.4.0",
+        "sha.js": "^2.4.9",
+        "simple-get": "^3.0.2"
+      },
+      "dependencies": {
+        "simple-get": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz",
+          "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==",
+          "requires": {
+            "decompress-response": "^4.2.0",
+            "once": "^1.3.1",
+            "simple-concat": "^1.0.0"
+          }
+        }
+      }
+    },
+    "jmespath": {
+      "version": "0.15.0",
+      "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz",
+      "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc="
+    },
+    "joycon": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.0.1.tgz",
+      "integrity": "sha512-SJcJNBg32dGgxhPtM0wQqxqV0ax9k/9TaUskGDSJkSFSQOEWWvQ3zzWdGQRIUry2j1zA5+ReH13t0Mf3StuVZA=="
+    },
+    "js-yaml": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+      "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+      "requires": {
+        "argparse": "^2.0.1"
+      }
+    },
+    "json-stable-stringify-without-jsonify": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+      "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
+    },
+    "json5": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
+      "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
+      "requires": {
+        "minimist": "^1.2.5"
+      }
+    },
+    "lazystream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
+      "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
+      "requires": {
+        "readable-stream": "^2.0.5"
+      },
+      "dependencies": {
+        "readable-stream": {
+          "version": "2.3.7",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+          "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+          "requires": {
+            "core-util-is": "~1.0.0",
+            "inherits": "~2.0.3",
+            "isarray": "~1.0.0",
+            "process-nextick-args": "~2.0.0",
+            "safe-buffer": "~5.1.1",
+            "string_decoder": "~1.1.1",
+            "util-deprecate": "~1.0.1"
+          }
+        },
+        "safe-buffer": {
+          "version": "5.1.2",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+        },
+        "string_decoder": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+          "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+          "requires": {
+            "safe-buffer": "~5.1.0"
+          }
+        }
+      }
+    },
+    "lead": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz",
+      "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=",
+      "requires": {
+        "flush-write-stream": "^1.0.2"
+      }
+    },
+    "leven": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
+      "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA="
+    },
+    "lodash.clonedeep": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+      "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8="
+    },
+    "map-obj": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
+      "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ=="
+    },
+    "matcher": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/matcher/-/matcher-4.0.0.tgz",
+      "integrity": "sha512-S6x5wmcDmsDRRU/c2dkccDwQPXoFczc5+HpQ2lON8pnvHlnvHAHj5WlLVvw6n6vNyHuVugYrFohYxbS+pvFpKQ==",
+      "requires": {
+        "escape-string-regexp": "^4.0.0"
+      },
+      "dependencies": {
+        "escape-string-regexp": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+          "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
+        }
+      }
+    },
+    "mime-db": {
+      "version": "1.49.0",
+      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz",
+      "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA=="
+    },
+    "mime-types": {
+      "version": "2.1.32",
+      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz",
+      "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==",
+      "requires": {
+        "mime-db": "1.49.0"
+      }
+    },
+    "mimic-response": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
+      "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA=="
+    },
+    "minimatch": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+      "requires": {
+        "brace-expansion": "^1.1.7"
+      }
+    },
+    "minimatch-all": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz",
+      "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=",
+      "requires": {
+        "minimatch": "^3.0.2"
+      }
+    },
+    "minimist": {
+      "version": "1.2.5",
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+      "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+    },
+    "minimisted": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/minimisted/-/minimisted-2.0.1.tgz",
+      "integrity": "sha512-1oPjfuLQa2caorJUM8HV8lGgWCc0qqAO1MNv/k05G4qslmsndV/5WdNZrqCiyqiz3wohia2Ij2B7w2Dr7/IyrA==",
+      "requires": {
+        "minimist": "^1.2.5"
+      }
+    },
+    "mri": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz",
+      "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w=="
+    },
+    "multi-progress": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/multi-progress/-/multi-progress-4.0.0.tgz",
+      "integrity": "sha512-9zcjyOou3FFCKPXsmkbC3ethv51SFPoA4dJD6TscIp2pUmy26kBDZW6h9XofPELrzseSkuD7r0V+emGEeo39Pg=="
+    },
+    "neo-async": {
+      "version": "2.6.2",
+      "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+      "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
+    },
+    "normalize-path": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+      "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+      "requires": {
+        "remove-trailing-separator": "^1.0.1"
+      }
+    },
+    "now-and-later": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz",
+      "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==",
+      "requires": {
+        "once": "^1.3.2"
+      }
+    },
+    "object-keys": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+      "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+    },
+    "object.assign": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
+      "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
+      "requires": {
+        "call-bind": "^1.0.0",
+        "define-properties": "^1.1.3",
+        "has-symbols": "^1.0.1",
+        "object-keys": "^1.1.1"
+      }
+    },
+    "once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+      "requires": {
+        "wrappy": "1"
+      }
+    },
+    "ordered-read-streams": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz",
+      "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=",
+      "requires": {
+        "readable-stream": "^2.0.1"
+      },
+      "dependencies": {
+        "readable-stream": {
+          "version": "2.3.7",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+          "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+          "requires": {
+            "core-util-is": "~1.0.0",
+            "inherits": "~2.0.3",
+            "isarray": "~1.0.0",
+            "process-nextick-args": "~2.0.0",
+            "safe-buffer": "~5.1.1",
+            "string_decoder": "~1.1.1",
+            "util-deprecate": "~1.0.1"
+          }
+        },
+        "safe-buffer": {
+          "version": "5.1.2",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+        },
+        "string_decoder": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+          "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+          "requires": {
+            "safe-buffer": "~5.1.0"
+          }
+        }
+      }
+    },
+    "pako": {
+      "version": "1.0.11",
+      "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+      "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
+    },
+    "path-dirname": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+      "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA="
+    },
+    "path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+    },
+    "pend": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+      "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
+    },
+    "picomatch": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
+      "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw=="
+    },
+    "pify": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+      "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
+    },
+    "pino": {
+      "version": "6.13.3",
+      "resolved": "https://registry.npmjs.org/pino/-/pino-6.13.3.tgz",
+      "integrity": "sha512-tJy6qVgkh9MwNgqX1/oYi3ehfl2Y9H0uHyEEMsBe74KinESIjdMrMQDWpcZPpPicg3VV35d/GLQZmo4QgU2Xkg==",
+      "requires": {
+        "fast-redact": "^3.0.0",
+        "fast-safe-stringify": "^2.0.8",
+        "fastify-warning": "^0.2.0",
+        "flatstr": "^1.0.12",
+        "pino-std-serializers": "^3.1.0",
+        "quick-format-unescaped": "^4.0.3",
+        "sonic-boom": "^1.0.2"
+      },
+      "dependencies": {
+        "sonic-boom": {
+          "version": "1.4.1",
+          "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz",
+          "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==",
+          "requires": {
+            "atomic-sleep": "^1.0.0",
+            "flatstr": "^1.0.12"
+          }
+        }
+      }
+    },
+    "pino-abstract-transport": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.4.0.tgz",
+      "integrity": "sha512-Znl3f1ntZnDG+NpCyJyJDS+lkrlRSbgQBkV3eqNAvet/QHql6rhKLc4DuYRlwfc3fvV611O9NXPm5pbT9AJ50g==",
+      "requires": {
+        "duplexify": "^4.1.2",
+        "split2": "^3.2.2"
+      },
+      "dependencies": {
+        "duplexify": {
+          "version": "4.1.2",
+          "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz",
+          "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==",
+          "requires": {
+            "end-of-stream": "^1.4.1",
+            "inherits": "^2.0.3",
+            "readable-stream": "^3.1.1",
+            "stream-shift": "^1.0.0"
+          }
+        }
+      }
+    },
+    "pino-pretty": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-6.0.0.tgz",
+      "integrity": "sha512-jyeR2fXXWc68st1DTTM5NhkHlx8p+1fKZMfm84Jwq+jSw08IwAjNaZBZR6ts69hhPOfOjg/NiE1HYW7vBRPL3A==",
+      "requires": {
+        "@hapi/bourne": "^2.0.0",
+        "args": "^5.0.1",
+        "colorette": "^1.3.0",
+        "dateformat": "^4.5.1",
+        "fast-safe-stringify": "^2.0.7",
+        "jmespath": "^0.15.0",
+        "joycon": "^3.0.0",
+        "pump": "^3.0.0",
+        "readable-stream": "^3.6.0",
+        "rfdc": "^1.3.0",
+        "split2": "^3.1.1",
+        "strip-json-comments": "^3.1.1"
+      }
+    },
+    "pino-std-serializers": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz",
+      "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg=="
+    },
+    "printj": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz",
+      "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ=="
+    },
+    "process-nextick-args": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+      "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+    },
+    "progress": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+      "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
+    },
+    "pump": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+      "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+      "requires": {
+        "end-of-stream": "^1.1.0",
+        "once": "^1.3.1"
+      }
+    },
+    "pumpify": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+      "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+      "requires": {
+        "duplexify": "^3.6.0",
+        "inherits": "^2.0.3",
+        "pump": "^2.0.0"
+      },
+      "dependencies": {
+        "pump": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+          "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+          "requires": {
+            "end-of-stream": "^1.1.0",
+            "once": "^1.3.1"
+          }
+        }
+      }
+    },
+    "queue": {
+      "version": "4.5.1",
+      "resolved": "https://registry.npmjs.org/queue/-/queue-4.5.1.tgz",
+      "integrity": "sha512-AMD7w5hRXcFSb8s9u38acBZ+309u6GsiibP4/0YacJeaurRshogB7v/ZcVPxP5gD5+zIw6ixRHdutiYUJfwKHw==",
+      "requires": {
+        "inherits": "~2.0.0"
+      }
+    },
+    "quick-format-unescaped": {
+      "version": "4.0.4",
+      "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz",
+      "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg=="
+    },
+    "quick-lru": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
+      "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g=="
+    },
+    "readable-stream": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+      "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+      "requires": {
+        "inherits": "^2.0.3",
+        "string_decoder": "^1.1.1",
+        "util-deprecate": "^1.0.1"
+      }
+    },
+    "remove-bom-buffer": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz",
+      "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==",
+      "requires": {
+        "is-buffer": "^1.1.5",
+        "is-utf8": "^0.2.1"
+      }
+    },
+    "remove-bom-stream": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz",
+      "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=",
+      "requires": {
+        "remove-bom-buffer": "^3.0.0",
+        "safe-buffer": "^5.1.0",
+        "through2": "^2.0.3"
+      }
+    },
+    "remove-trailing-separator": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+      "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
+    },
+    "replace-ext": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz",
+      "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw=="
+    },
+    "require-from-string": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+      "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
+    },
+    "resolve-options": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz",
+      "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=",
+      "requires": {
+        "value-or-function": "^3.0.0"
+      }
+    },
+    "rfdc": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
+      "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA=="
+    },
+    "safe-buffer": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+    },
+    "secure-json-parse": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.4.0.tgz",
+      "integrity": "sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg=="
+    },
+    "sha.js": {
+      "version": "2.4.11",
+      "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+      "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+      "requires": {
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "should-proxy": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/should-proxy/-/should-proxy-1.0.4.tgz",
+      "integrity": "sha1-yAWlAav2lTlgBjSAnmL78ji6NeQ="
+    },
+    "simple-concat": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+      "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
+    },
+    "simple-get": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.0.tgz",
+      "integrity": "sha512-ZalZGexYr3TA0SwySsr5HlgOOinS4Jsa8YB2GJ6lUNAazyAu4KG/VmzMTwAt2YVXzzVj8QmefmAonZIK2BSGcQ==",
+      "requires": {
+        "decompress-response": "^6.0.0",
+        "once": "^1.3.1",
+        "simple-concat": "^1.0.0"
+      },
+      "dependencies": {
+        "decompress-response": {
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+          "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+          "requires": {
+            "mimic-response": "^3.1.0"
+          }
+        },
+        "mimic-response": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+          "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="
+        }
+      }
+    },
+    "sonic-boom": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.1.0.tgz",
+      "integrity": "sha512-x2j9LXx27EDlyZEC32gBM+scNVMdPutU7FIKV2BOTKCnPrp7bY5BsplCMQ4shYYR3IhDSIrEXoqb6GlS+z7KyQ==",
+      "requires": {
+        "atomic-sleep": "^1.0.0"
+      }
+    },
+    "source-map": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+    },
+    "split2": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
+      "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
+      "requires": {
+        "readable-stream": "^3.0.0"
+      }
+    },
+    "stream-shift": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
+      "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="
+    },
+    "string_decoder": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+      "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+      "requires": {
+        "safe-buffer": "~5.2.0"
+      }
+    },
+    "strip-json-comments": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+      "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
+    },
+    "supports-color": {
+      "version": "5.5.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+      "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+      "requires": {
+        "has-flag": "^3.0.0"
+      }
+    },
+    "through": {
+      "version": "2.3.8",
+      "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+      "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
+    },
+    "through2": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+      "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+      "requires": {
+        "readable-stream": "~2.3.6",
+        "xtend": "~4.0.1"
+      },
+      "dependencies": {
+        "readable-stream": {
+          "version": "2.3.7",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+          "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+          "requires": {
+            "core-util-is": "~1.0.0",
+            "inherits": "~2.0.3",
+            "isarray": "~1.0.0",
+            "process-nextick-args": "~2.0.0",
+            "safe-buffer": "~5.1.1",
+            "string_decoder": "~1.1.1",
+            "util-deprecate": "~1.0.1"
+          }
+        },
+        "safe-buffer": {
+          "version": "5.1.2",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+        },
+        "string_decoder": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+          "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+          "requires": {
+            "safe-buffer": "~5.1.0"
+          }
+        }
+      }
+    },
+    "through2-filter": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz",
+      "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==",
+      "requires": {
+        "through2": "~2.0.0",
+        "xtend": "~4.0.0"
+      }
+    },
+    "to-absolute-glob": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz",
+      "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=",
+      "requires": {
+        "is-absolute": "^1.0.0",
+        "is-negated-glob": "^1.0.0"
+      }
+    },
+    "to-regex-range": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+      "requires": {
+        "is-number": "^7.0.0"
+      }
+    },
+    "to-through": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz",
+      "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=",
+      "requires": {
+        "through2": "^2.0.3"
+      }
+    },
+    "uglify-js": {
+      "version": "3.14.2",
+      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.2.tgz",
+      "integrity": "sha512-rtPMlmcO4agTUfz10CbgJ1k6UAoXM2gWb3GoMPPZB/+/Ackf8lNWk11K4rYi2D0apgoFRLtQOZhb+/iGNJq26A=="
+    },
+    "unc-path-regex": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
+      "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo="
+    },
+    "unique-stream": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz",
+      "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==",
+      "requires": {
+        "json-stable-stringify-without-jsonify": "^1.0.1",
+        "through2-filter": "^3.0.0"
+      }
+    },
+    "unxhr": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/unxhr/-/unxhr-1.0.1.tgz",
+      "integrity": "sha512-MAhukhVHyaLGDjyDYhy8gVjWJyhTECCdNsLwlMoGFoNJ3o79fpQhtQuzmAE4IxCMDwraF4cW8ZjpAV0m9CRQbg=="
+    },
+    "util-deprecate": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+    },
+    "value-or-function": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz",
+      "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM="
+    },
+    "vinyl": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz",
+      "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==",
+      "requires": {
+        "clone": "^2.1.1",
+        "clone-buffer": "^1.0.0",
+        "clone-stats": "^1.0.0",
+        "cloneable-readable": "^1.0.0",
+        "remove-trailing-separator": "^1.0.1",
+        "replace-ext": "^1.0.0"
+      }
+    },
+    "vinyl-fs": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz",
+      "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==",
+      "requires": {
+        "fs-mkdirp-stream": "^1.0.0",
+        "glob-stream": "^6.1.0",
+        "graceful-fs": "^4.0.0",
+        "is-valid-glob": "^1.0.0",
+        "lazystream": "^1.0.0",
+        "lead": "^1.0.0",
+        "object.assign": "^4.0.4",
+        "pumpify": "^1.3.5",
+        "readable-stream": "^2.3.3",
+        "remove-bom-buffer": "^3.0.0",
+        "remove-bom-stream": "^1.2.0",
+        "resolve-options": "^1.1.0",
+        "through2": "^2.0.0",
+        "to-through": "^2.0.0",
+        "value-or-function": "^3.0.0",
+        "vinyl": "^2.0.0",
+        "vinyl-sourcemap": "^1.1.0"
+      },
+      "dependencies": {
+        "readable-stream": {
+          "version": "2.3.7",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+          "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+          "requires": {
+            "core-util-is": "~1.0.0",
+            "inherits": "~2.0.3",
+            "isarray": "~1.0.0",
+            "process-nextick-args": "~2.0.0",
+            "safe-buffer": "~5.1.1",
+            "string_decoder": "~1.1.1",
+            "util-deprecate": "~1.0.1"
+          }
+        },
+        "safe-buffer": {
+          "version": "5.1.2",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+        },
+        "string_decoder": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+          "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+          "requires": {
+            "safe-buffer": "~5.1.0"
+          }
+        }
+      }
+    },
+    "vinyl-sourcemap": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz",
+      "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=",
+      "requires": {
+        "append-buffer": "^1.0.2",
+        "convert-source-map": "^1.5.0",
+        "graceful-fs": "^4.1.6",
+        "normalize-path": "^2.1.1",
+        "now-and-later": "^2.0.0",
+        "remove-bom-buffer": "^3.0.0",
+        "vinyl": "^2.0.0"
+      }
+    },
+    "wordwrap": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+      "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
+    },
+    "wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+    },
+    "xdg-basedir": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
+      "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ="
+    },
+    "xtend": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+      "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+    },
+    "yargs-parser": {
+      "version": "18.1.3",
+      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+      "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+      "requires": {
+        "camelcase": "^5.0.0",
+        "decamelize": "^1.2.0"
+      }
+    },
+    "yauzl": {
+      "version": "2.10.0",
+      "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+      "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
+      "requires": {
+        "buffer-crc32": "~0.2.3",
+        "fd-slicer": "~1.1.0"
+      }
+    },
+    "yazl": {
+      "version": "2.5.1",
+      "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz",
+      "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==",
+      "requires": {
+        "buffer-crc32": "~0.2.3"
+      }
+    }
+  }
+}
diff --git a/solr/solr-ref-guide/playbook.yml b/solr/solr-ref-guide/playbook.yml
new file mode 100644
index 0000000..1911b7e
--- /dev/null
+++ b/solr/solr-ref-guide/playbook.yml
@@ -0,0 +1,19 @@
+site:
+  title: Apache Solr Reference Guide
+  url: https://solr.apache.org/guide
+  start_page: solr::index.adoc
+content:
+  sources:
+  - url: ../../
+    branches: HEAD
+    start_path: solr/solr-ref-guide
+ui:
+  bundle:
+    url: ./ui/build/ui-bundle.zip
+    snapshot: true
+output:
+  clean: true
+  dir: ./build
+asciidoc:
+  attributes:
+    stem:
diff --git a/solr/solr-ref-guide/ui/.editorconfig b/solr/solr-ref-guide/ui/.editorconfig
new file mode 100644
index 0000000..c6c8b36
--- /dev/null
+++ b/solr/solr-ref-guide/ui/.editorconfig
@@ -0,0 +1,9 @@
+root = true
+
+[*]
+indent_style = space
+indent_size = 2
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
diff --git a/solr/solr-ref-guide/ui/.eslintrc b/solr/solr-ref-guide/ui/.eslintrc
new file mode 100644
index 0000000..fc50489
--- /dev/null
+++ b/solr/solr-ref-guide/ui/.eslintrc
@@ -0,0 +1,14 @@
+{
+  "extends": "standard",
+  "rules": {
+    "arrow-parens": ["error", "always"],
+    "comma-dangle": ["error", {
+      "arrays": "always-multiline",
+      "objects": "always-multiline",
+      "imports": "always-multiline",
+      "exports": "always-multiline"
+    }],
+    "max-len": [1, 120, 2],
+    "spaced-comment": "off"
+  }
+}
diff --git a/solr/solr-ref-guide/ui/.gitignore b/solr/solr-ref-guide/ui/.gitignore
new file mode 100644
index 0000000..57834a1
--- /dev/null
+++ b/solr/solr-ref-guide/ui/.gitignore
@@ -0,0 +1,3 @@
+/build/
+/node_modules/
+/public/
diff --git a/solr/solr-ref-guide/ui/.gitlab-ci.yml b/solr/solr-ref-guide/ui/.gitlab-ci.yml
new file mode 100644
index 0000000..b183e33
--- /dev/null
+++ b/solr/solr-ref-guide/ui/.gitlab-ci.yml
@@ -0,0 +1,55 @@
+image: node:10.14.2-stretch
+stages: [setup, verify, deploy]
+install:
+  stage: setup
+  cache:
+    paths:
+    - .cache/npm
+  script:
+  - &npm_install
+    npm install --quiet --no-progress --cache=.cache/npm
+lint:
+  stage: verify
+  cache: &pull_cache
+    policy: pull
+    paths:
+    - .cache/npm
+  script:
+  - *npm_install
+  - node_modules/.bin/gulp lint
+bundle-stable:
+  stage: deploy
+  only:
+  - master@antora/antora-ui-default
+  cache: *pull_cache
+  script:
+  - *npm_install
+  - node_modules/.bin/gulp bundle
+  artifacts:
+    paths:
+    - build/ui-bundle.zip
+bundle-dev:
+  stage: deploy
+  except:
+  - master
+  cache: *pull_cache
+  script:
+  - *npm_install
+  - node_modules/.bin/gulp bundle
+  artifacts:
+    expire_in: 1 day # unless marked as keep from job page
+    paths:
+    - build/ui-bundle.zip
+pages:
+  stage: deploy
+  only:
+  - master@antora/antora-ui-default
+  cache: *pull_cache
+  script:
+  - *npm_install
+  - node_modules/.bin/gulp preview:build
+  # FIXME figure out a way to avoid copying these files to preview site
+  - rm -rf public/_/{helpers,layouts,partials}
+  artifacts:
+    paths:
+    - public
diff --git a/solr/solr-ref-guide/ui/.gulp.json b/solr/solr-ref-guide/ui/.gulp.json
new file mode 100644
index 0000000..2da9b16
--- /dev/null
+++ b/solr/solr-ref-guide/ui/.gulp.json
@@ -0,0 +1,4 @@
+{
+  "description": "Build tasks for the Antora default UI project",
+  "flags.tasksDepth": 1
+}
diff --git a/solr/solr-ref-guide/ui/.nvmrc b/solr/solr-ref-guide/ui/.nvmrc
new file mode 100644
index 0000000..f599e28
--- /dev/null
+++ b/solr/solr-ref-guide/ui/.nvmrc
@@ -0,0 +1 @@
+10
diff --git a/solr/solr-ref-guide/ui/.stylelintrc b/solr/solr-ref-guide/ui/.stylelintrc
new file mode 100644
index 0000000..344318f
--- /dev/null
+++ b/solr/solr-ref-guide/ui/.stylelintrc
@@ -0,0 +1,7 @@
+{
+  "extends": "stylelint-config-standard",
+  "rules": {
+    "comment-empty-line-before": null,
+    "no-descending-specificity": null,
+  }
+}
diff --git a/solr/solr-ref-guide/ui/LICENSE b/solr/solr-ref-guide/ui/LICENSE
new file mode 100644
index 0000000..a612ad9
--- /dev/null
+++ b/solr/solr-ref-guide/ui/LICENSE
@@ -0,0 +1,373 @@
+Mozilla Public License Version 2.0
+==================================
+
+1. Definitions
+--------------
+
+1.1. "Contributor"
+    means each individual or legal entity that creates, contributes to
+    the creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+    means the combination of the Contributions of others (if any) used
+    by a Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+    means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+    means Source Code Form to which the initial Contributor has attached
+    the notice in Exhibit A, the Executable Form of such Source Code
+    Form, and Modifications of such Source Code Form, in each case
+    including portions thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+    means
+
+    (a) that the initial Contributor has attached the notice described
+        in Exhibit B to the Covered Software; or
+
+    (b) that the Covered Software was made available under the terms of
+        version 1.1 or earlier of the License, but not also under the
+        terms of a Secondary License.
+
+1.6. "Executable Form"
+    means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+    means a work that combines Covered Software with other material, in
+    a separate file or files, that is not Covered Software.
+
+1.8. "License"
+    means this document.
+
+1.9. "Licensable"
+    means having the right to grant, to the maximum extent possible,
+    whether at the time of the initial grant or subsequently, any and
+    all of the rights conveyed by this License.
+
+1.10. "Modifications"
+    means any of the following:
+
+    (a) any file in Source Code Form that results from an addition to,
+        deletion from, or modification of the contents of Covered
+        Software; or
+
+    (b) any new file in Source Code Form that contains any Covered
+        Software.
+
+1.11. "Patent Claims" of a Contributor
+    means any patent claim(s), including without limitation, method,
+    process, and apparatus claims, in any patent Licensable by such
+    Contributor that would be infringed, but for the grant of the
+    License, by the making, using, selling, offering for sale, having
+    made, import, or transfer of either its Contributions or its
+    Contributor Version.
+
+1.12. "Secondary License"
+    means either the GNU General Public License, Version 2.0, the GNU
+    Lesser General Public License, Version 2.1, the GNU Affero General
+    Public License, Version 3.0, or any later versions of those
+    licenses.
+
+1.13. "Source Code Form"
+    means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+    means an individual or a legal entity exercising rights under this
+    License. For legal entities, "You" includes any entity that
+    controls, is controlled by, or is under common control with You. For
+    purposes of this definition, "control" means (a) the power, direct
+    or indirect, to cause the direction or management of such entity,
+    whether by contract or otherwise, or (b) ownership of more than
+    fifty percent (50%) of the outstanding shares or beneficial
+    ownership of such entity.
+
+2. License Grants and Conditions
+--------------------------------
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+    Licensable by such Contributor to use, reproduce, make available,
+    modify, display, perform, distribute, and otherwise exploit its
+    Contributions, either on an unmodified basis, with Modifications, or
+    as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+    for sale, have made, import, and otherwise transfer either its
+    Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+    or
+
+(b) for infringements caused by: (i) Your and any other third party's
+    modifications of Covered Software, or (ii) the combination of its
+    Contributions with other software (except as part of its Contributor
+    Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+    its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+-------------------
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+    Form, as described in Section 3.1, and You must inform recipients of
+    the Executable Form how they can obtain a copy of such Source Code
+    Form by reasonable means in a timely manner, at a charge no more
+    than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+    License, or sublicense it under different terms, provided that the
+    license for the Executable Form does not attempt to limit or alter
+    the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+---------------------------------------------------
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+--------------
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+************************************************************************
+*                                                                      *
+*  6. Disclaimer of Warranty                                           *
+*  -------------------------                                           *
+*                                                                      *
+*  Covered Software is provided under this License on an "as is"       *
+*  basis, without warranty of any kind, either expressed, implied, or  *
+*  statutory, including, without limitation, warranties that the       *
+*  Covered Software is free of defects, merchantable, fit for a        *
+*  particular purpose or non-infringing. The entire risk as to the     *
+*  quality and performance of the Covered Software is with You.        *
+*  Should any Covered Software prove defective in any respect, You     *
+*  (not any Contributor) assume the cost of any necessary servicing,   *
+*  repair, or correction. This disclaimer of warranty constitutes an   *
+*  essential part of this License. No use of any Covered Software is   *
+*  authorized under this License except under this disclaimer.         *
+*                                                                      *
+************************************************************************
+
+************************************************************************
+*                                                                      *
+*  7. Limitation of Liability                                          *
+*  --------------------------                                          *
+*                                                                      *
+*  Under no circumstances and under no legal theory, whether tort      *
+*  (including negligence), contract, or otherwise, shall any           *
+*  Contributor, or anyone who distributes Covered Software as          *
+*  permitted above, be liable to You for any direct, indirect,         *
+*  special, incidental, or consequential damages of any character      *
+*  including, without limitation, damages for lost profits, loss of    *
+*  goodwill, work stoppage, computer failure or malfunction, or any    *
+*  and all other commercial damages or losses, even if such party      *
+*  shall have been informed of the possibility of such damages. This   *
+*  limitation of liability shall not apply to liability for death or   *
+*  personal injury resulting from such party's negligence to the       *
+*  extent applicable law prohibits such limitation. Some               *
+*  jurisdictions do not allow the exclusion or limitation of           *
+*  incidental or consequential damages, so this exclusion and          *
+*  limitation may not apply to You.                                    *
+*                                                                      *
+************************************************************************
+
+8. Litigation
+-------------
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+----------------
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+---------------------------
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+-------------------------------------------
+
+  This Source Code Form is subject to the terms of the Mozilla Public
+  License, v. 2.0. If a copy of the MPL was not distributed with this
+  file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
+
+Exhibit B - "Incompatible With Secondary Licenses" Notice
+---------------------------------------------------------
+
+  This Source Code Form is "Incompatible With Secondary Licenses", as
+  defined by the Mozilla Public License, v. 2.0.
diff --git a/solr/solr-ref-guide/ui/README.adoc b/solr/solr-ref-guide/ui/README.adoc
new file mode 100644
index 0000000..9d32e11
--- /dev/null
+++ b/solr/solr-ref-guide/ui/README.adoc
@@ -0,0 +1,219 @@
+= Antora Default UI
+// Settings:
+:experimental:
+:hide-uri-scheme:
+// Project URLs:
+:url-project: https://gitlab.com/antora/antora-ui-default
+:url-preview: https://antora.gitlab.io/antora-ui-default
+:url-ci-pipelines: {url-project}/pipelines
+:img-ci-status: {url-project}/badges/master/pipeline.svg
+// External URLs:
+:url-antora: https://antora.org
+:url-antora-docs: https://docs.antora.org
+:url-git: https://git-scm.com
+:url-git-dl: {url-git}/downloads
+:url-gulp: http://gulpjs.com
+:url-opendevise: https://opendevise.com
+:url-nodejs: https://nodejs.org
+:url-nvm: https://github.com/creationix/nvm
+:url-nvm-install: {url-nvm}#installation
+:url-source-maps: https://developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/Use_a_source_map
+
+image:{img-ci-status}[CI Status (GitLab CI), link={url-ci-pipelines}]
+
+This project is an archetype that demonstrates how to produce a UI bundle that can be used by {url-antora}[Antora] to generated a documentation site.
+You can see a preview of the default UI at {url-preview}.
+
+While the default UI is ready to be used with Antora, the intent is that you'll fork it and customize it for your own needs.
+It's intentionally minimalistic so as to give you a good starting point without requiring too much effort to customize.
+
+== Code of Conduct
+
+The Antora project and its project spaces are governed by our https://gitlab.com/antora/antora/-/blob/master/CODE-OF-CONDUCT.adoc[Code of Conduct].
+By participating, you're agreeing to honor this code.
+Let's work together to make this a welcoming, professional, inclusive, and safe environment for everyone.
+
+== Use the Default UI
+
+If you want to simply use the default UI for your Antora-generated site, add the following UI configuration to your playbook:
+
+[source,yaml]
+----
+ui:
+  bundle:
+    url: https://gitlab.com/antora/antora-ui-default/-/jobs/artifacts/master/raw/build/ui-bundle.zip?job=bundle-stable
+    snapshot: true
+----
+
+NOTE: The `snapshot` flag tells Antora to fetch the UI when the `--fetch` command-line flag is present.
+This setting is required because updates to the UI bundle are pushed to the same URL.
+If the URL were to be unique, this setting would not be required.
+
+Read on to learn how to customize the default UI for your own documentation.
+
+== Development Quickstart
+
+This section offers a basic tutorial to teach you how to set up the default UI project, preview it locally, and bundle it for use with Antora.
+A more comprehensive tutorial can be found in the documentation at {url-antora-docs}.
+
+=== Prerequisites
+
+To preview and bundle the default UI, you need the following software on your computer:
+
+* {url-git}[git] (command: `git`)
+* {url-nodejs}[Node.js] (commands: `node` and `npm`)
+* {url-gulp}[Gulp CLI] (command: `gulp`)
+
+==== git
+
+First, make sure you have git installed.
+
+ $ git --version
+
+If not, {url-git-dl}[download and install] the git package for your system.
+
+==== Node.js
+
+Next, make sure that you have Node.js installed (which also provides npm).
+
+ $ node --version
+
+If this command fails with an error, you don't have Node.js installed.
+If the command doesn't report an LTS version of Node.js (e.g., v10.15.3), it means you don't have a suitable version of Node.js installed.
+In this guide, we'll be installing Node.js 10.
+
+While you can install Node.js from the official packages, we strongly recommend that you use {url-nvm}[nvm] (Node Version Manager) to manage your Node.js installation(s).
+Follow the {url-nvm-install}[nvm installation instructions] to set up nvm on your machine.
+
+Once you've installed nvm, open a new terminal and install Node.js 10 using the following command:
+
+ $ nvm install 10
+
+You can switch to this version of Node.js at any time using the following command:
+
+ $ nvm use 10
+
+To make Node.js 10 the default in new terminals, type:
+
+ $ nvm alias default 10
+
+Now that you have Node.js installed, you can proceed with installing the Gulp CLI.
+
+==== Gulp CLI
+
+You'll need the Gulp command-line interface (CLI) to run the build.
+The Gulp CLI package provides the `gulp` command which, in turn, executes the version of Gulp declared by the project.
+
+You can install the Gulp CLI globally (which resolves to a location in your user directory if you're using nvm) using the following command:
+
+ $ npm install -g gulp-cli
+
+Verify the Gulp CLI is installed and on your PATH by running:
+
+ $ gulp --version
+
+If you prefer to install global packages using Yarn, run this command instead:
+
+ $ yarn global add gulp-cli
+
+Alternately, you can use the `gulp` command that is installed by the project's dependencies.
+
+ $ $(npm bin)/gulp --version
+
+Now that you have the prerequisites installed, you can fetch and build the UI project.
+
+=== Clone and Initialize the UI Project
+
+Clone the default UI project using git:
+
+[subs=attributes+]
+ $ git clone {url-project} &&
+   cd "`basename $_`"
+
+The example above clones Antora's default UI project and then switches to the project folder on your filesystem.
+Stay in this project folder when executing all subsequent commands.
+
+Use npm to install the project's dependencies inside the project.
... 17942 lines suppressed ...