You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by is...@apache.org on 2020/12/05 04:37:27 UTC
[lucene-solr] branch jira/solr14827 updated (499d6ab -> 54c6f22)
This is an automated email from the ASF dual-hosted git repository.
ishan pushed a change to branch jira/solr14827
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git.
omit 499d6ab unused imp[ort
omit d86fa09 merging with master
omit 4f88e13 Merge branch 'master' into jira/solr14827
omit 8fcdfeb merging with masster
omit a07ec61 merge with master
omit 5e5d92f merging with master
omit c826752 javadocs fix
omit 2c4af54 merging with master
omit f77cc53 Merge branch 'master' into jira/solr14827
omit 4418768 javadocs and other review comments
omit 4772a5c test failure
omit 1b991ed merging with master
omit 519d806 cache and reuse
omit 35eae14 substitute properties real time
omit 0cfa31d unused import
omit 69ed069 unused import
omit 6e024d1 bug fix
omit f130ca4 bug fix
omit 46e6191 preload conf
omit e1bc674 SOLR-14827: Refactor schema loading to not use XPath
add 7362c4c LUCENE-6831: start removing LinkedList in favor of ArrayList or De/Queues (#1969)
add c5cf132 LUCENE-9562: All binary analysis packages (and corresponding Maven artifacts) with names containing '-analyzers-' have been renamed to '-analysis-'. (#1968)
add e444df1 SOLR-14922: Include solr-ref-guide tasks in sourceSets for IntelliJ (#1973)
add b4f0442 SOLR-14870: refactor ref-guide build.gradle logic to re-enable guide->javadoc link checking
add 9594ab3 SOLR-14776: Precompute the fingerprint during PeerSync (#1814)
add bcd9cbe SOLR-14907: Support single file upload/overwrite in configSet API (#1977)
add cf6e831 SOLR-14887 Upgrade JQuery to 3.5.1 (#1947)
add 03fe8e5 SOLR-14654: remove ref guide refernces
add 2f651b1 SOLR-14654: remove all references of runtime lib
add fa3e1ad SOLR-14869: ChildDocTransformer should have omitted deleted child documents. Closes #1970
add a7a6757 SOLR-14654: ref guide error
add b43c389 Include missing commands in package tool help section (#1975)
add ab5671d LUCENE-9574 Add DropIfFlaggedFilterFactory (#1979)
add 9805b12 LUCENE-9579 Update to JUnit 4.13.1 (#1981)
add 2a3da99 SOLR-14914: Add option to disable metrics collection.
add 321b4fa SOLR-14930: Deprecate rulebased replica placement strategy (remove in 9.0) (#1980)
add 737cf98 SOLR-14924: Some ReplicationHandler metrics are reported using incorrect types.
add 0bd2f31 SOLR-14930: fix precommit
add d7e58ed SOLR-14483 (#1988)
add 9877085 LUCENE-9572 - TypeAsSynonymFilter gains selective flag transfer and an ignore list. (#1965)
add 6a330e6 SOLR-14651: improve metrics history docs When the MHH is disabled, it is *not* possible to retrieve history.
add 744934c SOLR-14933: Ability to add T and P type replica from admin UI (#1991)
add 6990109 LUCENE-9524: Fix NPE in SpanWeight#explain when no scoring is require… (#1978)
add 48348ae LUCENE-9578: TermRangeQuery empty string lower bound edge case (#1976)
add 72a5541 Update CHANGES.txt to align with release versions
add c3a7a58 LUCENE-9578: Add CHANGES entry.
add f7be9e8 LUCENE-9524: Fix CHANGES entry version.
add 85b58c2 LUCENE-9576: nuke SSD detection, modernize CMS defaults
add c02f07f LUCENE-9322: Add Lucene90 codec, including VectorFormat
add dbcbcd0 Add CHANGES entry for LUCENE-9322
add e9ff918 fix javadoc
add 4c42cbc LUCENE-9576: give solr back its getFileStoreAttributes permission
add 9ab9d20 SOLR-14944: Remove the "spins" metrics.
add 6e25728 Fix 'an[d]' typo in three solrconfig.xml comments.
add b47ccbc Fix a highlight in query-settings-in-solrconfig.adoc file.
add 43edf37 SOLR-14943 Rework Monitoring Solr with Prometheus and Grafana ref guide page to be clearer (#1999)
add 44c1bd4 LUCENE-9318: Clean up package name conflicts for backward-codecs (#2000)
add 3bc873e SOLR-14936: Fixed Grafana dashboard filters for collection, shard, replica and core (#1986)
add 6ac5747 SOLR-14549: Fix listing of Files in a Directory on Solr Admin UI
add 6177be7 Harden TestVectorValues.testAddIndexesDirectory01
add 0746d30 SOLR-14877: Add github action for running SolrJ tests. (#1891)
add 0bc494e LUCENE-9524: Fix test failure.
add c587bf8 Reduce chances of _very_ slow tests in nightly builds.
add 67ecd8f SOLR-14749: Improve support for arbitrary container-level plugins. Add ClusterSingleton support for plugins that require only one active instance in the cluster.
add e826b1f refactor method names
add 052efd6 Revert "refactor method names"
add 62de8f9 Add example for ConfigSet create with properties map. (#2005)
add 43c087f SOLR-14956: correct (socket|conn)Timeout casing in 'Configuring the ShardHandlerFactory' example (Yevhen Tienkaiev via Christine Poerschke)
add c680a6e Move upgrade notes from CHANGES.txt to the Ref Guide.
add 3bfe9d8 SOLR-14947: Print out image info after gradle docker task. (#2007)
add 840a353 LUCENE-9582: rename VectorValues.ScoreFunction to SearchStrategy (#2018)
add 706f284 SOLR-14942: Reduce leader election time on node shutdown (#2004)
add 56eac7c Fix random TestVectorValues failures by use of forceMerge (and getOnlyLeafReader)
add 2d3a221 .gitignore clean up (#1993)
add 98594b5 LUCENE-9455: ExitableTermsEnum should sample timeout and interruption check before calling next()
add 7a09cc1 SOLR-14937: Correct client.queryDefaults().set(...) calls in some JSON facet tests. (#1987)
add 4bf2541 Rename ConfigSetsAPITest to TestConfigSetsAPIShareSchema (#1890)
add 37c7d15 LUCENE-9322: Make sure to account for vectors in SortingCodecReader. (#2028)
add 38f0286 Remove sleeps from SolrZkClientTest.testWrappingWatches (#1936)
add c29b008 SOLR-14954: Heavily edit reindexing.adoc
add b649f3f SOLR-14964: remove Autoscaling related withCollection and COLOCATED_WITH (#2034)
add 4fe4f37 SOLR-14957: Add Prometheus Exporter to docker PATH. Fix classpath issues. (#2017)
add 521ca54 SOLR-14844: Upgrade Jetty to 9.4.32.v20200930
add 3730719 Fix CHANGES entry for LUCENE-9455
add 6d00843 SOLR-14940: Fix ReplicationHandler memory leak through SolrCore.closeHooks
add 9ce4b98 LUCENE-9587: Add '--illegal-access=deny' to test runner (#2039)
add 462c6c7 Graduate the release wizard from ALPHA (#2041)
add d0ba0f3 Enhance Javadocs for ExternalFileField on how to return values as part of document fields. SOLR-14968
add 57729c9 LUCENE-8626: Standardize Lucene Test Files (#2026)
add f3fdd9b SOLR-14946: fix responseHeader returned in resp with omitHeader=true (#2029)
add e1698bd SOLR-14955: Add env var options to Prometheus Export scripts. (#2038)
add 2c49c4a SOLR-14969: Prevent creating multiple cores with the same name which leads to instabilities (race condition)
add 0fb21e2 Fix a typo in IndexWriter (#2054)
add 0c3f2f4 SOLR-14972: Change default port of prometheus exporter to 8989 (#2046)
add da00048 SOLR-14865: 'Index Merge Metrics' documentation correction (#1870)
add 8f004f7 LUCENE-9536: Optimize OrdinalMap when one segment contains all distinct values. (#1948)
add 2a2e612 LUCENE-9536: CHANGES entry.
add 0729746 Rename TestSolrTestCaseJ4 to SolrTestCaseJ4DeleteCoreTest. (#2032)
add 5091e75 SOLR-14907: Adding V2 API for ConfigSet Upload. (#1996)
add e7f0294 SOLR-14961 ZkMaintenanceUtils.clean doesn't remove zk nodes with same length
add 6a7131e LUCENE-9319: Clean up package name conflicts for sandbox module (#2023)
add 8bfbed8 LUCENE-9552: Adds a LatLonPoint query that accepts an array of LatLonGeometries (#1940)
add 5c02737 LUCENE-9553: Adds a XYPoint query that accepts an array of XYGeometries (#1939)
add 0f871b2 SOLR-14926: Modernize and clean up search results clustering contrib.
add 63c4dfa LUCENE-9596: Reproduce line for failed tests should have method-level accuracy
add a29d7c7 LUCENE-9597: checkWorkingCopyClean shouldn't complain about untracked empty folders (similar to git status). Piggybacking jgit update. (#2061)
add 32bf7ba Correct sandbox link failing the check.
add 22296f2 SOLR-14912: Unify solr-contrib-extraction with the artifact it produces (#2060)
add f777933 Correct sandbox class name.
add 656ce93 DOAP changes for release 8.7.0
add 7c1ff28 SOLR-14978 OOM Killer in Foreground (#2055)
add bcd9711 LUCENE-9536: Address test failure.
add bdc6e82 SOLR-14749: Provide a clean API for cluster-level event processing.
add 0bfa2a6 SOLR-14749: Restructure the docs + add some examples.
add be19432 SOLR-14969: Prevent creating multiple cores with the same name which leads to instabilities (race condition) changed error code
add 8be0cea LUCENE-9583: extract separate RandomAccessVectorValues interface (#2037)
add ec9a659 LUCENE-9322: fix minor cosmetic refactoring error in logging string in IndexWriter's infoStream logging. It was always printing 'vector values' for all merging times instead of the other parts of Lucene index ('doc values', 'stored fields', etc.)
add 42c5206 LUCENE-9322: Some fixes to SimpleTextVectorFormat. (#2071)
add 849a28e LUCENE-9536: Correct the OrdinalMap optimization. (#2070)
add 514c363 LUCENE-9322: Move Solr to Lucene90Codec.
add fd98f67 Remove unused imports.
add bac4309 SOLR-14749: Use h2 instead of h3 so that the javadoc tool doesn't complain about out-or-sequence headers.
add 7ec1737 SOLR-14683: Metrics API should ensure consistent placeholders for missing values.
add 36f6359 LUCENE-9023: GlobalOrdinalsWithScore should not compute occurrences when the provided min is 1 (#964)
add d111039 LUCENE-9600: Clean up package name conflicts between misc and core modules (#2064)
add 426a9c2 LUCENE-9499: migrate package.html files into package-info.java (#2072)
add 212b0f8 SOLR-14949: Ability to customize Solr Docker build (#2020)
add 863a388f SOLR-14683: Move the CHANGES.txt entry to the right place. Fix wrong type of null value.
add d650413 SOLR-14949: Adding githubUrl option for docker build. (#2074)
add 5897d14 LUCENE-9594 Add linear function for FeatureField
add 67f9245 SOLR-14975: Optimize CoreContainer.getAllCoreNames and getLoadedCoreNames. Also optimize getCoreDescriptors.
add 91ee53d SOLR-14975: Add entry in CHANGES.txt
add a7197ac SOLR-14971: Handle atomic-removes on uncommitted docs (#2056)
add 66e285e SOLR-14995 Update Jetty to latest version
add 2f02040 SOLR-14983: Fix response returning original score instead of reranked score due to query and filter combining. (Krishan Goyal, Jason Baik, Christine Poerschke)
add d1297e5 Remove redundant fieldType.stored() check during indexing (#2076)
add 06877b2 LUCENE-9378: Make it possible to configure how to trade speed for compression on doc values. (#2069)
add 3f8f84f LUCENE-9450 Switch to BinaryDocValues instead of stored fields in Lucene's facet implementation, yielding ~4-5% red-line QPS gain in pure faceting benchmarks (#1733)
add af47cb7 LUCENE-9600: Fix wrong link
add 8bac4e7 LUCENE-9499: javadoc split package workaroud should be applied only to test-framework.
add 80a0154 LUCENE-9608: add a hand-triggered test error class.
add b36b4af LUCENE-9004: KNN vector search using NSW graphs (#2022)
add 03c1910 LUCENE-9004: CHANGES.txt entry
add 93ecd0f SOLR-14986: Add warning to ref guide that using 'properties.name' is an expert option
add 52f581e LUCENE-9605: update snowball to d8cf01ddf37a, adds Yiddish (#2077)
add 09f78e2 LUCENE-9610: fix TestKnnGraph.testMerge
add 3ae0ca2 LUCENE-9610: fix bug in previous test fix
add ebc87a8 LUCENE-8982: Separate out native code to another module to allow cpp build with gradle (#2068)
add 73d5e7a SOLR-14977 : ContainerPlugins should be configurable (#2065)
add fd3ffd0 LUCENE-8982: make native builds disabled by default (CI complains).
add 2d583ea SOLR-14998: logging: info->debug in CollectionsHandler (#2079)
add 8503efd LUCENE-9413: Add CJKWidthCharFilter and its factory. (#2081)
add 4735b4c LUCENE-9378: Fix test failure.
add b9a93cf LUCENE-8626: Standardize Lucene test file naming Part 2 (#2053)
add 02514e5 Remove h3 from HnswGraph javadoc; doclet doesn't seem to like it
add 2b5b0f9 SOLR-14683: move "Missing Metrics" section down to config section; add short blurb to intro text
add cb0d0cf Use h2 for top-level headers in HnswGraph javadoc, following jdk14 rule
add ea4dd05 SOLR-14792: remove leftover /browse UI screenshot from ref guide docs
add af0455a SOLR-14560: Interleaving for Learning To Rank (#1571)
add c4d4767 SOLR-14035: Remove deprecated preferLocalShards=true support in favour of the shards.preference=replica.location:local alternative. (Alex Bulygin via Christine Poerschke)
add 8c7b709 LUCENE-9592: Loosen equality checks in TestVectorUtil. (#2084)
add 77a2053 SOLR-14993: Unable to download zookeeper files of 1byte in size
add a5d0654 LUCENE-9581: Japanese tokenizer should discard the compound token instead of disabling the decomposition of long tokens when discardCompoundToken is activated.
add 44be9f9 LUCENE-9595: Make Component2D#withinPoint implementations consistent with ShapeQuery logic (#2059)
add ca04040 SOLR-15015: added support to parametric Interleaving algorithm (#2096)
add 4d05e72 [SOLR-15015] added support to parametric Interleaving algorithm + tests (#2096)
add 7d54c28 Merge remote-tracking branch 'origin/master'
add c71f119 LUCENE-9508: Fix DocumentsWriter to block threads until unstalled (#2085)
add b63c37d LUCENE-9606: Wrap boolean queries generated by shape fields with a Constant score query (#2093)
add 99c38ee SOLR-14851 Http2SolrClient doesn't handle keystore type (#2098)
add 1e0ae2f SOLR-15001 Docker: require init_var_solr.sh (#2083)
add 021de9f SOLR-14915: Prometheus-exporter should not depend on Solr-core (#1972)
add 2da3d1f fix duplicate compute on maxUnpatchedValue (#2106)
add 37a6163 SOLR-14958: Refactor zkHost config logic to make testing easier and reduce risk of incorrect value being used
add cb5ba42 SOLR-15009 Propogate IOException from DF.exists
add a049284 SOLR-12182: Don't persist base_url in ZK as the scheme is variable, compute from node_name instead (#2010)
add 689e56f Ref Guide: fix wrong class name in CSS to toggle the icon shown in sidebar nav when a section is open
add 663655d SOLR-15013: Prevent merges since test asserts doc order
add 3df7250 SOLR-15004: tests for the replica placement API + placement plugin fixes and light refactoring (#2110)
add feb897a SOLR-15017: Core's lib/ dir was ignored sometimes (#2107)
add d99c166 SOLR-14942: Move request registration to ContentStreamHandlerBase (#2112)
add 2e6a023 SOLR-14934: Refactored duplicate "Solr Home" logic into a single place to eliminate risk of tests using divergent values for a single solr node.
add 8732df8 SOLR-14934: test workaround for SOLR-15026
add 05a8477 SOLR-14934: Fix some additional test helper methods that aren't used on master but triggered problems when when backporting to branch_8x
add d50bdba Remove obsolete dev-tools scripts (#2105)
add e3572d0 Reconcile upgrade notes in master (#2103)
add 5208d47 SOLR-14934: Remove redundent deprecated "solr.solr.home" logic
add 4c100a0 SOLR-12182: Fix Changes.txt in master (#2116)
add a9e180b LUCENE-9631: Properly override slice() on subclasses of OffsetRange.
add f24b497 LUCENE-9618: Do not call IntervalIterator.nextInterval after NO_MORE_DOCS returned (#2095)
add 69de1a4 LUCENE-9599 Disable sort optim on index sort (#2075)
add cef9281 SOLR-14992 Wait for node down before checking for node up (#2115)
add 19ed903 SOLR-14965: add overseer queue size metrics (#2040)
add 21b8890 SOLR: Remove CHANGES.md; use solr/CHANGES.txt
new 74c98f0 SOLR-14827: Refactor schema loading to not use XPath
new 976608d preload conf
new a6f6330 bug fix
new 70b5ad3 bug fix
new def7db5 unused import
new f313d6c unused import
new cecf1f9 substitute properties real time
new a73c2c5 cache and reuse
new 6319582 test failure
new 504740f javadocs and other review comments
new 5746fee merging with master
new e49e3a5 javadocs fix
new f3ac2e9 merging with master
new 12d492a merge with master
new ac536c4 merging with masster
new 6ad7716 merging with master
new 491f172 unused imp[ort
new 54c6f22 Fixing imports
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (499d6ab)
\
N -- N -- N refs/heads/jira/solr14827 (54c6f22)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 18 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.dir-locals.el | 3 +
.github/workflows/docker-test.yml | 4 +
.github/workflows/solrj-test.yml | 35 +
.gitignore | 60 +-
build.gradle | 7 +-
dev-tools/doap/lucene.rdf | 7 +
dev-tools/doap/solr.rdf | 7 +
dev-tools/scripts/LUCENE-3753.patch.hack.pl | 111 -
dev-tools/scripts/addVersion.py | 1 +
dev-tools/scripts/crawl.maven.release.dist.sh | 68 -
dev-tools/scripts/gitignore-gen.sh | 21 -
dev-tools/scripts/releaseWizard.py | 10 +-
dev-tools/scripts/releaseWizard.yaml | 7 +-
dev-tools/scripts/write.stage.maven.build.xml.pl | 180 --
.../test-patch/lucene-solr-yetus-personality.sh | 2 +-
gradle/ant-compat/artifact-naming.gradle | 11 -
gradle/documentation/render-javadoc.gradle | 28 +-
gradle/generation/snowball.gradle | 6 +-
gradle/generation/snowball.patch | 10 +-
gradle/help.gradle | 1 +
gradle/ide/intellij-idea.gradle | 16 -
gradle/native/disable-native.gradle | 82 +
gradle/solr/packaging.gradle | 3 +-
gradle/testing/defaults-tests.gradle | 1 +
gradle/testing/failed-tests-at-end.gradle | 2 +-
.../randomization/policies/solr-tests.policy | 2 +-
gradle/testing/randomization/policies/tests.policy | 7 +-
gradle/validation/git-status.gradle | 39 +-
.../owasp-dependency-check/exclusions.xml | 15 -
help/docker.txt | 58 +
lucene/CHANGES.txt | 99 +-
lucene/MIGRATE.md | 37 +-
lucene/NOTICE.txt | 2 +-
lucene/analysis/README.txt | 18 +-
.../lucene/analysis/cjk/CJKWidthCharFilter.java | 148 ++
.../analysis/cjk/CJKWidthCharFilterFactory.java | 57 +
.../lucene/analysis/classic/package-info.java | 29 +
.../apache/lucene/analysis/classic/package.html | 37 -
.../apache/lucene/analysis/email/package-info.java | 34 +
.../org/apache/lucene/analysis/email/package.html | 39 -
.../miscellaneous/DropIfFlaggedFilter.java | 51 +
.../miscellaneous/DropIfFlaggedFilterFactory.java | 71 +
.../miscellaneous/TypeAsSynonymFilter.java | 37 +-
.../miscellaneous/TypeAsSynonymFilterFactory.java | 17 +-
.../org/tartarus/snowball/ext/SerbianStemmer.java | 235 +-
.../org/tartarus/snowball/ext/YiddishStemmer.java | 1381 ++++++++++++
.../org.apache.lucene.analysis.CharFilterFactory | 1 +
.../org.apache.lucene.analysis.TokenFilterFactory | 1 +
.../analysis/cjk/TestCJKWidthCharFilter.java | 118 +
.../cjk/TestCJKWidthCharFilterFactory.java | 43 +
.../miscellaneous/TestDropIfFlaggedFilter.java | 73 +
.../TestDropIfFlaggedFilterFactory.java | 48 +
.../miscellaneous/TestTypeAsSynonymFilter.java | 106 +
.../TestTypeAsSynonymFilterFactory.java | 7 +
.../apache/lucene/analysis/snowball/languages.txt | 1 +
.../lucene/analysis/ja/JapaneseTokenizer.java | 59 +-
.../lucene/analysis/ja/TestJapaneseAnalyzer.java | 14 +-
.../lucene/analysis/ja/TestJapaneseTokenizer.java | 6 +
.../apache/lucene/analysis/ja/TestSearchMode.java | 5 -
lucene/analysis/phonetic/src/java/overview.html | 2 +-
.../org/apache/lucene/analysis/pl/stopwords.txt | 2 +-
.../apache/lucene/backward_codecs/Placeholder.java | 23 +
.../lucene/backward_codecs/lucene50/ForUtil.java | 246 +++
.../lucene50/Lucene50PostingsFormat.java | 480 ++++
.../lucene50/Lucene50PostingsReader.java | 1786 +++++++++++++++
.../lucene50/Lucene50ScoreSkipReader.java | 159 ++
.../lucene50/Lucene50SkipReader.java | 211 ++
.../lucene50/Lucene50StoredFieldsFormat.java | 152 ++
.../backward_codecs/lucene50/package-info.java | 19 +
.../lucene60/Lucene60PointsFormat.java | 110 +
.../lucene60/Lucene60PointsReader.java | 146 ++
.../backward_codecs/lucene60/package-info.java | 19 +
.../lucene70/Lucene70SegmentInfoFormat.java | 281 +++
.../backward_codecs/lucene70/package-info.java | 22 +
.../backward_codecs/lucene80/Lucene80Codec.java | 138 ++
.../backward_codecs/lucene80/package-info.java | 19 +
.../backward_codecs/lucene84/Lucene84Codec.java | 185 ++
.../backward_codecs/lucene84/package-info.java | 19 +
.../backward_codecs/lucene86/Lucene86Codec.java | 186 ++
.../backward_codecs/lucene86/package-info.java | 19 +
.../backward_codecs/lucene87/Lucene87Codec.java | 193 ++
.../backward_codecs/lucene87/package-info.java | 19 +
.../lucene/backward_codecs/package-info.java | 19 +
.../java/org/apache/lucene/codecs/Placeholder.java | 23 -
.../org/apache/lucene/codecs/lucene50/ForUtil.java | 246 ---
.../codecs/lucene50/Lucene50PostingsFormat.java | 480 ----
.../codecs/lucene50/Lucene50PostingsReader.java | 1786 ---------------
.../codecs/lucene50/Lucene50ScoreSkipReader.java | 159 --
.../lucene/codecs/lucene50/Lucene50SkipReader.java | 211 --
.../lucene50/Lucene50StoredFieldsFormat.java | 152 --
.../org/apache/lucene/codecs/lucene50/package.html | 25 -
.../codecs/lucene60/Lucene60PointsFormat.java | 110 -
.../codecs/lucene60/Lucene60PointsReader.java | 146 --
.../org/apache/lucene/codecs/lucene60/package.html | 25 -
.../codecs/lucene70/Lucene70SegmentInfoFormat.java | 281 ---
.../lucene/codecs/lucene70/package-info.java | 22 -
.../lucene/codecs/lucene80/Lucene80Codec.java | 131 --
.../org/apache/lucene/codecs/lucene80/package.html | 25 -
.../lucene/codecs/lucene84/Lucene84Codec.java | 178 --
.../org/apache/lucene/codecs/lucene84/package.html | 25 -
.../lucene/codecs/lucene86/Lucene86Codec.java | 178 --
.../org/apache/lucene/codecs/lucene86/package.html | 25 -
.../src/java/org/apache/lucene/codecs/package.html | 26 -
.../services/org.apache.lucene.codecs.Codec | 7 +-
.../org.apache.lucene.codecs.PostingsFormat | 2 +-
.../lucene50/Lucene50PostingsWriter.java | 507 +++++
.../lucene50/Lucene50RWPostingsFormat.java | 47 +
.../lucene50/Lucene50RWStoredFieldsFormat.java | 51 +
.../lucene50/Lucene50SkipWriter.java | 224 ++
.../lucene50/TestBlockPostingsFormat.java | 132 ++
.../lucene50/TestBlockPostingsFormat2.java | 135 ++
.../lucene50/TestBlockPostingsFormat3.java | 463 ++++
.../backward_codecs/lucene50/TestForUtil.java | 96 +
.../lucene50/TestLucene50StoredFieldsFormat.java | 29 +
...tLucene50StoredFieldsFormatHighCompression.java | 80 +
...estLucene50StoredFieldsFormatMergeInstance.java | 29 +
.../lucene60/Lucene60PointsWriter.java | 272 +++
.../lucene60/Lucene60RWPointsFormat.java | 35 +
.../lucene60/TestLucene60PointsFormat.java | 354 +++
.../lucene70/Lucene70RWSegmentInfoFormat.java | 204 ++
.../lucene70/TestLucene70SegmentInfoFormat.java | 36 +
.../backward_codecs/lucene84/Lucene84RWCodec.java | 46 +
.../backward_codecs/lucene86/Lucene86RWCodec.java | 45 +
.../backward_index/TestBackwardsCompatibility.java | 1836 +++++++++++++++
.../backward_index/TestIndexWriterOnOldIndex.java | 58 +
.../backward_index/TestManyPointsInOldIndex.java | 75 +
.../{index => backward_index}/dvupdates.8.0.0.zip | Bin
.../{index => backward_index}/empty.8.0.0.zip | Bin
.../{index => backward_index}/index.8.0.0-cfs.zip | Bin
.../index.8.0.0-nocfs.zip | Bin
.../{index => backward_index}/index.8.1.0-cfs.zip | Bin
.../index.8.1.0-nocfs.zip | Bin
.../{index => backward_index}/index.8.1.1-cfs.zip | Bin
.../index.8.1.1-nocfs.zip | Bin
.../{index => backward_index}/index.8.2.0-cfs.zip | Bin
.../index.8.2.0-nocfs.zip | Bin
.../{index => backward_index}/index.8.3.0-cfs.zip | Bin
.../index.8.3.0-nocfs.zip | Bin
.../{index => backward_index}/index.8.3.1-cfs.zip | Bin
.../index.8.3.1-nocfs.zip | Bin
.../{index => backward_index}/index.8.4.0-cfs.zip | Bin
.../index.8.4.0-nocfs.zip | Bin
.../{index => backward_index}/index.8.4.1-cfs.zip | Bin
.../index.8.4.1-nocfs.zip | Bin
.../{index => backward_index}/index.8.5.0-cfs.zip | Bin
.../index.8.5.0-nocfs.zip | Bin
.../{index => backward_index}/index.8.5.1-cfs.zip | Bin
.../index.8.5.1-nocfs.zip | Bin
.../{index => backward_index}/index.8.5.2-cfs.zip | Bin
.../index.8.5.2-nocfs.zip | Bin
.../{index => backward_index}/index.8.6.0-cfs.zip | Bin
.../index.8.6.0-nocfs.zip | Bin
.../{index => backward_index}/index.8.6.1-cfs.zip | Bin
.../index.8.6.1-nocfs.zip | Bin
.../{index => backward_index}/index.8.6.2-cfs.zip | Bin
.../index.8.6.2-nocfs.zip | Bin
.../{index => backward_index}/index.8.6.3-cfs.zip | Bin
.../index.8.6.3-nocfs.zip | Bin
.../{index => backward_index}/moreterms.8.0.0.zip | Bin
.../{index => backward_index}/sorted.8.0.0.zip | Bin
.../{index => backward_index}/sorted.8.1.0.zip | Bin
.../{index => backward_index}/sorted.8.1.1.zip | Bin
.../{index => backward_index}/sorted.8.2.0.zip | Bin
.../{index => backward_index}/sorted.8.3.0.zip | Bin
.../{index => backward_index}/sorted.8.3.1.zip | Bin
.../{index => backward_index}/sorted.8.4.0.zip | Bin
.../{index => backward_index}/sorted.8.4.1.zip | Bin
.../{index => backward_index}/sorted.8.5.0.zip | Bin
.../{index => backward_index}/sorted.8.5.1.zip | Bin
.../{index => backward_index}/sorted.8.5.2.zip | Bin
.../{index => backward_index}/sorted.8.6.0.zip | Bin
.../{index => backward_index}/sorted.8.6.1.zip | Bin
.../{index => backward_index}/sorted.8.6.2.zip | Bin
.../{index => backward_index}/sorted.8.6.3.zip | Bin
.../unsupported.1.9.0-cfs.zip | Bin
.../unsupported.1.9.0-nocfs.zip | Bin
.../unsupported.2.0.0-cfs.zip | Bin
.../unsupported.2.0.0-nocfs.zip | Bin
.../unsupported.2.1.0-cfs.zip | Bin
.../unsupported.2.1.0-nocfs.zip | Bin
.../unsupported.2.2.0-cfs.zip | Bin
.../unsupported.2.2.0-nocfs.zip | Bin
.../unsupported.2.3.0-cfs.zip | Bin
.../unsupported.2.3.0-nocfs.zip | Bin
.../unsupported.2.4.0-cfs.zip | Bin
.../unsupported.2.4.0-nocfs.zip | Bin
.../unsupported.2.4.1-cfs.zip | Bin
.../unsupported.2.4.1-nocfs.zip | Bin
.../unsupported.2.9.0-cfs.zip | Bin
.../unsupported.2.9.0-nocfs.zip | Bin
.../unsupported.2.9.1-cfs.zip | Bin
.../unsupported.2.9.1-nocfs.zip | Bin
.../unsupported.2.9.2-cfs.zip | Bin
.../unsupported.2.9.2-nocfs.zip | Bin
.../unsupported.2.9.3-cfs.zip | Bin
.../unsupported.2.9.3-nocfs.zip | Bin
.../unsupported.2.9.4-cfs.zip | Bin
.../unsupported.2.9.4-nocfs.zip | Bin
.../unsupported.3.0.0-cfs.zip | Bin
.../unsupported.3.0.0-nocfs.zip | Bin
.../unsupported.3.0.1-cfs.zip | Bin
.../unsupported.3.0.1-nocfs.zip | Bin
.../unsupported.3.0.2-cfs.zip | Bin
.../unsupported.3.0.2-nocfs.zip | Bin
.../unsupported.3.0.3-cfs.zip | Bin
.../unsupported.3.0.3-nocfs.zip | Bin
.../unsupported.3.1.0-cfs.zip | Bin
.../unsupported.3.1.0-nocfs.zip | Bin
.../unsupported.3.2.0-cfs.zip | Bin
.../unsupported.3.2.0-nocfs.zip | Bin
.../unsupported.3.3.0-cfs.zip | Bin
.../unsupported.3.3.0-nocfs.zip | Bin
.../unsupported.3.4.0-cfs.zip | Bin
.../unsupported.3.4.0-nocfs.zip | Bin
.../unsupported.3.5.0-cfs.zip | Bin
.../unsupported.3.5.0-nocfs.zip | Bin
.../unsupported.3.6.0-cfs.zip | Bin
.../unsupported.3.6.0-nocfs.zip | Bin
.../unsupported.3.6.1-cfs.zip | Bin
.../unsupported.3.6.1-nocfs.zip | Bin
.../unsupported.3.6.2-cfs.zip | Bin
.../unsupported.3.6.2-nocfs.zip | Bin
.../unsupported.4.0.0-cfs.zip | Bin
.../unsupported.4.0.0-nocfs.zip | Bin
.../unsupported.4.0.0.1-cfs.zip | Bin
.../unsupported.4.0.0.1-nocfs.zip | Bin
.../unsupported.4.0.0.2-cfs.zip | Bin
.../unsupported.4.0.0.2-nocfs.zip | Bin
.../unsupported.4.1.0-cfs.zip | Bin
.../unsupported.4.1.0-nocfs.zip | Bin
.../unsupported.4.10.0-cfs.zip | Bin
.../unsupported.4.10.0-nocfs.zip | Bin
.../unsupported.4.10.1-cfs.zip | Bin
.../unsupported.4.10.1-nocfs.zip | Bin
.../unsupported.4.10.2-cfs.zip | Bin
.../unsupported.4.10.2-nocfs.zip | Bin
.../unsupported.4.10.3-cfs.zip | Bin
.../unsupported.4.10.3-nocfs.zip | Bin
.../unsupported.4.10.4-cfs.zip | Bin
.../unsupported.4.10.4-nocfs.zip | Bin
.../unsupported.4.2.0-cfs.zip | Bin
.../unsupported.4.2.0-nocfs.zip | Bin
.../unsupported.4.2.1-cfs.zip | Bin
.../unsupported.4.2.1-nocfs.zip | Bin
.../unsupported.4.3.0-cfs.zip | Bin
.../unsupported.4.3.0-nocfs.zip | Bin
.../unsupported.4.3.1-cfs.zip | Bin
.../unsupported.4.3.1-nocfs.zip | Bin
.../unsupported.4.4.0-cfs.zip | Bin
.../unsupported.4.4.0-nocfs.zip | Bin
.../unsupported.4.5.0-cfs.zip | Bin
.../unsupported.4.5.0-nocfs.zip | Bin
.../unsupported.4.5.1-cfs.zip | Bin
.../unsupported.4.5.1-nocfs.zip | Bin
.../unsupported.4.6.0-cfs.zip | Bin
.../unsupported.4.6.0-nocfs.zip | Bin
.../unsupported.4.6.1-cfs.zip | Bin
.../unsupported.4.6.1-nocfs.zip | Bin
.../unsupported.4.7.0-cfs.zip | Bin
.../unsupported.4.7.0-nocfs.zip | Bin
.../unsupported.4.7.1-cfs.zip | Bin
.../unsupported.4.7.1-nocfs.zip | Bin
.../unsupported.4.7.2-cfs.zip | Bin
.../unsupported.4.7.2-nocfs.zip | Bin
.../unsupported.4.8.0-cfs.zip | Bin
.../unsupported.4.8.0-nocfs.zip | Bin
.../unsupported.4.8.1-cfs.zip | Bin
.../unsupported.4.8.1-nocfs.zip | Bin
.../unsupported.4.9.0-cfs.zip | Bin
.../unsupported.4.9.0-nocfs.zip | Bin
.../unsupported.4.9.1-cfs.zip | Bin
.../unsupported.4.9.1-nocfs.zip | Bin
.../unsupported.5.0.0-cfs.zip | Bin
.../unsupported.5.0.0-nocfs.zip | Bin
.../unsupported.5.0.0.singlesegment-cfs.zip | Bin
.../unsupported.5.0.0.singlesegment-nocfs.zip | Bin
.../unsupported.5.1.0-cfs.zip | Bin
.../unsupported.5.1.0-nocfs.zip | Bin
.../unsupported.5.2.0-cfs.zip | Bin
.../unsupported.5.2.0-nocfs.zip | Bin
.../unsupported.5.2.1-cfs.zip | Bin
.../unsupported.5.2.1-nocfs.zip | Bin
.../unsupported.5.3.0-cfs.zip | Bin
.../unsupported.5.3.0-nocfs.zip | Bin
.../unsupported.5.3.1-cfs.zip | Bin
.../unsupported.5.3.1-nocfs.zip | Bin
.../unsupported.5.3.2-cfs.zip | Bin
.../unsupported.5.3.2-nocfs.zip | Bin
.../unsupported.5.4.0-cfs.zip | Bin
.../unsupported.5.4.0-nocfs.zip | Bin
.../unsupported.5.4.1-cfs.zip | Bin
.../unsupported.5.4.1-nocfs.zip | Bin
.../unsupported.5.5.0-cfs.zip | Bin
.../unsupported.5.5.0-nocfs.zip | Bin
.../unsupported.5.5.1-cfs.zip | Bin
.../unsupported.5.5.1-nocfs.zip | Bin
.../unsupported.5.5.2-cfs.zip | Bin
.../unsupported.5.5.2-nocfs.zip | Bin
.../unsupported.5.5.3-cfs.zip | Bin
.../unsupported.5.5.3-nocfs.zip | Bin
.../unsupported.5.5.4-cfs.zip | Bin
.../unsupported.5.5.4-nocfs.zip | Bin
.../unsupported.5.5.5-cfs.zip | Bin
.../unsupported.5.5.5-nocfs.zip | Bin
.../unsupported.5x-with-4x-segments-cfs.zip | Bin
.../unsupported.5x-with-4x-segments-nocfs.zip | Bin
.../unsupported.6.0.0-cfs.zip | Bin
.../unsupported.6.0.0-nocfs.zip | Bin
.../unsupported.6.0.1-cfs.zip | Bin
.../unsupported.6.0.1-nocfs.zip | Bin
.../unsupported.6.1.0-cfs.zip | Bin
.../unsupported.6.1.0-nocfs.zip | Bin
.../unsupported.6.2.0-cfs.zip | Bin
.../unsupported.6.2.0-nocfs.zip | Bin
.../unsupported.6.2.1-cfs.zip | Bin
.../unsupported.6.2.1-nocfs.zip | Bin
.../unsupported.6.3.0-cfs.zip | Bin
.../unsupported.6.3.0-nocfs.zip | Bin
.../unsupported.6.4.0-cfs.zip | Bin
.../unsupported.6.4.0-nocfs.zip | Bin
.../unsupported.6.4.1-cfs.zip | Bin
.../unsupported.6.4.1-nocfs.zip | Bin
.../unsupported.6.4.2-cfs.zip | Bin
.../unsupported.6.4.2-nocfs.zip | Bin
.../unsupported.6.5.0-cfs.zip | Bin
.../unsupported.6.5.0-nocfs.zip | Bin
.../unsupported.6.5.1-cfs.zip | Bin
.../unsupported.6.5.1-nocfs.zip | Bin
.../unsupported.6.6.0-cfs.zip | Bin
.../unsupported.6.6.0-nocfs.zip | Bin
.../unsupported.6.6.1-cfs.zip | Bin
.../unsupported.6.6.1-nocfs.zip | Bin
.../unsupported.6.6.2-cfs.zip | Bin
.../unsupported.6.6.2-nocfs.zip | Bin
.../unsupported.6.6.3-cfs.zip | Bin
.../unsupported.6.6.3-nocfs.zip | Bin
.../unsupported.6.6.4-cfs.zip | Bin
.../unsupported.6.6.4-nocfs.zip | Bin
.../unsupported.6.6.5-cfs.zip | Bin
.../unsupported.6.6.5-nocfs.zip | Bin
.../unsupported.6.6.6-cfs.zip | Bin
.../unsupported.6.6.6-nocfs.zip | Bin
.../unsupported.7.0.0-cfs.zip | Bin
.../unsupported.7.0.0-nocfs.zip | Bin
.../unsupported.7.0.1-cfs.zip | Bin
.../unsupported.7.0.1-nocfs.zip | Bin
.../unsupported.7.1.0-cfs.zip | Bin
.../unsupported.7.1.0-nocfs.zip | Bin
.../unsupported.7.2.0-cfs.zip | Bin
.../unsupported.7.2.0-nocfs.zip | Bin
.../unsupported.7.2.1-cfs.zip | Bin
.../unsupported.7.2.1-nocfs.zip | Bin
.../unsupported.7.3.0-cfs.zip | Bin
.../unsupported.7.3.0-nocfs.zip | Bin
.../unsupported.7.3.1-cfs.zip | Bin
.../unsupported.7.3.1-nocfs.zip | Bin
.../unsupported.7.4.0-cfs.zip | Bin
.../unsupported.7.4.0-nocfs.zip | Bin
.../unsupported.7.5.0-cfs.zip | Bin
.../unsupported.7.5.0-nocfs.zip | Bin
.../unsupported.7.6.0-cfs.zip | Bin
.../unsupported.7.6.0-nocfs.zip | Bin
.../unsupported.7.7.0-cfs.zip | Bin
.../unsupported.7.7.0-nocfs.zip | Bin
.../unsupported.7.7.1-cfs.zip | Bin
.../unsupported.7.7.1-nocfs.zip | Bin
.../unsupported.7.7.2-cfs.zip | Bin
.../unsupported.7.7.2-nocfs.zip | Bin
.../unsupported.7.7.3-cfs.zip | Bin
.../unsupported.7.7.3-nocfs.zip | Bin
.../unsupported.dvupdates.7.0.0.zip | Bin
.../unsupported.empty.7.0.0.zip | Bin
.../unsupported.moreterms.7.0.0.zip | Bin
.../unsupported.sorted-invalid.7.5.0.zip | Bin
.../unsupported.sorted.7.0.0.zip | Bin
.../unsupported.sorted.7.0.1.zip | Bin
.../unsupported.sorted.7.1.0.zip | Bin
.../unsupported.sorted.7.2.0.zip | Bin
.../unsupported.sorted.7.2.1.zip | Bin
.../unsupported.sorted.7.3.0.zip | Bin
.../unsupported.sorted.7.3.1.zip | Bin
.../unsupported.sorted.7.4.0.zip | Bin
.../unsupported.sorted.7.5.0.zip | Bin
.../unsupported.sorted.7.6.0.zip | Bin
.../unsupported.sorted.7.7.3.zip | Bin
.../codecs/lucene50/Lucene50PostingsWriter.java | 507 -----
.../codecs/lucene50/Lucene50RWPostingsFormat.java | 47 -
.../lucene50/Lucene50RWStoredFieldsFormat.java | 51 -
.../lucene/codecs/lucene50/Lucene50SkipWriter.java | 224 --
.../codecs/lucene50/TestBlockPostingsFormat.java | 132 --
.../codecs/lucene50/TestBlockPostingsFormat2.java | 135 --
.../codecs/lucene50/TestBlockPostingsFormat3.java | 463 ----
.../apache/lucene/codecs/lucene50/TestForUtil.java | 96 -
.../lucene50/TestLucene50StoredFieldsFormat.java | 29 -
...tLucene50StoredFieldsFormatHighCompression.java | 80 -
...estLucene50StoredFieldsFormatMergeInstance.java | 29 -
.../codecs/lucene60/Lucene60PointsWriter.java | 272 ---
.../codecs/lucene60/Lucene60RWPointsFormat.java | 35 -
.../codecs/lucene60/TestLucene60PointsFormat.java | 354 ---
.../lucene70/Lucene70RWSegmentInfoFormat.java | 204 --
.../lucene70/TestLucene70SegmentInfoFormat.java | 36 -
.../lucene/codecs/lucene84/Lucene84RWCodec.java | 46 -
.../lucene/codecs/lucene86/Lucene86RWCodec.java | 45 -
.../lucene/index/TestBackwardsCompatibility.java | 1810 ---------------
.../lucene/index/TestIndexWriterOnOldIndex.java | 56 -
.../lucene/index/TestManyPointsInOldIndex.java | 73 -
.../benchmark/byTask/tasks/CreateIndexTask.java | 4 +-
.../lucene/codecs/simpletext/SimpleTextCodec.java | 7 +
.../simpletext/SimpleTextFieldInfosFormat.java | 27 +-
.../simpletext/SimpleTextTermVectorsWriter.java | 2 +-
.../codecs/simpletext/SimpleTextVectorFormat.java | 51 +
.../codecs/simpletext/SimpleTextVectorReader.java | 306 +++
.../codecs/simpletext/SimpleTextVectorWriter.java | 148 ++
.../codecs/uniformsplit/TestBlockWriter.java | 3 +
.../sharedterms/TestSTBlockReader.java | 3 +
.../org/apache/lucene/analysis/package-info.java | 4 +-
.../src/java/org/apache/lucene/codecs/Codec.java | 6 +-
.../java/org/apache/lucene/codecs/FilterCodec.java | 5 +
.../org/apache/lucene/codecs/VectorFormat.java | 76 +
.../org/apache/lucene/codecs/VectorReader.java | 55 +
.../org/apache/lucene/codecs/VectorWriter.java | 288 +++
.../codecs/lucene50/Lucene50FieldInfosFormat.java | 4 +-
.../lucene/codecs/lucene50/package-info.java | 2 +-
.../codecs/lucene60/Lucene60FieldInfosFormat.java | 4 +-
.../lucene/codecs/lucene60/package-info.java | 2 +-
.../codecs/lucene80/Lucene80DocValuesConsumer.java | 80 +-
.../codecs/lucene80/Lucene80DocValuesFormat.java | 24 +-
.../codecs/lucene80/Lucene80DocValuesProducer.java | 36 +-
.../lucene/codecs/lucene80/package-info.java | 2 +-
.../apache/lucene/codecs/lucene84/PForUtil.java | 2 +-
.../lucene/codecs/lucene84/package-info.java | 2 +-
.../lucene/codecs/lucene86/package-info.java | 398 +---
.../lucene/codecs/lucene87/Lucene87Codec.java | 179 --
.../lucene/codecs/lucene87/package-info.java | 398 +---
.../lucene/codecs/lucene90/Lucene90Codec.java | 202 ++
.../codecs/lucene90/Lucene90FieldInfosFormat.java | 340 +++
.../codecs/lucene90/Lucene90VectorFormat.java | 59 +
.../codecs/lucene90/Lucene90VectorReader.java | 470 ++++
.../codecs/lucene90/Lucene90VectorWriter.java | 179 ++
.../lucene/codecs/lucene90/package-info.java | 429 ++++
.../org/apache/lucene/document/FeatureField.java | 68 +-
.../java/org/apache/lucene/document/FieldType.java | 28 +
.../apache/lucene/document/InetAddressPoint.java | 0
.../apache/lucene/document/InetAddressRange.java | 0
.../document/LatLonDocValuesDistanceQuery.java | 148 --
.../lucene/document/LatLonDocValuesField.java | 28 +-
.../LatLonDocValuesPointInGeometryQuery.java | 150 ++
.../LatLonDocValuesPointInPolygonQuery.java | 147 --
.../org/apache/lucene/document/LatLonPoint.java | 28 +-
.../document/LatLonPointInGeometryQuery.java | 260 +++
.../lucene/document/LatLonPointInPolygonQuery.java | 258 ---
.../org/apache/lucene/document/LatLonShape.java | 3 +-
.../document/LatLonShapeBoundingBoxQuery.java | 35 +-
.../apache/lucene/document/RangeFieldQuery.java | 8 +-
.../org/apache/lucene/document/VectorField.java | 99 +
.../apache/lucene/document/XYDocValuesField.java | 22 +-
.../org/apache/lucene/document/XYPointField.java | 15 +-
.../java/org/apache/lucene/document/XYShape.java | 3 +-
.../src/java/org/apache/lucene/geo/Circle.java | 10 +-
.../src/java/org/apache/lucene/geo/Circle2D.java | 2 +-
.../org/apache/lucene/geo/GeoEncodingUtils.java | 12 +-
.../src/java/org/apache/lucene/geo/Line2D.java | 6 +-
.../src/java/org/apache/lucene/geo/Polygon2D.java | 2 +-
.../java/org/apache/lucene/geo/Rectangle2D.java | 25 +-
.../java/org/apache/lucene/index/CheckIndex.java | 85 +-
.../java/org/apache/lucene/index/CodecReader.java | 19 +
.../lucene/index/ConcurrentMergeScheduler.java | 45 +-
.../apache/lucene/index/DocValuesLeafReader.java | 5 +
.../org/apache/lucene/index/DocumentsWriter.java | 20 +-
.../lucene/index/DocumentsWriterFlushQueue.java | 4 +-
.../lucene/index/DocumentsWriterStallControl.java | 4 +
.../lucene/index/ExitableDirectoryReader.java | 26 +-
.../java/org/apache/lucene/index/FieldInfo.java | 57 +-
.../java/org/apache/lucene/index/FieldInfos.java | 76 +-
.../org/apache/lucene/index/FilterCodecReader.java | 6 +
.../org/apache/lucene/index/FilterLeafReader.java | 5 +
.../org/apache/lucene/index/IndexUpgrader.java | 3 +-
.../java/org/apache/lucene/index/IndexWriter.java | 16 +-
.../apache/lucene/index/IndexableFieldType.java | 36 +-
.../org/apache/lucene/index/IndexingChain.java | 101 +-
.../org/apache/lucene/index/KnnGraphValues.java | 58 +
.../java/org/apache/lucene/index/LeafReader.java | 4 +
.../apache/lucene/index/MergeReaderWrapper.java | 5 +
.../java/org/apache/lucene/index/MergeState.java | 11 +
.../java/org/apache/lucene/index/OrdinalMap.java | 38 +-
.../apache/lucene/index/ParallelLeafReader.java | 7 +
.../java/org/apache/lucene/index/PointValues.java | 5 +-
.../lucene/index/RandomAccessVectorValues.java | 60 +
.../index/RandomAccessVectorValuesProducer.java | 32 +
.../org/apache/lucene/index/ReadersAndUpdates.java | 3 +-
.../apache/lucene/index/SegmentCoreReaders.java | 11 +-
.../org/apache/lucene/index/SegmentMerger.java | 142 +-
.../org/apache/lucene/index/SegmentReader.java | 6 +
.../lucene/index/SlowCodecReaderWrapper.java | 32 +-
.../apache/lucene/index/SortingCodecReader.java | 27 +
.../java/org/apache/lucene/index/VectorValues.java | 203 ++
.../apache/lucene/index/VectorValuesWriter.java | 325 +++
.../apache/lucene/search/ExactPhraseMatcher.java | 8 +-
.../org/apache/lucene/search/FieldComparator.java | 11 +
.../java/org/apache/lucene/search/HitQueue.java | 7 +-
.../apache/lucene/search/LeafFieldComparator.java | 2 +-
.../org/apache/lucene/search/MultiPhraseQuery.java | 15 +-
.../java/org/apache/lucene/search/Multiset.java | 4 +-
.../org/apache/lucene/search/PhraseMatcher.java | 3 +-
.../java/org/apache/lucene/search/PhraseQuery.java | 8 +-
.../org/apache/lucene/search/PhraseWeight.java | 6 +-
.../apache/lucene/search/SloppyPhraseMatcher.java | 6 +-
.../java/org/apache/lucene/search/TermScorer.java | 8 +-
.../org/apache/lucene/search/TopDocsCollector.java | 6 +-
.../apache/lucene/search/TopFieldCollector.java | 56 +-
.../apache/lucene/search/TopScoreDocCollector.java | 5 +-
.../search/comparators/NumericComparator.java | 17 +-
.../org/apache/lucene/search/spans/SpanWeight.java | 21 +-
.../src/java/org/apache/lucene/util/IOUtils.java | 147 --
.../java/org/apache/lucene/util/VectorUtil.java | 74 +
.../org/apache/lucene/util/automaton/Automata.java | 27 +-
.../org/apache/lucene/util/hnsw/BoundsChecker.java | 74 +
.../org/apache/lucene/util/hnsw/HnswGraph.java | 223 ++
.../apache/lucene/util/hnsw/HnswGraphBuilder.java | 194 ++
.../java/org/apache/lucene/util/hnsw/Neighbor.java | 70 +
.../org/apache/lucene/util/hnsw/Neighbors.java | 93 +
.../org/apache/lucene/util/hnsw/package-info.java | 22 +
lucene/core/src/java/overview.html | 6 +-
.../services/org.apache.lucene.codecs.Codec | 2 +-
.../BaseLucene80DocValuesFormatTestCase.java | 740 +++++++
...TestBestCompressionLucene80DocValuesFormat.java | 33 +
.../TestBestSpeedLucene80DocValuesFormat.java | 33 +
.../lucene80/TestLucene80DocValuesFormat.java | 747 -------
...tLucene87StoredFieldsFormatHighCompression.java | 9 +-
.../lucene/document/BaseLatLonShapeTestCase.java | 4 +-
.../apache/lucene/document/BaseShapeTestCase.java | 31 +-
.../apache/lucene/document/TestFeatureField.java | 25 +
.../lucene/document/TestInetAddressPoint.java | 0
.../document/TestLatLonPointShapeQueries.java | 19 +-
.../apache/lucene/document/TestLatLonShape.java | 82 +-
.../org/apache/lucene/document/TestXYShape.java | 73 +
.../src/test/org/apache/lucene/geo/TestCircle.java | 6 +-
.../lucene/index/TestExitableDirectoryReader.java | 75 +-
.../org/apache/lucene/index/TestIndexWriter.java | 43 +
.../apache/lucene/index/TestIndexableField.java | 10 +
.../test/org/apache/lucene/index/TestKnnGraph.java | 382 ++++
.../org/apache/lucene/index/TestOrdinalMap.java | 60 +-
.../lucene/index/TestPendingSoftDeletes.java | 12 +-
.../lucene/index/TestSegmentToThreadMapping.java | 3 +
.../lucene/index/TestSortingCodecReader.java | 10 +
.../org/apache/lucene/index/TestVectorValues.java | 774 +++++++
.../lucene/search/TestInetAddressRangeQueries.java | 0
.../lucene/search/TestLatLonDocValuesQueries.java | 11 +-
.../lucene/search/TestLatLonPointQueries.java | 6 +
.../lucene/search/TestXYDocValuesQueries.java | 6 +
.../apache/lucene/search/TestXYPointQueries.java | 6 +
.../lucene/search/spans/TestSpanExplanations.java | 38 +
.../test/org/apache/lucene/util/TestIOUtils.java | 385 ----
.../org/apache/lucene/util/TestVectorUtil.java | 83 +
.../lucene/util/automaton/TestAutomaton.java | 36 +
.../test/org/apache/lucene/util/fst/TestFSTs.java | 2 +-
.../apache/lucene/util/hnsw/KnnGraphTester.java | 494 +++++
.../test/org/apache/lucene/util/hnsw/TestHnsw.java | 465 ++++
lucene/demo/src/java/overview.html | 2 +-
lucene/facet/build.gradle | 2 +
.../directory/DirectoryTaxonomyReader.java | 24 +-
.../directory/DirectoryTaxonomyWriter.java | 7 +-
.../directory/TestBackwardsCompatibility.java | 110 +
.../taxonomy/directory/taxonomy.8.6.3-cfs.zip | Bin 0 -> 3058 bytes
.../grouping/AllGroupHeadsCollectorTest.java | 558 -----
.../search/grouping/AllGroupsCollectorTest.java | 134 --
.../lucene/search/grouping/BlockGroupingTest.java | 225 --
.../grouping/DistinctValuesCollectorTest.java | 481 ----
.../grouping/DoubleRangeGroupSelectorTest.java | 59 -
.../search/grouping/GroupFacetCollectorTest.java | 771 -------
.../lucene/search/grouping/GroupingSearchTest.java | 247 ---
.../grouping/LongRangeGroupSelectorTest.java | 59 -
.../search/grouping/TermGroupSelectorTest.java | 60 -
.../grouping/TestAllGroupHeadsCollector.java | 558 +++++
.../search/grouping/TestAllGroupsCollector.java | 134 ++
.../lucene/search/grouping/TestBlockGrouping.java | 225 ++
.../grouping/TestDistinctValuesCollector.java | 481 ++++
.../grouping/TestDoubleRangeGroupSelector.java | 59 +
.../search/grouping/TestGroupFacetCollector.java | 771 +++++++
.../lucene/search/grouping/TestGroupingSearch.java | 247 +++
.../grouping/TestLongRangeGroupSelector.java | 59 +
.../search/grouping/TestTermGroupSelector.java | 60 +
.../lucene/search/grouping/TestTopGroups.java | 231 ++
.../grouping/TestValueSourceGroupSelector.java | 51 +
.../lucene/search/grouping/TopGroupsTest.java | 231 --
.../grouping/ValueSourceGroupSelectorTest.java | 51 -
.../search/highlight/LimitTokenOffsetFilter.java | 2 +-
.../search/highlight/TermVectorLeafReader.java | 8 +-
.../search/matchhighlight/MatchHighlighter.java | 12 +-
.../lucene/search/matchhighlight/Passage.java | 9 +
.../search/highlight/HighlighterPhraseTest.java | 424 ----
.../lucene/search/highlight/HighlighterTest.java | 2328 --------------------
.../apache/lucene/search/highlight/MissesTest.java | 79 -
.../highlight/OffsetLimitTokenFilterTest.java | 58 -
.../lucene/search/highlight/TestHighlighter.java | 2328 ++++++++++++++++++++
.../search/highlight/TestHighlighterPhrase.java | 424 ++++
.../apache/lucene/search/highlight/TestMisses.java | 79 +
.../highlight/TestOffsetLimitTokenFilter.java | 58 +
.../lucene/search/highlight/TestTokenSources.java | 497 +++++
.../lucene/search/highlight/TokenSourcesTest.java | 497 -----
.../highlight/custom/HighlightCustomQueryTest.java | 196 --
.../highlight/custom/TestHighlightCustomQuery.java | 196 ++
.../uhighlight/LengthGoalBreakIteratorTest.java | 199 --
.../uhighlight/TestLengthGoalBreakIterator.java | 199 ++
.../BreakIteratorBoundaryScannerTest.java | 92 -
.../vectorhighlight/FastVectorHighlighterTest.java | 790 -------
.../vectorhighlight/FieldPhraseListTest.java | 290 ---
.../search/vectorhighlight/FieldQueryTest.java | 961 --------
.../search/vectorhighlight/FieldTermStackTest.java | 210 --
.../vectorhighlight/IndexTimeSynonymTest.java | 315 ---
.../ScoreOrderFragmentsBuilderTest.java | 49 -
.../vectorhighlight/SimpleBoundaryScannerTest.java | 58 -
.../vectorhighlight/SimpleFragListBuilderTest.java | 182 --
.../SimpleFragmentsBuilderTest.java | 336 ---
.../vectorhighlight/SingleFragListBuilderTest.java | 52 -
.../TestBreakIteratorBoundaryScanner.java | 92 +
.../vectorhighlight/TestFastVectorHighlighter.java | 790 +++++++
.../vectorhighlight/TestFieldPhraseList.java | 290 +++
.../search/vectorhighlight/TestFieldQuery.java | 961 ++++++++
.../search/vectorhighlight/TestFieldTermStack.java | 210 ++
.../vectorhighlight/TestIndexTimeSynonym.java | 315 +++
.../TestScoreOrderFragmentsBuilder.java | 49 +
.../vectorhighlight/TestSimpleBoundaryScanner.java | 58 +
.../vectorhighlight/TestSimpleFragListBuilder.java | 182 ++
.../TestSimpleFragmentsBuilder.java | 336 +++
.../vectorhighlight/TestSingleFragListBuilder.java | 52 +
.../TestWeightedFragListBuilder.java | 63 +
.../WeightedFragListBuilderTest.java | 63 -
.../join/GlobalOrdinalsWithScoreCollector.java | 2 +-
.../search/join/GlobalOrdinalsWithScoreQuery.java | 2 +-
.../org/apache/lucene/search/join/JoinUtil.java | 2 +-
.../apache/lucene/search/join/TestJoinUtil.java | 16 +-
.../jetty-continuation-9.4.27.v20200227.jar.sha1 | 1 -
.../jetty-continuation-9.4.34.v20201102.jar.sha1 | 1 +
.../licenses/jetty-http-9.4.27.v20200227.jar.sha1 | 1 -
.../licenses/jetty-http-9.4.34.v20201102.jar.sha1 | 1 +
lucene/licenses/jetty-io-9.4.27.v20200227.jar.sha1 | 1 -
lucene/licenses/jetty-io-9.4.34.v20201102.jar.sha1 | 1 +
.../jetty-server-9.4.27.v20200227.jar.sha1 | 1 -
.../jetty-server-9.4.34.v20201102.jar.sha1 | 1 +
.../jetty-servlet-9.4.27.v20200227.jar.sha1 | 1 -
.../jetty-servlet-9.4.34.v20201102.jar.sha1 | 1 +
.../licenses/jetty-util-9.4.27.v20200227.jar.sha1 | 1 -
.../licenses/jetty-util-9.4.34.v20201102.jar.sha1 | 1 +
lucene/licenses/junit-4.12.jar.sha1 | 1 -
lucene/licenses/junit-4.13.1.jar.sha1 | 1 +
.../apache/lucene/index/memory/MemoryIndex.java | 9 +-
lucene/misc/build.gradle | 4 +-
lucene/misc/native/build.gradle | 69 +
.../misc/native/src/main/posix/NativePosixUtil.cpp | 346 +++
.../native/src/main/windows/WindowsDirectory.cpp | 175 ++
.../org/apache/lucene/document/LazyDocument.java | 195 --
.../java/org/apache/lucene/document/package.html | 22 -
.../org/apache/lucene/index/IndexSplitter.java | 159 --
.../lucene/index/MultiPassIndexSplitter.java | 266 ---
.../org/apache/lucene/index/PKIndexSplitter.java | 182 --
.../src/java/org/apache/lucene/index/package.html | 22 -
.../apache/lucene/misc/CollectorMemoryTracker.java | 2 +-
.../org/apache/lucene/misc/IndexMergeTool.java | 2 +-
.../apache/lucene/misc/document/LazyDocument.java | 196 ++
.../apache/lucene/misc/document/package-info.java | 19 +
.../apache/lucene/misc/index/IndexSplitter.java | 154 ++
.../lucene/misc/index/MultiPassIndexSplitter.java | 280 +++
.../apache/lucene/misc/index/PKIndexSplitter.java | 189 ++
.../org/apache/lucene/misc/index/package-info.java | 19 +
.../misc/search/DiversifiedTopDocsCollector.java | 251 +++
.../apache/lucene/misc/search/DocValuesStats.java | 409 ++++
.../misc/search/DocValuesStatsCollector.java | 68 +
.../search/MemoryAccountingBitsetCollector.java | 60 +
.../apache/lucene/misc/search/package-info.java | 19 +
.../search/similarity/LegacyBM25Similarity.java | 104 +
.../misc/search/similarity/package-info.java | 19 +
.../misc/store/HardlinkCopyDirectoryWrapper.java | 100 +
.../apache/lucene/misc/store/NativePosixUtil.java | 52 +
.../lucene/misc/store/NativeUnixDirectory.java | 437 ++++
.../org/apache/lucene/misc/store/RAFDirectory.java | 184 ++
.../apache/lucene/misc/store/WindowsDirectory.java | 141 ++
.../org/apache/lucene/misc/store/package-info.java | 19 +
.../org/apache/lucene/misc/util/MemoryTracker.java | 26 +
.../apache/lucene/misc/util/fst/ListOfOutputs.java | 233 ++
.../misc/util/fst/UpToTwoPositiveIntOutputs.java | 252 +++
.../apache/lucene/misc/util/fst/package-info.java | 19 +
.../org/apache/lucene/misc/util/package-info.java | 20 +
.../lucene/search/DiversifiedTopDocsCollector.java | 244 --
.../org/apache/lucene/search/DocValuesStats.java | 409 ----
.../lucene/search/DocValuesStatsCollector.java | 64 -
.../search/MemoryAccountingBitsetCollector.java | 58 -
.../src/java/org/apache/lucene/search/package.html | 22 -
.../search/similarity/LegacyBM25Similarity.java | 104 -
.../apache/lucene/search/similarity/package.html | 22 -
.../lucene/store/HardlinkCopyDirectoryWrapper.java | 95 -
.../org/apache/lucene/store/NativePosixUtil.cpp | 346 ---
.../org/apache/lucene/store/NativePosixUtil.java | 52 -
.../apache/lucene/store/NativeUnixDirectory.java | 429 ----
.../java/org/apache/lucene/store/RAFDirectory.java | 176 --
.../org/apache/lucene/store/WindowsDirectory.cpp | 175 --
.../org/apache/lucene/store/WindowsDirectory.java | 137 --
.../src/java/org/apache/lucene/store/package.html | 22 -
.../java/org/apache/lucene/util/MemoryTracker.java | 26 -
.../org/apache/lucene/util/fst/ListOfOutputs.java | 231 --
.../lucene/util/fst/UpToTwoPositiveIntOutputs.java | 250 ---
.../java/org/apache/lucene/util/fst/package.html | 22 -
.../src/java/org/apache/lucene/util/package.html | 23 -
lucene/misc/src/java/overview.html | 25 +-
.../apache/lucene/document/TestLazyDocument.java | 223 --
.../org/apache/lucene/index/TestIndexSplitter.java | 96 -
.../lucene/index/TestMultiPassIndexSplitter.java | 139 --
.../apache/lucene/index/TestPKIndexSplitter.java | 117 -
.../lucene/misc/document/TestLazyDocument.java | 227 ++
.../lucene/misc/index/TestIndexSplitter.java | 103 +
.../misc/index/TestMultiPassIndexSplitter.java | 146 ++
.../lucene/misc/index/TestPKIndexSplitter.java | 123 ++
.../search/TestDiversifiedTopDocsCollector.java | 565 +++++
.../misc/search/TestDocValuesStatsCollector.java | 467 ++++
.../TestMemoryAccountingBitsetCollector.java | 73 +
.../similarity/TestLegacyBM25Similarity.java | 123 ++
.../lucene/misc/store/NativeLibEnableRule.java | 54 +
.../lucene/misc/store/NativeUnixDirectoryTest.java | 46 +
.../store/TestHardLinkCopyDirectoryWrapper.java | 136 ++
.../apache/lucene/misc/store/TestRAFDirectory.java | 35 +
.../lucene/misc/store/WindowsDirectoryTest.java | 40 +
.../misc/util/TestCollectorMemoryTracker.java | 43 +
.../apache/lucene/misc/util/fst/TestFSTsMisc.java | 238 ++
.../search/TestDiversifiedTopDocsCollector.java | 551 -----
.../lucene/search/TestDocValuesStatsCollector.java | 463 ----
.../TestMemoryAccountingBitsetCollector.java | 69 -
.../similarity/TestLegacyBM25Similarity.java | 123 --
.../store/TestHardLinkCopyDirectoryWrapper.java | 126 --
.../org/apache/lucene/store/TestRAFDirectory.java | 32 -
.../lucene/util/TestCollectorMemoryTracker.java | 42 -
.../org/apache/lucene/util/fst/TestFSTsMisc.java | 236 --
lucene/packaging/build.gradle | 4 +-
.../intervals/ConjunctionIntervalIterator.java | 8 +-
.../lucene/queries/intervals/IntervalIterator.java | 6 +
.../lucene/queries/intervals/IntervalQuery.java | 2 +-
.../lucene/queries/CommonTermsQueryTest.java | 552 -----
.../lucene/queries/TestCommonTermsQuery.java | 552 +++++
.../queries/intervals/OneTimeIntervalSource.java | 189 ++
.../queries/intervals/TestIntervalQuery.java | 6 +
.../IndexAndTaxonomyReplicationClientTest.java | 460 ----
.../replicator/IndexAndTaxonomyRevisionTest.java | 171 --
.../replicator/IndexReplicationClientTest.java | 336 ---
.../lucene/replicator/IndexRevisionTest.java | 154 --
.../lucene/replicator/LocalReplicatorTest.java | 182 --
.../apache/lucene/replicator/SessionTokenTest.java | 64 -
.../TestIndexAndTaxonomyReplicationClient.java | 460 ++++
.../replicator/TestIndexAndTaxonomyRevision.java | 171 ++
.../replicator/TestIndexReplicationClient.java | 336 +++
.../lucene/replicator/TestIndexRevision.java | 154 ++
.../lucene/replicator/TestLocalReplicator.java | 182 ++
.../apache/lucene/replicator/TestSessionToken.java | 64 +
.../lucene/replicator/http/HttpReplicatorTest.java | 153 --
.../lucene/replicator/http/TestHttpReplicator.java | 153 ++
.../codecs/idversion/IDVersionPostingsFormat.java | 142 --
.../codecs/idversion/IDVersionPostingsReader.java | 109 -
.../codecs/idversion/IDVersionPostingsWriter.java | 169 --
.../idversion/IDVersionSegmentTermsEnum.java | 1061 ---------
.../idversion/IDVersionSegmentTermsEnumFrame.java | 724 ------
.../codecs/idversion/IDVersionTermState.java | 40 -
.../lucene/codecs/idversion/SingleDocsEnum.java | 90 -
.../codecs/idversion/SinglePostingsEnum.java | 101 -
.../idversion/VersionBlockTreeTermsReader.java | 253 ---
.../idversion/VersionBlockTreeTermsWriter.java | 861 --------
.../codecs/idversion/VersionFieldReader.java | 176 --
.../lucene/codecs/idversion/package-info.java | 22 -
.../apache/lucene/document/BigIntegerPoint.java | 250 ---
.../document/DoublePointMultiRangeBuilder.java | 54 -
.../document/FloatPointMultiRangeBuilder.java | 55 -
.../lucene/document/FloatPointNearestNeighbor.java | 311 ---
.../org/apache/lucene/document/HalfFloatPoint.java | 425 ----
.../lucene/document/IntPointMultiRangeBuilder.java | 53 -
.../apache/lucene/document/LatLonBoundingBox.java | 232 --
.../document/LongPointMultiRangeBuilder.java | 53 -
.../java/org/apache/lucene/document/package.html | 32 -
.../codecs/idversion/IDVersionPostingsFormat.java | 142 ++
.../codecs/idversion/IDVersionPostingsReader.java | 109 +
.../codecs/idversion/IDVersionPostingsWriter.java | 169 ++
.../idversion/IDVersionSegmentTermsEnum.java | 1061 +++++++++
.../idversion/IDVersionSegmentTermsEnumFrame.java | 724 ++++++
.../codecs/idversion/IDVersionTermState.java | 40 +
.../sandbox/codecs/idversion/SingleDocsEnum.java | 90 +
.../codecs/idversion/SinglePostingsEnum.java | 101 +
.../idversion/VersionBlockTreeTermsReader.java | 253 +++
.../idversion/VersionBlockTreeTermsWriter.java | 861 ++++++++
.../codecs/idversion/VersionFieldReader.java | 176 ++
.../sandbox/codecs/idversion/package-info.java | 22 +
.../lucene/sandbox/document/BigIntegerPoint.java | 252 +++
.../document/DoublePointMultiRangeBuilder.java | 54 +
.../document/FloatPointMultiRangeBuilder.java | 55 +
.../document/FloatPointNearestNeighbor.java | 312 +++
.../lucene/sandbox/document/HalfFloatPoint.java | 429 ++++
.../document/IntPointMultiRangeBuilder.java | 53 +
.../lucene/sandbox/document/LatLonBoundingBox.java | 236 ++
.../document/LongPointMultiRangeBuilder.java | 53 +
.../lucene/sandbox/document/package-info.java | 25 +
.../apache/lucene/sandbox/search/BM25FQuery.java | 474 ++++
.../lucene/sandbox/search/CoveringQuery.java | 232 ++
.../lucene/sandbox/search/CoveringScorer.java | 233 ++
.../sandbox/search/DocValuesNumbersQuery.java | 159 ++
.../lucene/sandbox/search/DocValuesTermsQuery.java | 255 +++
.../IndexSortSortedNumericDocValuesRangeQuery.java | 315 +++
.../search/LargeNumHitsTopDocsCollector.java | 166 ++
.../search/LatLonPointPrototypeQueries.java | 119 +
.../apache/lucene/sandbox/search/LongHashSet.java | 165 ++
.../sandbox/search/MultiNormsLeafSimScorer.java | 157 ++
.../lucene/sandbox/search/MultiRangeQuery.java | 399 ++++
.../lucene/sandbox/search/NearestNeighbor.java | 340 +++
.../lucene/sandbox/search/PhraseWildcardQuery.java | 1063 +++++++++
.../lucene/sandbox/search/TermAutomatonQuery.java | 524 +++++
.../lucene/sandbox/search/TermAutomatonScorer.java | 390 ++++
.../search/TokenStreamToTermAutomatonQuery.java | 114 +
.../apache/lucene/sandbox/search/package-info.java | 19 +
.../java/org/apache/lucene/search/BM25FQuery.java | 454 ----
.../org/apache/lucene/search/CoveringQuery.java | 219 --
.../org/apache/lucene/search/CoveringScorer.java | 225 --
.../lucene/search/DocValuesNumbersQuery.java | 150 --
.../apache/lucene/search/DocValuesTermsQuery.java | 246 ---
.../IndexSortSortedNumericDocValuesRangeQuery.java | 301 ---
.../search/LargeNumHitsTopDocsCollector.java | 157 --
.../lucene/search/LatLonPointPrototypeQueries.java | 113 -
.../java/org/apache/lucene/search/LongHashSet.java | 165 --
.../lucene/search/MultiNormsLeafSimScorer.java | 155 --
.../org/apache/lucene/search/MultiRangeQuery.java | 389 ----
.../org/apache/lucene/search/NearestNeighbor.java | 340 ---
.../apache/lucene/search/PhraseWildcardQuery.java | 1045 ---------
.../apache/lucene/search/TermAutomatonQuery.java | 510 -----
.../apache/lucene/search/TermAutomatonScorer.java | 387 ----
.../search/TokenStreamToTermAutomatonQuery.java | 113 -
.../src/java/org/apache/lucene/search/package.html | 28 -
.../org.apache.lucene.codecs.PostingsFormat | 2 +-
.../codecs/idversion/StringAndPayloadField.java | 100 -
.../idversion/TestIDVersionPostingsFormat.java | 834 -------
.../lucene/document/TestBigIntegerPoint.java | 119 -
.../lucene/document/TestDoubleRangeField.java | 67 -
.../document/TestFloatPointNearestNeighbor.java | 248 ---
.../apache/lucene/document/TestHalfFloatPoint.java | 244 --
.../codecs/idversion/StringAndPayloadField.java | 100 +
.../idversion/TestIDVersionPostingsFormat.java | 834 +++++++
.../sandbox/document/TestBigIntegerPoint.java | 121 +
.../sandbox/document/TestDoubleRangeField.java | 69 +
.../document/TestFloatPointNearestNeighbor.java | 253 +++
.../sandbox/document/TestHalfFloatPoint.java | 246 +++
.../sandbox/queries/FuzzyLikeThisQueryTest.java | 154 --
.../sandbox/queries/TestFuzzyLikeThisQuery.java | 154 ++
.../lucene/sandbox/search/LongHashSetTests.java | 101 +
.../lucene/sandbox/search/TestBM25FQuery.java | 179 ++
.../lucene/sandbox/search/TestCoveringQuery.java | 165 ++
.../sandbox/search/TestDocValuesNumbersQuery.java | 196 ++
.../sandbox/search/TestDocValuesTermsQuery.java | 193 ++
.../sandbox/search/TestFieldCacheTermsFilter.java | 77 +
...tIndexSortSortedNumericDocValuesRangeQuery.java | 460 ++++
.../search/TestLargeNumHitsTopDocsCollector.java | 169 ++
.../search/TestLatLonBoundingBoxQueries.java | 308 +++
.../sandbox/search/TestMultiRangeQueries.java | 592 +++++
.../apache/lucene/sandbox/search/TestNearest.java | 258 +++
.../sandbox/search/TestPhraseWildcardQuery.java | 603 +++++
.../sandbox/search/TestTermAutomatonQuery.java | 1000 +++++++++
.../org/apache/lucene/search/LongHashSetTests.java | 100 -
.../org/apache/lucene/search/TestBM25FQuery.java | 169 --
.../apache/lucene/search/TestCoveringQuery.java | 157 --
.../lucene/search/TestDocValuesNumbersQuery.java | 187 --
.../lucene/search/TestDocValuesTermsQuery.java | 184 --
.../lucene/search/TestFieldCacheTermsFilter.java | 74 -
...tIndexSortSortedNumericDocValuesRangeQuery.java | 446 ----
.../search/TestLargeNumHitsTopDocsCollector.java | 158 --
.../search/TestLatLonBoundingBoxQueries.java | 305 ---
.../lucene/search/TestMultiRangeQueries.java | 590 -----
.../test/org/apache/lucene/search/TestNearest.java | 251 ---
.../lucene/search/TestPhraseWildcardQuery.java | 589 -----
.../lucene/search/TestTermAutomatonQuery.java | 982 ---------
.../lucene/spatial/DistanceStrategyTest.java | 118 -
.../org/apache/lucene/spatial/PortedSolr3Test.java | 174 --
.../lucene/spatial/QueryEqualsHashCodeTest.java | 119 -
.../org/apache/lucene/spatial/SpatialArgsTest.java | 50 -
.../lucene/spatial/TestDistanceStrategy.java | 118 +
.../org/apache/lucene/spatial/TestPortedSolr3.java | 174 ++
.../lucene/spatial/TestQueryEqualsHashCode.java | 119 +
.../org/apache/lucene/spatial/TestSpatialArgs.java | 50 +
.../spatial/composite/CompositeStrategyTest.java | 135 --
.../spatial/composite/TestCompositeStrategy.java | 135 ++
.../lucene/spatial/prefix/DateNRStrategyTest.java | 155 --
.../spatial/prefix/HeatmapFacetCounterTest.java | 265 ---
.../lucene/spatial/prefix/JtsPolygonTest.java | 117 -
.../spatial/prefix/NumberRangeFacetsTest.java | 275 ---
.../RandomSpatialOpFuzzyPrefixTree50Test.java | 31 -
.../prefix/RandomSpatialOpFuzzyPrefixTreeTest.java | 558 -----
.../lucene/spatial/prefix/TestDateNRStrategy.java | 155 ++
.../spatial/prefix/TestHeatmapFacetCounter.java | 265 +++
.../lucene/spatial/prefix/TestJtsPolygon.java | 117 +
.../spatial/prefix/TestNumberRangeFacets.java | 275 +++
.../prefix/TestRandomSpatialOpFuzzyPrefixTree.java | 558 +++++
.../TestRandomSpatialOpFuzzyPrefixTree50.java | 31 +
.../prefix/tree/DateRangePrefixTreeTest.java | 289 ---
.../spatial/prefix/tree/S2PrefixTreeTest.java | 113 -
.../spatial/prefix/tree/SpatialPrefixTreeTest.java | 114 -
.../prefix/tree/TestDateRangePrefixTree.java | 289 +++
.../spatial/prefix/tree/TestS2PrefixTree.java | 113 +
.../spatial/prefix/tree/TestSpatialPrefixTree.java | 114 +
.../spatial/query/SpatialArgsParserTest.java | 77 -
.../spatial/query/TestSpatialArgsParser.java | 77 +
.../spatial/serialized/SerializedStrategyTest.java | 61 -
.../spatial/serialized/TestSerializedStrategy.java | 61 +
.../lucene/spatial/spatial4j/Geo3dRptTest.java | 167 --
.../Geo3dShapeSphereModelRectRelationTest.java | 95 -
.../Geo3dShapeWGS84ModelRectRelationTest.java | 137 --
.../apache/lucene/spatial/spatial4j/Geo3dTest.java | 85 -
.../apache/lucene/spatial/spatial4j/TestGeo3d.java | 85 +
.../lucene/spatial/spatial4j/TestGeo3dRpt.java | 167 ++
.../TestGeo3dShapeSphereModelRectRelation.java | 95 +
.../TestGeo3dShapeWGS84ModelRectRelation.java | 137 ++
.../geom/CompositeGeoPolygonRelationshipsTest.java | 842 -------
.../apache/lucene/spatial3d/geom/GeoBBoxTest.java | 390 ----
.../lucene/spatial3d/geom/GeoCircleTest.java | 429 ----
.../spatial3d/geom/GeoConvexPolygonTest.java | 91 -
.../lucene/spatial3d/geom/GeoExactCircleTest.java | 253 ---
.../apache/lucene/spatial3d/geom/GeoModelTest.java | 110 -
.../apache/lucene/spatial3d/geom/GeoPathTest.java | 435 ----
.../apache/lucene/spatial3d/geom/GeoPointTest.java | 110 -
.../lucene/spatial3d/geom/GeoPolygonTest.java | 1932 ----------------
.../apache/lucene/spatial3d/geom/PlaneTest.java | 92 -
.../spatial3d/geom/RandomBinaryCodecTest.java | 69 -
.../spatial3d/geom/RandomGeoPolygonTest.java | 271 ---
.../geom/RandomGeoShapeRelationshipTest.java | 282 ---
.../lucene/spatial3d/geom/RandomPlaneTest.java | 101 -
.../geom/SimpleGeoPolygonRelationshipsTest.java | 875 --------
.../geom/TestCompositeGeoPolygonRelationships.java | 842 +++++++
.../apache/lucene/spatial3d/geom/TestGeoBBox.java | 390 ++++
.../lucene/spatial3d/geom/TestGeoCircle.java | 429 ++++
.../spatial3d/geom/TestGeoConvexPolygon.java | 91 +
.../lucene/spatial3d/geom/TestGeoExactCircle.java | 253 +++
.../apache/lucene/spatial3d/geom/TestGeoModel.java | 110 +
.../apache/lucene/spatial3d/geom/TestGeoPath.java | 435 ++++
.../apache/lucene/spatial3d/geom/TestGeoPoint.java | 110 +
.../lucene/spatial3d/geom/TestGeoPolygon.java | 1932 ++++++++++++++++
.../apache/lucene/spatial3d/geom/TestPlane.java | 92 +
.../spatial3d/geom/TestRandomBinaryCodec.java | 69 +
.../spatial3d/geom/TestRandomGeoPolygon.java | 271 +++
.../geom/TestRandomGeoShapeRelationship.java | 282 +++
.../lucene/spatial3d/geom/TestRandomPlane.java | 101 +
.../geom/TestSimpleGeoPolygonRelationships.java | 875 ++++++++
.../apache/lucene/spatial3d/geom/TestXYZSolid.java | 239 ++
.../apache/lucene/spatial3d/geom/XYZSolidTest.java | 239 --
.../search/suggest/document/TestSuggestField.java | 4 +-
.../lucene/analysis/BaseTokenStreamTestCase.java | 122 +-
.../codecs/compressing/CompressingCodec.java | 2 +-
.../apache/lucene/geo/BaseGeoPointTestCase.java | 415 ++--
.../org/apache/lucene/geo/BaseXYPointTestCase.java | 402 ++--
.../java/org/apache/lucene/geo/GeoTestUtil.java | 2 +-
.../lucene/index/BaseIndexFileFormatTestCase.java | 3 +-
.../java/org/apache/lucene/index/DocHelper.java | 3 +-
.../apache/lucene/index/MismatchedLeafReader.java | 2 +
.../java/org/apache/lucene/index/RandomCodec.java | 3 +-
.../apache/lucene/index/RandomPostingsTester.java | 4 +-
.../java/org/apache/lucene/search/QueryUtils.java | 6 +
.../org/apache/lucene/util/LuceneTestCase.java | 13 -
.../util/TestRuleSetupAndRestoreClassEnv.java | 7 +-
.../src/java/org/apache/lucene/util/TestUtil.java | 9 +-
.../java/org/apache/lucene/util/fst/FSTTester.java | 8 +-
.../org/apache/lucene/util/TestPleaseFail.java | 36 +
settings.gradle | 3 +-
solr/.gitignore | 5 +-
solr/CHANGES.txt | 162 +-
solr/NOTICE.txt | 9 +-
solr/bin/oom_solr.sh | 14 +-
solr/bin/solr | 39 +-
solr/bin/solr.in.sh | 10 +
solr/contrib/clustering/build.gradle | 6 +-
.../handler/clustering/ClusteringComponent.java | 652 +++---
.../solr/handler/clustering/ClusteringEngine.java | 41 -
.../solr/handler/clustering/ClusteringParams.java | 35 -
.../clustering/DocumentClusteringEngine.java | 47 -
.../org/apache/solr/handler/clustering/Engine.java | 195 ++
.../solr/handler/clustering/EngineContext.java | 177 ++
.../solr/handler/clustering/EngineEntry.java | 80 +
.../solr/handler/clustering/EngineParameters.java | 353 +++
.../handler/clustering/FlatKeysAttrVisitor.java | 194 ++
.../solr/handler/clustering/InputDocument.java | 67 +
.../handler/clustering/PathResourceLookup.java | 80 +
.../handler/clustering/SearchClusteringEngine.java | 52 -
.../clustering/carrot2/CarrotClusteringEngine.java | 565 -----
.../handler/clustering/carrot2/CarrotParams.java | 73 -
.../carrot2/LuceneCarrot2StemmerFactory.java | 246 ---
.../carrot2/LuceneCarrot2TokenizerFactory.java | 167 --
.../clustering/carrot2/SolrResourceLocator.java | 142 --
.../SolrStopwordsCarrot2LexicalDataFactory.java | 140 --
.../handler/clustering/carrot2/package-info.java | 25 -
.../solr/handler/clustering/package-info.java | 12 +-
....carrot2.clustering.ClusteringAlgorithmProvider | 3 +
.../carrot2/mock-external-attrs-attributes.xml | 10 -
.../conf/clustering/carrot2/stoplabels.mt | 1 -
.../conf/clustering/carrot2/stopwords.mt | 1 -
.../conf/clustering/custom/stoplabels.mt | 1 -
.../conf/clustering/custom/stopwords.mt | 1 -
.../collection1/conf/mapping-ISOLatin1Accent.txt | 246 ---
.../clustering/solr/collection1/conf/schema.xml | 335 +--
.../solr/collection1/conf/solrconfig.xml | 423 +---
.../clustering/solr/collection1/conf/spellings.txt | 2 -
.../clustering/solr/collection1/conf/stopwords.txt | 5 +-
.../clustering/solr/collection1/conf/synonyms.txt | 31 -
.../english.stoplabels.utf8 | 1 +
.../english.stopwords.utf8 | 2 +
solr/contrib/clustering/src/test-files/log4j2.xml | 43 +
...ComponentDistributedTest-testLingoAlgorithm.txt | 17 +
...ngComponentDistributedTest-testStcAlgorithm.txt | 10 +
...ngComponentTest-testCustomLanguageResources.txt | 2 +
...steringComponentTest-testDefaultEngineOrder.txt | 2 +
...ClusteringComponentTest-testKmeansAlgorithm.txt | 8 +
.../ClusteringComponentTest-testLingoAlgorithm.txt | 17 +
...eringComponentTest-testParamDefaultLanguage.txt | 2 +
...steringComponentTest-testParamLanguageField.txt | 9 +
...lusteringComponentTest-testParamOtherTopics.txt | 12 +
...eringComponentTest-testParamSubclusters-off.txt | 4 +
...teringComponentTest-testParamSubclusters-on.txt | 13 +
...usteringComponentTest-testPassingAttributes.txt | 2 +
...nentTest-testPassingAttributesViaSolrConfig.txt | 2 +
.../ClusteringComponentTest-testStcAlgorithm.txt | 10 +
.../clustering/AbstractClusteringTestCase.java | 250 ---
.../ClusteringComponentDistributedTest.java | 130 ++
.../clustering/ClusteringComponentTest.java | 442 +++-
.../DistributedClusteringComponentTest.java | 54 -
.../clustering/EchoClusteringAlgorithm.java | 62 +
.../EchoClusteringAlgorithmProvider.java | 34 +
.../clustering/MockClusteringAlgorithm.java | 129 ++
.../MockClusteringAlgorithmProvider.java | 31 +
.../clustering/MockDocumentClusteringEngine.java | 42 -
.../handler/clustering/ResourceCheckAlgorithm.java | 74 +
.../clustering/ResourceCheckAlgorithmProvider.java | 31 +
.../apache/solr/handler/clustering/SampleData.java | 146 ++
.../carrot2/CarrotClusteringEngineTest.java | 542 -----
.../carrot2/DuplicatingStemmerFactory.java | 33 -
.../carrot2/DuplicatingTokenizerFactory.java | 51 -
.../carrot2/EchoClusteringAlgorithm.java | 76 -
.../carrot2/EchoStemsClusteringAlgorithm.java | 74 -
.../carrot2/EchoTokensClusteringAlgorithm.java | 68 -
.../LexicalResourcesCheckClusteringAlgorithm.java | 79 -
.../carrot2/MockClusteringAlgorithm.java | 103 -
.../src/java/org/apache/solr/ltr/LTRRescorer.java | 153 +-
.../java/org/apache/solr/ltr/LTRScoringQuery.java | 4 +
.../solr/ltr/SolrQueryRequestContextUtils.java | 12 +-
.../apache/solr/ltr/interleaving/Interleaving.java | 46 +
.../solr/ltr/interleaving/InterleavingResult.java | 42 +
.../ltr/interleaving/LTRInterleavingQuery.java | 75 +
.../ltr/interleaving/LTRInterleavingRescorer.java | 162 ++
.../interleaving/LTRInterleavingScoringQuery.java | 53 +
.../OriginalRankingLTRScoringQuery.java | 33 +
.../algorithms/TeamDraftInterleaving.java | 127 ++
.../ltr/interleaving/algorithms/package-info.java | 21 +
.../apache/solr/ltr/interleaving/package-info.java | 21 +
.../LTRFeatureLoggerTransformerFactory.java | 187 +-
.../LTRInterleavingTransformerFactory.java | 114 +
.../apache/solr/ltr/search/LTRQParserPlugin.java | 155 +-
.../java/org/apache/solr/ltr/search/LTRQuery.java | 80 +
solr/contrib/ltr/src/java/overview.html | 2 +-
.../solr/collection1/conf/solrconfig-ltr.xml | 9 +
.../org/apache/solr/ltr/TestLTRQParserExplain.java | 160 ++
.../org/apache/solr/ltr/TestLTRQParserPlugin.java | 16 +-
.../apache/solr/ltr/TestLTRReRankingPipeline.java | 3 +-
.../org/apache/solr/ltr/TestLTRScoringQuery.java | 3 +-
.../test/org/apache/solr/ltr/TestLTRWithSort.java | 103 +
.../test/org/apache/solr/ltr/TestRerankBase.java | 3 +-
.../interleaving/TestLTRQParserInterleaving.java | 206 ++
.../algorithms/TeamDraftInterleavingTest.java | 170 ++
.../apache/solr/ltr/norm/TestMinMaxNormalizer.java | 5 +-
.../solr/ltr/norm/TestStandardNormalizer.java | 5 +-
.../transform/TestFeatureLoggerTransformer.java | 400 ++++
.../transform/TestInterleavingTransformer.java | 277 +++
solr/contrib/prometheus-exporter/bin/solr-exporter | 45 +-
.../prometheus-exporter/bin/solr-exporter.cmd | 15 +-
solr/contrib/prometheus-exporter/build.gradle | 51 +-
.../conf/grafana-solr-dashboard.json | 87 +-
solr/contrib/prometheus-exporter/conf/log4j2.xml | 40 +
.../conf/solr-exporter-config.xml | 34 +
.../prometheus/exporter/MetricsConfiguration.java | 72 +-
.../solr/prometheus/exporter/SolrExporter.java | 19 +-
.../solr/prometheus/scraper/SolrCloudScraper.java | 16 +-
.../prometheus/PrometheusExporterTestBase.java | 1 +
.../org/apache/solr/prometheus/utils/Helpers.java | 13 +-
.../src/java/org/apache/solr/api/AnnotatedApi.java | 20 +-
.../org/apache/solr/api/ConfigurablePlugin.java | 33 +
.../apache/solr/api/ContainerPluginsRegistry.java | 488 ++++
.../apache/solr/api/CustomContainerPlugins.java | 362 ---
.../src/java/org/apache/solr/api/V2HttpCall.java | 2 +-
.../src/java/org/apache/solr/cloud/CloudUtil.java | 18 +-
.../org/apache/solr/cloud/ClusterSingleton.java | 73 +
.../src/java/org/apache/solr/cloud/Overseer.java | 31 +-
.../OverseerCollectionConfigSetProcessor.java | 11 +-
.../apache/solr/cloud/OverseerTaskProcessor.java | 21 +-
.../org/apache/solr/cloud/RecoveryStrategy.java | 13 +-
.../org/apache/solr/cloud/ReplicateFromLeader.java | 13 +-
.../solr/cloud/ShardLeaderElectionContext.java | 2 +-
.../solr/cloud/ShardLeaderElectionContextBase.java | 4 +-
.../java/org/apache/solr/cloud/ZkController.java | 62 +-
.../solr/cloud/api/collections/AddReplicaCmd.java | 26 -
.../apache/solr/cloud/api/collections/Assign.java | 72 +-
.../cloud/api/collections/CreateCollectionCmd.java | 51 -
.../cloud/api/collections/DeleteCollectionCmd.java | 21 -
.../solr/cloud/api/collections/MoveReplicaCmd.java | 21 -
.../OverseerCollectionMessageHandler.java | 23 +-
.../solr/cloud/api/collections/SplitShardCmd.java | 10 +-
.../apache/solr/cloud/overseer/SliceMutator.java | 18 +-
.../org/apache/solr/cloud/rule/ImplicitSnitch.java | 65 -
.../apache/solr/cloud/rule/ReplicaAssigner.java | 452 ----
.../src/java/org/apache/solr/cloud/rule/Rule.java | 395 ----
.../solr/cloud/rule/ServerSnitchContext.java | 59 -
.../org/apache/solr/cloud/rule/package-info.java | 23 -
.../src/java/org/apache/solr/cluster/Replica.java | 12 +-
.../org/apache/solr/cluster/SolrCollection.java | 33 +-
.../apache/solr/cluster/events/ClusterEvent.java | 47 +
.../solr/cluster/events/ClusterEventListener.java | 36 +
.../solr/cluster/events/ClusterEventProducer.java | 62 +
.../cluster/events/ClusterEventProducerBase.java | 107 +
.../events/ClusterPropertiesChangedEvent.java | 33 +
.../solr/cluster/events/CollectionsAddedEvent.java | 33 +
.../cluster/events/CollectionsRemovedEvent.java | 32 +
.../apache/solr/cluster/events/NoOpProducer.java | 51 +
.../apache/solr/cluster/events/NodesDownEvent.java | 32 +
.../apache/solr/cluster/events/NodesUpEvent.java | 32 +
.../events/impl/ClusterEventProducerFactory.java | 195 ++
.../impl/CollectionsRepairEventListener.java | 264 +++
.../events/impl/DefaultClusterEventProducer.java | 231 ++
.../impl/DelegatingClusterEventProducer.java | 141 ++
.../solr/cluster/events/impl/package-info.java | 23 +
.../apache/solr/cluster/events/package-info.java | 23 +
.../solr/cluster/placement/AttributeFetcher.java | 49 +-
.../solr/cluster/placement/AttributeValues.java | 60 +-
.../solr/cluster/placement/PlacementPlan.java | 2 +-
.../solr/cluster/placement/PlacementPlugin.java | 14 +-
.../cluster/placement/PlacementPluginConfig.java | 10 +
.../solr/cluster/placement/PlacementRequest.java | 54 +-
.../placement/impl/AttributeFetcherImpl.java | 376 ++--
.../placement/impl/AttributeValuesImpl.java | 146 +-
.../placement/impl/PlacementPlanFactoryImpl.java | 18 +-
.../cluster/placement/impl/PlacementPlanImpl.java | 10 +
.../impl/PlacementPluginAssignStrategy.java | 4 +-
.../placement/impl/PlacementPluginConfigImpl.java | 34 +-
.../placement/impl/PlacementRequestImpl.java | 18 +-
.../placement/impl/ReplicaPlacementImpl.java | 5 +
.../impl/SimpleClusterAbstractionsImpl.java | 120 +-
.../plugins/AffinityPlacementFactory.java | 577 +++++
.../plugins/MinimizeCoresPlacementFactory.java | 126 ++
.../SamplePluginAffinityReplicaPlacement.java | 509 -----
.../plugins/SamplePluginMinimizeCores.java | 138 --
.../plugins/SamplePluginRandomPlacement.java | 88 -
.../cluster/placement/plugins/package-info.java | 2 +-
.../java/org/apache/solr/core/BlobRepository.java | 3 +-
.../apache/solr/core/CachingDirectoryFactory.java | 15 +-
.../src/java/org/apache/solr/core/CloudConfig.java | 2 +-
.../org/apache/solr/core/ClusterSingletons.java | 193 ++
.../java/org/apache/solr/core/CoreContainer.java | 284 ++-
.../java/org/apache/solr/core/MetricsConfig.java | 127 +-
.../src/java/org/apache/solr/core/NodeConfig.java | 38 +-
.../org/apache/solr/core/SchemaCodecFactory.java | 6 +-
.../src/java/org/apache/solr/core/SolrConfig.java | 68 +-
.../src/java/org/apache/solr/core/SolrCore.java | 34 +-
.../src/java/org/apache/solr/core/SolrCores.java | 226 +-
.../src/java/org/apache/solr/core/SolrPaths.java | 59 -
.../org/apache/solr/core/SolrResourceLoader.java | 20 +-
.../java/org/apache/solr/core/SolrXmlConfig.java | 86 +-
.../apache/solr/core/StandardDirectoryFactory.java | 15 +-
.../apache/solr/core/TransientSolrCoreCache.java | 4 +
.../solr/core/TransientSolrCoreCacheDefault.java | 16 +-
.../solr/core/TransientSolrCoreCacheFactory.java | 16 +-
.../java/org/apache/solr/core/XmlConfigFile.java | 8 +-
.../src/java/org/apache/solr/core/ZkContainer.java | 32 +-
.../apache/solr/filestore/DistribPackageStore.java | 2 +-
.../java/org/apache/solr/handler/ClusterAPI.java | 40 +-
.../solr/handler/ContentStreamHandlerBase.java | 65 +-
.../apache/solr/handler/ReplicationHandler.java | 153 +-
.../org/apache/solr/handler/SolrConfigHandler.java | 33 +-
.../apache/solr/handler/admin/ClusterStatus.java | 26 +-
.../solr/handler/admin/CollectionsHandler.java | 56 +-
.../solr/handler/admin/ConfigSetsHandler.java | 76 +-
.../solr/handler/admin/ContainerPluginsApi.java | 39 +-
.../solr/handler/admin/HealthCheckHandler.java | 2 +-
.../apache/solr/handler/admin/MetricsHandler.java | 18 +-
.../solr/handler/admin/MetricsHistoryHandler.java | 18 +-
.../solr/handler/admin/RebalanceLeaders.java | 2 +-
.../solr/handler/admin/RequestSyncShardOp.java | 1 -
.../org/apache/solr/handler/admin/StatusOp.java | 5 +-
.../solr/handler/admin/ZookeeperInfoHandler.java | 10 +-
.../handler/component/RealTimeGetComponent.java | 2 +-
.../solr/index/SlowCompositeReaderWrapper.java | 6 +
.../org/apache/solr/metrics/MetricSuppliers.java | 267 ++-
.../org/apache/solr/metrics/SolrMetricManager.java | 43 +-
.../apache/solr/metrics/SolrMetricsContext.java | 28 +
.../apache/solr/packagemanager/PackageManager.java | 3 +-
.../apache/solr/response/BinaryResponseWriter.java | 3 +
.../response/transform/ChildDocTransformer.java | 11 +-
.../org/apache/solr/schema/ExternalFileField.java | 5 +-
.../org/apache/solr/schema/ManagedIndexSchema.java | 2 +-
.../java/org/apache/solr/schema/SchemaField.java | 11 +
.../solr/search/CollapsingQParserPlugin.java | 2 +
.../src/java/org/apache/solr/search/Insanity.java | 3 +-
.../org/apache/solr/search/SolrCoreParser.java | 13 +-
.../apache/solr/search/SolrDocumentFetcher.java | 2 +-
.../org/apache/solr/search/SolrIndexSearcher.java | 18 +-
.../org/apache/solr/search/TermsQParserPlugin.java | 1 +
.../solr/search/join/GraphEdgeCollector.java | 2 +-
.../similarities/LegacyBM25SimilarityFactory.java | 2 +-
.../similarities/SchemaSimilarityFactory.java | 2 +-
.../java/org/apache/solr/servlet/HttpSolrCall.java | 19 +-
.../apache/solr/servlet/SolrDispatchFilter.java | 163 +-
.../apache/solr/uninverting/UninvertingReader.java | 3 +-
.../src/java/org/apache/solr/update/PeerSync.java | 30 +-
.../java/org/apache/solr/update/SolrCoreState.java | 75 +-
.../org/apache/solr/update/SolrIndexSplitter.java | 2 +-
.../processor/AtomicUpdateDocumentMerger.java | 121 +-
.../src/java/org/apache/solr/util/PackageTool.java | 12 +-
.../src/java/org/apache/solr/util/SolrCLI.java | 3 +
.../apache/solr/util/plugin/MapPluginLoader.java | 1 +
.../solr/util/plugin/NamedListPluginLoader.java | 2 +-
.../MyPatternReplaceCharFilterFactory.java.txt | 1 +
.../src/test-files/solr/solr-metricsconfig.xml | 2 +-
.../src/test-files/solr/solr-metricsconfig1.xml | 28 +
solr/core/src/test-files/solr/solr.xml | 2 +
.../org/apache/solr/BasicFunctionalityTest.java | 2 +-
.../apache/solr/SolrTestCaseJ4DeleteCoreTest.java | 36 +
.../test/org/apache/solr/TestRandomDVFaceting.java | 1 +
.../test/org/apache/solr/TestSolrTestCaseJ4.java | 36 -
.../solr/backcompat/TestLuceneIndexBackCompat.java | 2 +-
.../solr/cloud/ClusterStateMockUtilTest.java | 1 +
.../apache/solr/cloud/CollectionsAPISolrJTest.java | 1 +
.../org/apache/solr/cloud/ConfigSetsAPITest.java | 94 -
.../org/apache/solr/cloud/DeleteReplicaTest.java | 6 +-
.../org/apache/solr/cloud/LeaderElectionTest.java | 32 +-
.../solr/cloud/MetricsHistoryIntegrationTest.java | 1 +
.../MetricsHistoryWithAuthIntegrationTest.java | 2 +-
.../org/apache/solr/cloud/NodeMutatorTest.java | 2 +
.../OverseerCollectionConfigSetProcessorTest.java | 16 +-
.../test/org/apache/solr/cloud/OverseerTest.java | 98 +-
.../org/apache/solr/cloud/ReplaceNodeTest.java | 39 +
.../test/org/apache/solr/cloud/SplitShardTest.java | 1 +
.../apache/solr/cloud/TestBaseStatsCacheCloud.java | 1 +
.../org/apache/solr/cloud/TestCloudRecovery.java | 1 +
.../org/apache/solr/cloud/TestConfigSetsAPI.java | 384 +++-
.../solr/cloud/TestConfigSetsAPIShareSchema.java | 94 +
.../cloud/TestLeaderElectionWithEmptyReplica.java | 4 +-
.../solr/cloud/TestMiniSolrCloudClusterSSL.java | 3 +
.../solr/cloud/TestPullReplicaErrorHandling.java | 23 +-
.../solr/cloud/TestRandomRequestDistribution.java | 5 +-
.../org/apache/solr/cloud/TestTlogReplica.java | 1 +
.../org/apache/solr/cloud/ZkControllerTest.java | 11 +-
.../CollectionsAPIDistributedZkTest.java | 5 +-
.../solr/cloud/api/collections/ShardSplitTest.java | 5 +-
.../apache/solr/cloud/rule/ImplicitSnitchTest.java | 244 --
.../org/apache/solr/cloud/rule/RuleEngineTest.java | 323 ---
.../test/org/apache/solr/cloud/rule/RulesTest.java | 328 ---
.../solr/cluster/events/AllEventsListener.java | 61 +
.../cluster/events/ClusterEventProducerTest.java | 370 ++++
.../impl/CollectionsRepairEventListenerTest.java | 164 ++
.../cluster/placement/AttributeFetcherForTest.java | 93 +
.../apache/solr/cluster/placement/Builders.java | 452 ++++
.../placement/ClusterAbstractionsForTest.java | 316 +++
.../impl/PlacementPluginIntegrationTest.java | 112 +
.../impl/SimpleClusterAbstractionsTest.java | 89 +
.../plugins/AffinityPlacementFactoryTest.java | 730 ++++++
.../org/apache/solr/core/ResourceLoaderTest.java | 7 +-
.../org/apache/solr/core/TestCodecSupport.java | 2 +-
.../org/apache/solr/core/TestCoreContainer.java | 128 +-
.../org/apache/solr/core/TestCoreDiscovery.java | 3 +-
.../org/apache/solr/core/TestCustomStream.java | 19 -
.../test/org/apache/solr/core/TestLazyCores.java | 10 +-
.../org/apache/solr/core/TestMinimalConfig.java | 45 +
.../core/snapshots/TestSolrCloudSnapshots.java | 13 +-
.../solr/core/snapshots/TestSolrCoreSnapshots.java | 6 +-
.../org/apache/solr/handler/TestBlobHandler.java | 3 +-
.../org/apache/solr/handler/TestConfigReload.java | 2 +-
.../apache/solr/handler/TestContainerPlugin.java | 190 +-
.../solr/handler/TestHdfsBackupRestoreCore.java | 7 +-
.../org/apache/solr/handler/TestReqParamsAPI.java | 2 +-
.../solr/handler/TestSolrConfigHandlerCloud.java | 4 +-
.../handler/TestSolrConfigHandlerConcurrent.java | 2 +-
.../solr/handler/admin/AdminHandlersProxyTest.java | 1 +
.../handler/admin/MetricsHistoryHandlerTest.java | 1 +
.../solr/handler/admin/TestCollectionAPIs.java | 4 -
.../handler/component/CloudReplicaSourceTest.java | 1 +
.../solr/index/WrapperMergePolicyFactoryTest.java | 2 +-
.../apache/solr/index/hdfs/CheckHdfsIndexTest.java | 2 +
.../org/apache/solr/metrics/MetricsConfigTest.java | 36 +-
.../solr/metrics/MetricsDisabledCloudTest.java | 72 +
.../apache/solr/metrics/SolrMetricManagerTest.java | 94 +-
.../solr/metrics/SolrMetricsIntegrationTest.java | 18 +-
.../solr/response/TestBinaryResponseWriter.java | 16 +
.../TestChildDocTransformerHierarchy.java | 47 +
.../org/apache/solr/search/LargeFieldTest.java | 2 +-
.../apache/solr/search/SolrIndexSearcherTest.java | 123 ++
.../test/org/apache/solr/search/TestDocSet.java | 6 +
.../org/apache/solr/search/TestSolrCoreParser.java | 14 +-
.../org/apache/solr/search/TestXmlQParser.java | 18 +-
.../solr/search/facet/TestJsonFacetRefinement.java | 12 +-
.../apache/solr/search/facet/TestJsonFacets.java | 6 +-
.../solr/search/facet/TestJsonRangeFacets.java | 10 +-
.../TestLegacyBM25SimilarityFactory.java | 2 +-
.../solr/search/stats/TestDefaultStatsCache.java | 1 +
.../security/MultiDestinationAuditLoggerTest.java | 5 +-
.../solr/uninverting/TestFieldCacheSort.java | 3 +-
.../apache/solr/update/SolrCmdDistributorTest.java | 25 +-
.../update/processor/AtomicUpdateJavabinTest.java | 370 ++++
.../processor/AtomicUpdateRemovalJavabinTest.java | 132 --
.../solr/update/processor/AtomicUpdatesTest.java | 32 +
solr/dev-docs/overseer/overseer.adoc | 9 +-
solr/dev-docs/plugins/container-plugins.adoc | 143 ++
solr/docker/Dockerfile | 11 +-
solr/docker/build.gradle | 41 +-
solr/docker/include/scripts/docker-entrypoint.sh | 3 +
solr/docker/include/scripts/init-var-solr | 16 +-
solr/docker/include/scripts/oom_solr.sh | 38 -
solr/docker/include/scripts/solr-create | 3 -
solr/docker/include/scripts/solr-fg | 29 +-
solr/docker/include/scripts/solr-foreground | 3 -
solr/docker/include/scripts/solr-precreate | 3 -
.../cases/empty-varsolr-vol-solr-nocopy/test.sh | 1 +
solr/docker/tests/cases/version/test.sh | 45 -
solr/licenses/attributes-binder-1.3.3.jar.sha1 | 1 -
solr/licenses/attributes-binder-LICENSE-ASL.txt | 202 --
solr/licenses/attributes-binder-NOTICE.txt | 9 -
solr/licenses/carrot2-LICENSE-BSD_LIKE.txt | 36 +
solr/licenses/carrot2-NOTICE.txt | 10 +
solr/licenses/carrot2-core-4.0.4.jar.sha1 | 1 +
solr/licenses/carrot2-guava-18.0.jar.sha1 | 1 -
solr/licenses/carrot2-guava-LICENSE-ASL.txt | 202 --
solr/licenses/carrot2-guava-NOTICE.txt | 5 -
solr/licenses/carrot2-mini-3.16.2.jar.sha1 | 1 -
solr/licenses/carrot2-mini-LICENSE-BSD_LIKE.txt | 36 -
solr/licenses/carrot2-mini-NOTICE.txt | 10 -
.../http2-client-9.4.27.v20200227.jar.sha1 | 1 -
.../http2-client-9.4.34.v20201102.jar.sha1 | 1 +
.../http2-common-9.4.27.v20200227.jar.sha1 | 1 -
.../http2-common-9.4.34.v20201102.jar.sha1 | 1 +
.../licenses/http2-hpack-9.4.27.v20200227.jar.sha1 | 1 -
.../licenses/http2-hpack-9.4.34.v20201102.jar.sha1 | 1 +
...http-client-transport-9.4.27.v20200227.jar.sha1 | 1 -
...http-client-transport-9.4.34.v20201102.jar.sha1 | 1 +
.../http2-server-9.4.27.v20200227.jar.sha1 | 1 -
.../http2-server-9.4.34.v20201102.jar.sha1 | 1 +
.../jetty-alpn-client-9.4.27.v20200227.jar.sha1 | 1 -
.../jetty-alpn-client-9.4.34.v20201102.jar.sha1 | 1 +
...etty-alpn-java-client-9.4.27.v20200227.jar.sha1 | 1 -
...etty-alpn-java-client-9.4.34.v20201102.jar.sha1 | 1 +
...etty-alpn-java-server-9.4.27.v20200227.jar.sha1 | 1 -
...etty-alpn-java-server-9.4.34.v20201102.jar.sha1 | 1 +
.../jetty-alpn-server-9.4.27.v20200227.jar.sha1 | 1 -
.../jetty-alpn-server-9.4.34.v20201102.jar.sha1 | 1 +
.../jetty-client-9.4.27.v20200227.jar.sha1 | 1 -
.../jetty-client-9.4.34.v20201102.jar.sha1 | 1 +
.../jetty-continuation-9.4.27.v20200227.jar.sha1 | 1 -
.../jetty-continuation-9.4.34.v20201102.jar.sha1 | 1 +
.../jetty-deploy-9.4.27.v20200227.jar.sha1 | 1 -
.../jetty-deploy-9.4.34.v20201102.jar.sha1 | 1 +
solr/licenses/jetty-http-9.4.27.v20200227.jar.sha1 | 1 -
solr/licenses/jetty-http-9.4.34.v20201102.jar.sha1 | 1 +
solr/licenses/jetty-io-9.4.27.v20200227.jar.sha1 | 1 -
solr/licenses/jetty-io-9.4.34.v20201102.jar.sha1 | 1 +
solr/licenses/jetty-jmx-9.4.27.v20200227.jar.sha1 | 1 -
solr/licenses/jetty-jmx-9.4.34.v20201102.jar.sha1 | 1 +
.../jetty-rewrite-9.4.27.v20200227.jar.sha1 | 1 -
.../jetty-rewrite-9.4.34.v20201102.jar.sha1 | 1 +
.../jetty-security-9.4.27.v20200227.jar.sha1 | 1 -
.../jetty-security-9.4.34.v20201102.jar.sha1 | 1 +
.../jetty-server-9.4.27.v20200227.jar.sha1 | 1 -
.../jetty-server-9.4.34.v20201102.jar.sha1 | 1 +
.../jetty-servlet-9.4.27.v20200227.jar.sha1 | 1 -
.../jetty-servlet-9.4.34.v20201102.jar.sha1 | 1 +
.../jetty-servlets-9.4.27.v20200227.jar.sha1 | 1 -
.../jetty-servlets-9.4.34.v20201102.jar.sha1 | 1 +
.../jetty-start-9.4.27.v20200227-shaded.jar.sha1 | 1 -
.../jetty-start-9.4.34.v20201102-shaded.jar.sha1 | 1 +
solr/licenses/jetty-util-9.4.27.v20200227.jar.sha1 | 1 -
solr/licenses/jetty-util-9.4.34.v20201102.jar.sha1 | 1 +
.../jetty-webapp-9.4.27.v20200227.jar.sha1 | 1 -
.../jetty-webapp-9.4.34.v20201102.jar.sha1 | 1 +
solr/licenses/jetty-xml-9.4.27.v20200227.jar.sha1 | 1 -
solr/licenses/jetty-xml-9.4.34.v20201102.jar.sha1 | 1 +
solr/licenses/junit-4.12.jar.sha1 | 1 -
solr/licenses/junit-4.13.1.jar.sha1 | 1 +
solr/licenses/simple-xml-safe-2.7.1.jar.sha1 | 1 -
solr/licenses/simple-xml-safe-LICENSE-ASL.txt | 202 --
solr/licenses/simple-xml-safe-NOTICE.txt | 2 -
solr/server/etc/security.policy | 2 +-
.../solr/configsets/_default/conf/solrconfig.xml | 2 +-
.../conf/clustering/carrot2/README.md | 11 -
.../conf/clustering/carrot2/kmeans-attributes.xml | 19 -
.../conf/clustering/carrot2/lingo-attributes.xml | 24 -
.../conf/clustering/carrot2/stc-attributes.xml | 19 -
.../conf/solrconfig.xml | 70 +-
solr/server/solr/solr.xml | 2 +
solr/solr-ref-guide/build.gradle | 281 ++-
solr/solr-ref-guide/src/_config.yml.template | 2 +-
solr/solr-ref-guide/src/_includes/head.html | 5 +-
.../authentication-and-authorization-plugins.adoc | 2 +-
solr/solr-ref-guide/src/blob-store-api.adoc | 274 ---
solr/solr-ref-guide/src/codec-factory.adoc | 4 +-
solr/solr-ref-guide/src/collection-management.adoc | 12 +-
.../src/common-query-parameters.adoc | 3 +-
solr/solr-ref-guide/src/config-api.adoc | 3 +-
solr/solr-ref-guide/src/configsets-api.adoc | 94 +-
solr/solr-ref-guide/src/configuration-apis.adoc | 5 +-
solr/solr-ref-guide/src/css/navs.css | 2 +-
...datadir-and-directoryfactory-in-solrconfig.adoc | 6 +-
solr/solr-ref-guide/src/distributed-requests.adoc | 8 +-
solr/solr-ref-guide/src/enabling-ssl.adoc | 2 +
solr/solr-ref-guide/src/faceting.adoc | 7 +-
.../src/field-types-included-with-solr.adoc | 2 +-
solr/solr-ref-guide/src/filter-descriptions.adoc | 4 +-
solr/solr-ref-guide/src/highlighting.adoc | 2 +-
.../prometheus-solr-ping.png | Bin 0 -> 425471 bytes
.../result-clustering/carrot2-docs-attrs1.png | Bin 0 -> 132866 bytes
.../result-clustering/carrot2-docs-attrs2.png | Bin 0 -> 133160 bytes
.../images/result-clustering/carrot2-workbench.png | Bin 210974 -> 0 bytes
.../src/images/result-clustering/carrot2.png | Bin 403362 -> 637015 bytes
.../velocity-search-ui/techproducts_browse.png | Bin 74854 -> 0 bytes
.../src/implicit-requesthandlers.adoc | 58 +-
.../src/indexconfig-in-solrconfig.adoc | 10 +-
solr/solr-ref-guide/src/jvm-settings.adoc | 2 +-
solr/solr-ref-guide/src/language-analysis.adoc | 2 +-
solr/solr-ref-guide/src/learning-to-rank.adoc | 154 +-
solr/solr-ref-guide/src/libs.adoc | 2 +-
solr/solr-ref-guide/src/luke-request-handler.adoc | 2 +-
.../src/major-changes-from-solr-5-to-solr-6.adoc | 2 +-
.../src/major-changes-in-solr-7.adoc | 2 +-
.../src/major-changes-in-solr-8.adoc | 8 +-
.../src/major-changes-in-solr-9.adoc | 9 +-
solr/solr-ref-guide/src/metrics-history.adoc | 9 +-
solr/solr-ref-guide/src/metrics-reporting.adoc | 87 +-
...onitoring-solr-with-prometheus-and-grafana.adoc | 70 +-
solr/solr-ref-guide/src/other-parsers.adoc | 10 +-
solr/solr-ref-guide/src/other-schema-elements.adoc | 6 +-
solr/solr-ref-guide/src/query-re-ranking.adoc | 8 +-
.../src/query-settings-in-solrconfig.adoc | 2 +-
.../src/query-syntax-and-parsing.adoc | 2 +-
solr/solr-ref-guide/src/reindexing.adoc | 162 +-
solr/solr-ref-guide/src/replica-management.adoc | 5 +
...andlers-and-searchcomponents-in-solrconfig.adoc | 4 +-
solr/solr-ref-guide/src/result-clustering.adoc | 400 ++--
.../src/rule-based-replica-placement.adoc | 177 --
solr/solr-ref-guide/src/schemaless-mode.adoc | 16 +-
solr/solr-ref-guide/src/solr-field-types.adoc | 2 +-
solr/solr-ref-guide/src/solr-upgrade-notes.adoc | 26 +-
...solrcloud-query-routing-and-read-tolerance.adoc | 2 +-
solr/solr-ref-guide/src/solrcloud.adoc | 5 +-
.../src/stream-decorator-reference.adoc | 4 +-
solr/solr-ref-guide/src/streaming-expressions.adoc | 6 +-
.../src/taking-solr-to-production.adoc | 10 +-
solr/solr-ref-guide/src/the-terms-component.adoc | 2 +-
.../src/update-request-processors.adoc | 106 +-
.../src/updating-parts-of-documents.adoc | 4 +-
solr/solr-ref-guide/src/using-solrj.adoc | 22 +-
solr/solr-ref-guide/src/v2-api.adoc | 10 -
.../src/zookeeper-access-control.adoc | 6 +-
solr/solr-ref-guide/tools/BuildNavDataFiles.java | 1 -
.../solr-ref-guide/tools/CheckLinksAndAnchors.java | 11 -
.../client/solrj/impl/BaseCloudSolrClient.java | 8 +-
.../solr/client/solrj/impl/Http2SolrClient.java | 8 +
.../solrj/impl/SolrClientNodeStateProvider.java | 55 +-
.../solrj/request/CollectionAdminRequest.java | 11 -
.../solr/client/solrj/request/V2Request.java | 20 +
.../apache/solr/client/solrj/response/Cluster.java | 9 +-
.../client/solrj/response/ClusteringResponse.java | 13 +-
.../RequestReplicaListTransformerGenerator.java | 15 +-
.../solr/common/cloud/ClusterProperties.java | 8 +-
.../apache/solr/common/cloud/ClusterStateUtil.java | 2 +-
.../apache/solr/common/cloud/DocCollection.java | 6 -
.../java/org/apache/solr/common/cloud/Replica.java | 22 +-
.../org/apache/solr/common/cloud/UrlScheme.java | 73 +
.../apache/solr/common/cloud/ZkCoreNodeProps.java | 27 +-
.../solr/common/cloud/ZkMaintenanceUtils.java | 9 +-
.../org/apache/solr/common/cloud/ZkNodeProps.java | 54 +-
.../apache/solr/common/cloud/ZkStateReader.java | 25 +-
.../solr/common/params/CollectionAdminParams.java | 11 -
.../apache/solr/common/params/CommonParams.java | 7 -
.../apache/solr/common/params/ConfigSetParams.java | 1 +
.../java/org/apache/solr/common/util/DOMUtil.java | 5 -
.../apache/solr/common/util/JsonSchemaCreator.java | 1 +
.../apache/solr/common/util/PropertiesUtil.java | 4 -
.../resources/apispec/collections.Commands.json | 16 -
.../collections.collection.Commands.modify.json | 16 -
...nfig.Commands.addRequestHandler.properties.json | 4 -
.../apispec/core.config.Commands.generic.json | 4 -
.../resources/apispec/core.config.Commands.json | 13 -
.../solrj/impl/CloudHttp2SolrClientRetryTest.java | 1 +
.../solrj/impl/CloudHttp2SolrClientTest.java | 62 +-
.../solrj/impl/CloudSolrClientRetryTest.java | 1 +
.../client/solrj/impl/CloudSolrClientTest.java | 62 +-
.../client/solrj/impl/Http2SolrClientTest.java | 6 +
.../solr/client/solrj/request/TestCoreAdmin.java | 1 +
.../client/solrj/response/QueryResponseTest.java | 11 +-
.../solrj/response/TestClusteringResponse.java | 5 +-
.../routing/NodePreferenceRulesComparatorTest.java | 45 +-
...RequestReplicaListTransformerGeneratorTest.java | 64 +-
.../ShufflingReplicaListTransformerTest.java | 4 +-
.../apache/solr/common/cloud/SolrZkClientTest.java | 20 +-
.../solr/common/cloud/TestZkMaintenanceUtils.java | 176 ++
.../apache/solr/common/cloud/UrlSchemeTest.java | 56 +
.../solr/common/params/CommonParamsTest.java | 2 -
.../apache/solr/common/util/ContentStreamTest.java | 19 +-
.../solr/common/util/TestZkMaintenanceUtils.java | 115 -
.../src/java/org/apache/solr/SolrTestCaseJ4.java | 12 +-
.../solr/cloud/AbstractFullDistribZkTestBase.java | 22 +-
.../apache/solr/cloud/MiniSolrCloudCluster.java | 29 +-
.../apache/solr/cloud/SolrCloudAuthTestCase.java | 12 +
.../src/java/org/apache/solr/util/TestHarness.java | 32 +-
.../solr/cloud/MiniSolrCloudClusterTest.java | 111 +
solr/webapp/web/css/angular/collections.css | 5 +
solr/webapp/web/css/angular/jstree.style.min.css | 2 +-
solr/webapp/web/img/jstree/32px.png | Bin 5667 -> 5660 bytes
solr/webapp/web/img/jstree/40px.png | Bin 2218 -> 2215 bytes
solr/webapp/web/img/jstree/throbber.gif | Bin 1464 -> 1464 bytes
solr/webapp/web/index.html | 2 +-
solr/webapp/web/js/angular/app.js | 7 +-
.../web/js/angular/controllers/collections.js | 7 +-
solr/webapp/web/js/angular/controllers/files.js | 14 +-
solr/webapp/web/libs/jquery-3.4.1.min.js | 28 -
solr/webapp/web/libs/jquery-3.5.1.min.js | 27 +
solr/webapp/web/libs/jstree.min.js | 12 +-
solr/webapp/web/partials/collections.html | 22 +-
versions.lock | 67 +-
versions.props | 8 +-
1517 files changed, 84047 insertions(+), 69821 deletions(-)
create mode 100644 .dir-locals.el
create mode 100644 .github/workflows/solrj-test.yml
delete mode 100644 dev-tools/scripts/LUCENE-3753.patch.hack.pl
delete mode 100755 dev-tools/scripts/crawl.maven.release.dist.sh
delete mode 100755 dev-tools/scripts/gitignore-gen.sh
delete mode 100755 dev-tools/scripts/write.stage.maven.build.xml.pl
create mode 100644 gradle/native/disable-native.gradle
create mode 100644 help/docker.txt
create mode 100644 lucene/analysis/common/src/java/org/apache/lucene/analysis/cjk/CJKWidthCharFilter.java
create mode 100644 lucene/analysis/common/src/java/org/apache/lucene/analysis/cjk/CJKWidthCharFilterFactory.java
create mode 100644 lucene/analysis/common/src/java/org/apache/lucene/analysis/classic/package-info.java
delete mode 100644 lucene/analysis/common/src/java/org/apache/lucene/analysis/classic/package.html
create mode 100644 lucene/analysis/common/src/java/org/apache/lucene/analysis/email/package-info.java
delete mode 100644 lucene/analysis/common/src/java/org/apache/lucene/analysis/email/package.html
create mode 100644 lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/DropIfFlaggedFilter.java
create mode 100644 lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/DropIfFlaggedFilterFactory.java
create mode 100644 lucene/analysis/common/src/java/org/tartarus/snowball/ext/YiddishStemmer.java
create mode 100644 lucene/analysis/common/src/test/org/apache/lucene/analysis/cjk/TestCJKWidthCharFilter.java
create mode 100644 lucene/analysis/common/src/test/org/apache/lucene/analysis/cjk/TestCJKWidthCharFilterFactory.java
create mode 100644 lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestDropIfFlaggedFilter.java
create mode 100644 lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestDropIfFlaggedFilterFactory.java
create mode 100644 lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestTypeAsSynonymFilter.java
create mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/Placeholder.java
create mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene50/ForUtil.java
create mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene50/Lucene50PostingsFormat.java
create mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene50/Lucene50PostingsReader.java
create mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene50/Lucene50ScoreSkipReader.java
create mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene50/Lucene50SkipReader.java
create mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene50/Lucene50StoredFieldsFormat.java
create mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene50/package-info.java
create mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene60/Lucene60PointsFormat.java
create mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene60/Lucene60PointsReader.java
create mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene60/package-info.java
create mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene70/Lucene70SegmentInfoFormat.java
create mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene70/package-info.java
create mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene80/Lucene80Codec.java
create mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene80/package-info.java
create mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene84/Lucene84Codec.java
create mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene84/package-info.java
create mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene86/Lucene86Codec.java
create mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene86/package-info.java
create mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene87/Lucene87Codec.java
create mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene87/package-info.java
create mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/package-info.java
delete mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/codecs/Placeholder.java
delete mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene50/ForUtil.java
delete mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene50/Lucene50PostingsFormat.java
delete mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene50/Lucene50PostingsReader.java
delete mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene50/Lucene50ScoreSkipReader.java
delete mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene50/Lucene50SkipReader.java
delete mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene50/Lucene50StoredFieldsFormat.java
delete mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene50/package.html
delete mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene60/Lucene60PointsFormat.java
delete mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene60/Lucene60PointsReader.java
delete mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene60/package.html
delete mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene70/Lucene70SegmentInfoFormat.java
delete mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene70/package-info.java
delete mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene80/Lucene80Codec.java
delete mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene80/package.html
delete mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene84/Lucene84Codec.java
delete mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene84/package.html
delete mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene86/Lucene86Codec.java
delete mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene86/package.html
delete mode 100644 lucene/backward-codecs/src/java/org/apache/lucene/codecs/package.html
create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/backward_codecs/lucene50/Lucene50PostingsWriter.java
create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/backward_codecs/lucene50/Lucene50RWPostingsFormat.java
create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/backward_codecs/lucene50/Lucene50RWStoredFieldsFormat.java
create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/backward_codecs/lucene50/Lucene50SkipWriter.java
create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/backward_codecs/lucene50/TestBlockPostingsFormat.java
create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/backward_codecs/lucene50/TestBlockPostingsFormat2.java
create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/backward_codecs/lucene50/TestBlockPostingsFormat3.java
create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/backward_codecs/lucene50/TestForUtil.java
create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/backward_codecs/lucene50/TestLucene50StoredFieldsFormat.java
create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/backward_codecs/lucene50/TestLucene50StoredFieldsFormatHighCompression.java
create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/backward_codecs/lucene50/TestLucene50StoredFieldsFormatMergeInstance.java
create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/backward_codecs/lucene60/Lucene60PointsWriter.java
create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/backward_codecs/lucene60/Lucene60RWPointsFormat.java
create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/backward_codecs/lucene60/TestLucene60PointsFormat.java
create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/backward_codecs/lucene70/Lucene70RWSegmentInfoFormat.java
create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/backward_codecs/lucene70/TestLucene70SegmentInfoFormat.java
create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/backward_codecs/lucene84/Lucene84RWCodec.java
create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/backward_codecs/lucene86/Lucene86RWCodec.java
create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/backward_index/TestBackwardsCompatibility.java
create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/backward_index/TestIndexWriterOnOldIndex.java
create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/backward_index/TestManyPointsInOldIndex.java
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/dvupdates.8.0.0.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/empty.8.0.0.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.0.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.0.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.1.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.1.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.1.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.1.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.2.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.2.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.3.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.3.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.3.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.3.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.4.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.4.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.4.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.4.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.5.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.5.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.5.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.5.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.5.2-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.5.2-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.6.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.6.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.6.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.6.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.6.2-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.6.2-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.6.3-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/index.8.6.3-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/moreterms.8.0.0.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/sorted.8.0.0.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/sorted.8.1.0.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/sorted.8.1.1.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/sorted.8.2.0.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/sorted.8.3.0.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/sorted.8.3.1.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/sorted.8.4.0.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/sorted.8.4.1.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/sorted.8.5.0.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/sorted.8.5.1.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/sorted.8.5.2.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/sorted.8.6.0.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/sorted.8.6.1.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/sorted.8.6.2.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/sorted.8.6.3.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.1.9.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.1.9.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.2.0.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.2.0.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.2.1.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.2.1.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.2.2.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.2.2.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.2.3.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.2.3.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.2.4.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.2.4.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.2.4.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.2.4.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.2.9.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.2.9.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.2.9.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.2.9.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.2.9.2-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.2.9.2-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.2.9.3-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.2.9.3-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.2.9.4-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.2.9.4-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.0.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.0.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.0.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.0.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.0.2-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.0.2-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.0.3-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.0.3-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.1.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.1.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.2.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.2.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.3.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.3.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.4.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.4.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.5.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.5.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.6.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.6.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.6.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.6.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.6.2-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.3.6.2-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.0.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.0.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.0.0.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.0.0.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.0.0.2-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.0.0.2-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.1.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.1.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.10.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.10.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.10.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.10.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.10.2-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.10.2-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.10.3-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.10.3-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.10.4-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.10.4-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.2.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.2.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.2.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.2.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.3.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.3.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.3.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.3.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.4.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.4.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.5.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.5.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.5.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.5.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.6.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.6.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.6.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.6.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.7.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.7.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.7.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.7.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.7.2-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.7.2-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.8.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.8.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.8.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.8.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.9.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.9.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.9.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.4.9.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.0.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.0.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.0.0.singlesegment-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.0.0.singlesegment-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.1.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.1.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.2.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.2.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.2.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.2.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.3.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.3.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.3.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.3.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.3.2-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.3.2-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.4.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.4.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.4.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.4.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.5.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.5.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.5.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.5.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.5.2-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.5.2-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.5.3-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.5.3-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.5.4-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.5.4-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.5.5-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5.5.5-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5x-with-4x-segments-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.5x-with-4x-segments-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.0.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.0.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.0.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.0.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.1.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.1.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.2.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.2.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.2.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.2.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.3.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.3.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.4.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.4.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.4.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.4.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.4.2-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.4.2-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.5.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.5.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.5.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.5.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.6.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.6.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.6.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.6.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.6.2-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.6.2-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.6.3-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.6.3-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.6.4-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.6.4-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.6.5-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.6.5-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.6.6-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.6.6.6-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.0.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.0.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.0.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.0.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.1.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.1.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.2.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.2.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.2.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.2.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.3.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.3.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.3.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.3.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.4.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.4.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.5.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.5.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.6.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.6.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.7.0-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.7.0-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.7.1-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.7.1-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.7.2-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.7.2-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.7.3-cfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.7.7.3-nocfs.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.dvupdates.7.0.0.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.empty.7.0.0.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.moreterms.7.0.0.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.sorted-invalid.7.5.0.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.sorted.7.0.0.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.sorted.7.0.1.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.sorted.7.1.0.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.sorted.7.2.0.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.sorted.7.2.1.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.sorted.7.3.0.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.sorted.7.3.1.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.sorted.7.4.0.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.sorted.7.5.0.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.sorted.7.6.0.zip (100%)
rename lucene/backward-codecs/src/test/org/apache/lucene/{index => backward_index}/unsupported.sorted.7.7.3.zip (100%)
delete mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene50/Lucene50PostingsWriter.java
delete mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene50/Lucene50RWPostingsFormat.java
delete mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene50/Lucene50RWStoredFieldsFormat.java
delete mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene50/Lucene50SkipWriter.java
delete mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene50/TestBlockPostingsFormat.java
delete mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene50/TestBlockPostingsFormat2.java
delete mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene50/TestBlockPostingsFormat3.java
delete mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene50/TestForUtil.java
delete mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene50/TestLucene50StoredFieldsFormat.java
delete mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene50/TestLucene50StoredFieldsFormatHighCompression.java
delete mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene50/TestLucene50StoredFieldsFormatMergeInstance.java
delete mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene60/Lucene60PointsWriter.java
delete mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene60/Lucene60RWPointsFormat.java
delete mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene60/TestLucene60PointsFormat.java
delete mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene70/Lucene70RWSegmentInfoFormat.java
delete mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene70/TestLucene70SegmentInfoFormat.java
delete mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene84/Lucene84RWCodec.java
delete mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene86/Lucene86RWCodec.java
delete mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
delete mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/index/TestIndexWriterOnOldIndex.java
delete mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/index/TestManyPointsInOldIndex.java
create mode 100644 lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextVectorFormat.java
create mode 100644 lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextVectorReader.java
create mode 100644 lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextVectorWriter.java
create mode 100644 lucene/core/src/java/org/apache/lucene/codecs/VectorFormat.java
create mode 100644 lucene/core/src/java/org/apache/lucene/codecs/VectorReader.java
create mode 100644 lucene/core/src/java/org/apache/lucene/codecs/VectorWriter.java
delete mode 100644 lucene/core/src/java/org/apache/lucene/codecs/lucene87/Lucene87Codec.java
create mode 100644 lucene/core/src/java/org/apache/lucene/codecs/lucene90/Lucene90Codec.java
create mode 100644 lucene/core/src/java/org/apache/lucene/codecs/lucene90/Lucene90FieldInfosFormat.java
create mode 100644 lucene/core/src/java/org/apache/lucene/codecs/lucene90/Lucene90VectorFormat.java
create mode 100644 lucene/core/src/java/org/apache/lucene/codecs/lucene90/Lucene90VectorReader.java
create mode 100644 lucene/core/src/java/org/apache/lucene/codecs/lucene90/Lucene90VectorWriter.java
create mode 100644 lucene/core/src/java/org/apache/lucene/codecs/lucene90/package-info.java
rename lucene/{misc => core}/src/java/org/apache/lucene/document/InetAddressPoint.java (100%)
rename lucene/{misc => core}/src/java/org/apache/lucene/document/InetAddressRange.java (100%)
delete mode 100644 lucene/core/src/java/org/apache/lucene/document/LatLonDocValuesDistanceQuery.java
create mode 100644 lucene/core/src/java/org/apache/lucene/document/LatLonDocValuesPointInGeometryQuery.java
delete mode 100644 lucene/core/src/java/org/apache/lucene/document/LatLonDocValuesPointInPolygonQuery.java
create mode 100644 lucene/core/src/java/org/apache/lucene/document/LatLonPointInGeometryQuery.java
delete mode 100644 lucene/core/src/java/org/apache/lucene/document/LatLonPointInPolygonQuery.java
create mode 100644 lucene/core/src/java/org/apache/lucene/document/VectorField.java
create mode 100644 lucene/core/src/java/org/apache/lucene/index/KnnGraphValues.java
create mode 100644 lucene/core/src/java/org/apache/lucene/index/RandomAccessVectorValues.java
create mode 100644 lucene/core/src/java/org/apache/lucene/index/RandomAccessVectorValuesProducer.java
create mode 100644 lucene/core/src/java/org/apache/lucene/index/VectorValues.java
create mode 100644 lucene/core/src/java/org/apache/lucene/index/VectorValuesWriter.java
create mode 100644 lucene/core/src/java/org/apache/lucene/util/VectorUtil.java
create mode 100644 lucene/core/src/java/org/apache/lucene/util/hnsw/BoundsChecker.java
create mode 100644 lucene/core/src/java/org/apache/lucene/util/hnsw/HnswGraph.java
create mode 100644 lucene/core/src/java/org/apache/lucene/util/hnsw/HnswGraphBuilder.java
create mode 100644 lucene/core/src/java/org/apache/lucene/util/hnsw/Neighbor.java
create mode 100644 lucene/core/src/java/org/apache/lucene/util/hnsw/Neighbors.java
create mode 100644 lucene/core/src/java/org/apache/lucene/util/hnsw/package-info.java
create mode 100644 lucene/core/src/test/org/apache/lucene/codecs/lucene80/BaseLucene80DocValuesFormatTestCase.java
create mode 100644 lucene/core/src/test/org/apache/lucene/codecs/lucene80/TestBestCompressionLucene80DocValuesFormat.java
create mode 100644 lucene/core/src/test/org/apache/lucene/codecs/lucene80/TestBestSpeedLucene80DocValuesFormat.java
delete mode 100644 lucene/core/src/test/org/apache/lucene/codecs/lucene80/TestLucene80DocValuesFormat.java
rename lucene/{misc => core}/src/test/org/apache/lucene/document/TestInetAddressPoint.java (100%)
create mode 100644 lucene/core/src/test/org/apache/lucene/index/TestKnnGraph.java
create mode 100644 lucene/core/src/test/org/apache/lucene/index/TestVectorValues.java
rename lucene/{misc => core}/src/test/org/apache/lucene/search/TestInetAddressRangeQueries.java (100%)
create mode 100644 lucene/core/src/test/org/apache/lucene/util/TestVectorUtil.java
create mode 100644 lucene/core/src/test/org/apache/lucene/util/hnsw/KnnGraphTester.java
create mode 100644 lucene/core/src/test/org/apache/lucene/util/hnsw/TestHnsw.java
create mode 100644 lucene/facet/src/test/org/apache/lucene/facet/taxonomy/directory/TestBackwardsCompatibility.java
create mode 100644 lucene/facet/src/test/org/apache/lucene/facet/taxonomy/directory/taxonomy.8.6.3-cfs.zip
delete mode 100644 lucene/grouping/src/test/org/apache/lucene/search/grouping/AllGroupHeadsCollectorTest.java
delete mode 100644 lucene/grouping/src/test/org/apache/lucene/search/grouping/AllGroupsCollectorTest.java
delete mode 100644 lucene/grouping/src/test/org/apache/lucene/search/grouping/BlockGroupingTest.java
delete mode 100644 lucene/grouping/src/test/org/apache/lucene/search/grouping/DistinctValuesCollectorTest.java
delete mode 100644 lucene/grouping/src/test/org/apache/lucene/search/grouping/DoubleRangeGroupSelectorTest.java
delete mode 100644 lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupFacetCollectorTest.java
delete mode 100644 lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java
delete mode 100644 lucene/grouping/src/test/org/apache/lucene/search/grouping/LongRangeGroupSelectorTest.java
delete mode 100644 lucene/grouping/src/test/org/apache/lucene/search/grouping/TermGroupSelectorTest.java
create mode 100644 lucene/grouping/src/test/org/apache/lucene/search/grouping/TestAllGroupHeadsCollector.java
create mode 100644 lucene/grouping/src/test/org/apache/lucene/search/grouping/TestAllGroupsCollector.java
create mode 100644 lucene/grouping/src/test/org/apache/lucene/search/grouping/TestBlockGrouping.java
create mode 100644 lucene/grouping/src/test/org/apache/lucene/search/grouping/TestDistinctValuesCollector.java
create mode 100644 lucene/grouping/src/test/org/apache/lucene/search/grouping/TestDoubleRangeGroupSelector.java
create mode 100644 lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGroupFacetCollector.java
create mode 100644 lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGroupingSearch.java
create mode 100644 lucene/grouping/src/test/org/apache/lucene/search/grouping/TestLongRangeGroupSelector.java
create mode 100644 lucene/grouping/src/test/org/apache/lucene/search/grouping/TestTermGroupSelector.java
create mode 100644 lucene/grouping/src/test/org/apache/lucene/search/grouping/TestTopGroups.java
create mode 100644 lucene/grouping/src/test/org/apache/lucene/search/grouping/TestValueSourceGroupSelector.java
delete mode 100644 lucene/grouping/src/test/org/apache/lucene/search/grouping/TopGroupsTest.java
delete mode 100644 lucene/grouping/src/test/org/apache/lucene/search/grouping/ValueSourceGroupSelectorTest.java
delete mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java
delete mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java
delete mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/highlight/MissesTest.java
delete mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/highlight/OffsetLimitTokenFilterTest.java
create mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/highlight/TestHighlighter.java
create mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/highlight/TestHighlighterPhrase.java
create mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/highlight/TestMisses.java
create mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/highlight/TestOffsetLimitTokenFilter.java
create mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/highlight/TestTokenSources.java
delete mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/highlight/TokenSourcesTest.java
delete mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/highlight/custom/HighlightCustomQueryTest.java
create mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/highlight/custom/TestHighlightCustomQuery.java
delete mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/uhighlight/LengthGoalBreakIteratorTest.java
create mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/uhighlight/TestLengthGoalBreakIterator.java
delete mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/BreakIteratorBoundaryScannerTest.java
delete mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/FastVectorHighlighterTest.java
delete mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/FieldPhraseListTest.java
delete mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/FieldQueryTest.java
delete mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/FieldTermStackTest.java
delete mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/IndexTimeSynonymTest.java
delete mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/ScoreOrderFragmentsBuilderTest.java
delete mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleBoundaryScannerTest.java
delete mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragListBuilderTest.java
delete mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java
delete mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/SingleFragListBuilderTest.java
create mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/TestBreakIteratorBoundaryScanner.java
create mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/TestFastVectorHighlighter.java
create mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/TestFieldPhraseList.java
create mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/TestFieldQuery.java
create mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/TestFieldTermStack.java
create mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/TestIndexTimeSynonym.java
create mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/TestScoreOrderFragmentsBuilder.java
create mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/TestSimpleBoundaryScanner.java
create mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/TestSimpleFragListBuilder.java
create mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/TestSimpleFragmentsBuilder.java
create mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/TestSingleFragListBuilder.java
create mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/TestWeightedFragListBuilder.java
delete mode 100644 lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/WeightedFragListBuilderTest.java
delete mode 100644 lucene/licenses/jetty-continuation-9.4.27.v20200227.jar.sha1
create mode 100644 lucene/licenses/jetty-continuation-9.4.34.v20201102.jar.sha1
delete mode 100644 lucene/licenses/jetty-http-9.4.27.v20200227.jar.sha1
create mode 100644 lucene/licenses/jetty-http-9.4.34.v20201102.jar.sha1
delete mode 100644 lucene/licenses/jetty-io-9.4.27.v20200227.jar.sha1
create mode 100644 lucene/licenses/jetty-io-9.4.34.v20201102.jar.sha1
delete mode 100644 lucene/licenses/jetty-server-9.4.27.v20200227.jar.sha1
create mode 100644 lucene/licenses/jetty-server-9.4.34.v20201102.jar.sha1
delete mode 100644 lucene/licenses/jetty-servlet-9.4.27.v20200227.jar.sha1
create mode 100644 lucene/licenses/jetty-servlet-9.4.34.v20201102.jar.sha1
delete mode 100644 lucene/licenses/jetty-util-9.4.27.v20200227.jar.sha1
create mode 100644 lucene/licenses/jetty-util-9.4.34.v20201102.jar.sha1
delete mode 100644 lucene/licenses/junit-4.12.jar.sha1
create mode 100644 lucene/licenses/junit-4.13.1.jar.sha1
create mode 100644 lucene/misc/native/build.gradle
create mode 100644 lucene/misc/native/src/main/posix/NativePosixUtil.cpp
create mode 100644 lucene/misc/native/src/main/windows/WindowsDirectory.cpp
delete mode 100644 lucene/misc/src/java/org/apache/lucene/document/LazyDocument.java
delete mode 100644 lucene/misc/src/java/org/apache/lucene/document/package.html
delete mode 100644 lucene/misc/src/java/org/apache/lucene/index/IndexSplitter.java
delete mode 100644 lucene/misc/src/java/org/apache/lucene/index/MultiPassIndexSplitter.java
delete mode 100644 lucene/misc/src/java/org/apache/lucene/index/PKIndexSplitter.java
delete mode 100644 lucene/misc/src/java/org/apache/lucene/index/package.html
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/document/LazyDocument.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/document/package-info.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/index/IndexSplitter.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/index/MultiPassIndexSplitter.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/index/PKIndexSplitter.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/index/package-info.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/search/DiversifiedTopDocsCollector.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/search/DocValuesStats.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/search/DocValuesStatsCollector.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/search/MemoryAccountingBitsetCollector.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/search/package-info.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/search/similarity/LegacyBM25Similarity.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/search/similarity/package-info.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/store/HardlinkCopyDirectoryWrapper.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/store/NativePosixUtil.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/store/NativeUnixDirectory.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/store/RAFDirectory.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/store/WindowsDirectory.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/store/package-info.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/util/MemoryTracker.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/util/fst/ListOfOutputs.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/util/fst/UpToTwoPositiveIntOutputs.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/util/fst/package-info.java
create mode 100644 lucene/misc/src/java/org/apache/lucene/misc/util/package-info.java
delete mode 100644 lucene/misc/src/java/org/apache/lucene/search/DiversifiedTopDocsCollector.java
delete mode 100644 lucene/misc/src/java/org/apache/lucene/search/DocValuesStats.java
delete mode 100644 lucene/misc/src/java/org/apache/lucene/search/DocValuesStatsCollector.java
delete mode 100644 lucene/misc/src/java/org/apache/lucene/search/MemoryAccountingBitsetCollector.java
delete mode 100644 lucene/misc/src/java/org/apache/lucene/search/package.html
delete mode 100644 lucene/misc/src/java/org/apache/lucene/search/similarity/LegacyBM25Similarity.java
delete mode 100644 lucene/misc/src/java/org/apache/lucene/search/similarity/package.html
delete mode 100644 lucene/misc/src/java/org/apache/lucene/store/HardlinkCopyDirectoryWrapper.java
delete mode 100644 lucene/misc/src/java/org/apache/lucene/store/NativePosixUtil.cpp
delete mode 100644 lucene/misc/src/java/org/apache/lucene/store/NativePosixUtil.java
delete mode 100644 lucene/misc/src/java/org/apache/lucene/store/NativeUnixDirectory.java
delete mode 100644 lucene/misc/src/java/org/apache/lucene/store/RAFDirectory.java
delete mode 100644 lucene/misc/src/java/org/apache/lucene/store/WindowsDirectory.cpp
delete mode 100644 lucene/misc/src/java/org/apache/lucene/store/WindowsDirectory.java
delete mode 100644 lucene/misc/src/java/org/apache/lucene/store/package.html
delete mode 100644 lucene/misc/src/java/org/apache/lucene/util/MemoryTracker.java
delete mode 100644 lucene/misc/src/java/org/apache/lucene/util/fst/ListOfOutputs.java
delete mode 100644 lucene/misc/src/java/org/apache/lucene/util/fst/UpToTwoPositiveIntOutputs.java
delete mode 100644 lucene/misc/src/java/org/apache/lucene/util/fst/package.html
delete mode 100644 lucene/misc/src/java/org/apache/lucene/util/package.html
delete mode 100644 lucene/misc/src/test/org/apache/lucene/document/TestLazyDocument.java
delete mode 100644 lucene/misc/src/test/org/apache/lucene/index/TestIndexSplitter.java
delete mode 100644 lucene/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java
delete mode 100644 lucene/misc/src/test/org/apache/lucene/index/TestPKIndexSplitter.java
create mode 100644 lucene/misc/src/test/org/apache/lucene/misc/document/TestLazyDocument.java
create mode 100644 lucene/misc/src/test/org/apache/lucene/misc/index/TestIndexSplitter.java
create mode 100644 lucene/misc/src/test/org/apache/lucene/misc/index/TestMultiPassIndexSplitter.java
create mode 100644 lucene/misc/src/test/org/apache/lucene/misc/index/TestPKIndexSplitter.java
create mode 100644 lucene/misc/src/test/org/apache/lucene/misc/search/TestDiversifiedTopDocsCollector.java
create mode 100644 lucene/misc/src/test/org/apache/lucene/misc/search/TestDocValuesStatsCollector.java
create mode 100644 lucene/misc/src/test/org/apache/lucene/misc/search/TestMemoryAccountingBitsetCollector.java
create mode 100644 lucene/misc/src/test/org/apache/lucene/misc/search/similarity/TestLegacyBM25Similarity.java
create mode 100644 lucene/misc/src/test/org/apache/lucene/misc/store/NativeLibEnableRule.java
create mode 100644 lucene/misc/src/test/org/apache/lucene/misc/store/NativeUnixDirectoryTest.java
create mode 100644 lucene/misc/src/test/org/apache/lucene/misc/store/TestHardLinkCopyDirectoryWrapper.java
create mode 100644 lucene/misc/src/test/org/apache/lucene/misc/store/TestRAFDirectory.java
create mode 100644 lucene/misc/src/test/org/apache/lucene/misc/store/WindowsDirectoryTest.java
create mode 100644 lucene/misc/src/test/org/apache/lucene/misc/util/TestCollectorMemoryTracker.java
create mode 100644 lucene/misc/src/test/org/apache/lucene/misc/util/fst/TestFSTsMisc.java
delete mode 100644 lucene/misc/src/test/org/apache/lucene/search/TestDiversifiedTopDocsCollector.java
delete mode 100644 lucene/misc/src/test/org/apache/lucene/search/TestDocValuesStatsCollector.java
delete mode 100644 lucene/misc/src/test/org/apache/lucene/search/TestMemoryAccountingBitsetCollector.java
delete mode 100644 lucene/misc/src/test/org/apache/lucene/search/similarity/TestLegacyBM25Similarity.java
delete mode 100644 lucene/misc/src/test/org/apache/lucene/store/TestHardLinkCopyDirectoryWrapper.java
delete mode 100644 lucene/misc/src/test/org/apache/lucene/store/TestRAFDirectory.java
delete mode 100644 lucene/misc/src/test/org/apache/lucene/util/TestCollectorMemoryTracker.java
delete mode 100644 lucene/misc/src/test/org/apache/lucene/util/fst/TestFSTsMisc.java
delete mode 100644 lucene/queries/src/test/org/apache/lucene/queries/CommonTermsQueryTest.java
create mode 100644 lucene/queries/src/test/org/apache/lucene/queries/TestCommonTermsQuery.java
create mode 100644 lucene/queries/src/test/org/apache/lucene/queries/intervals/OneTimeIntervalSource.java
delete mode 100644 lucene/replicator/src/test/org/apache/lucene/replicator/IndexAndTaxonomyReplicationClientTest.java
delete mode 100644 lucene/replicator/src/test/org/apache/lucene/replicator/IndexAndTaxonomyRevisionTest.java
delete mode 100644 lucene/replicator/src/test/org/apache/lucene/replicator/IndexReplicationClientTest.java
delete mode 100644 lucene/replicator/src/test/org/apache/lucene/replicator/IndexRevisionTest.java
delete mode 100644 lucene/replicator/src/test/org/apache/lucene/replicator/LocalReplicatorTest.java
delete mode 100644 lucene/replicator/src/test/org/apache/lucene/replicator/SessionTokenTest.java
create mode 100644 lucene/replicator/src/test/org/apache/lucene/replicator/TestIndexAndTaxonomyReplicationClient.java
create mode 100644 lucene/replicator/src/test/org/apache/lucene/replicator/TestIndexAndTaxonomyRevision.java
create mode 100644 lucene/replicator/src/test/org/apache/lucene/replicator/TestIndexReplicationClient.java
create mode 100644 lucene/replicator/src/test/org/apache/lucene/replicator/TestIndexRevision.java
create mode 100644 lucene/replicator/src/test/org/apache/lucene/replicator/TestLocalReplicator.java
create mode 100644 lucene/replicator/src/test/org/apache/lucene/replicator/TestSessionToken.java
delete mode 100644 lucene/replicator/src/test/org/apache/lucene/replicator/http/HttpReplicatorTest.java
create mode 100644 lucene/replicator/src/test/org/apache/lucene/replicator/http/TestHttpReplicator.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/IDVersionPostingsFormat.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/IDVersionPostingsReader.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/IDVersionPostingsWriter.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/IDVersionSegmentTermsEnum.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/IDVersionSegmentTermsEnumFrame.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/IDVersionTermState.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/SingleDocsEnum.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/SinglePostingsEnum.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/VersionBlockTreeTermsReader.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/VersionBlockTreeTermsWriter.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/VersionFieldReader.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/package-info.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/document/BigIntegerPoint.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/document/DoublePointMultiRangeBuilder.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/document/FloatPointMultiRangeBuilder.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/document/FloatPointNearestNeighbor.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/document/HalfFloatPoint.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/document/IntPointMultiRangeBuilder.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/document/LatLonBoundingBox.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/document/LongPointMultiRangeBuilder.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/document/package.html
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/codecs/idversion/IDVersionPostingsFormat.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/codecs/idversion/IDVersionPostingsReader.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/codecs/idversion/IDVersionPostingsWriter.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/codecs/idversion/IDVersionSegmentTermsEnum.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/codecs/idversion/IDVersionSegmentTermsEnumFrame.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/codecs/idversion/IDVersionTermState.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/codecs/idversion/SingleDocsEnum.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/codecs/idversion/SinglePostingsEnum.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/codecs/idversion/VersionBlockTreeTermsReader.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/codecs/idversion/VersionBlockTreeTermsWriter.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/codecs/idversion/VersionFieldReader.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/codecs/idversion/package-info.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/document/BigIntegerPoint.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/document/DoublePointMultiRangeBuilder.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/document/FloatPointMultiRangeBuilder.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/document/FloatPointNearestNeighbor.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/document/HalfFloatPoint.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/document/IntPointMultiRangeBuilder.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/document/LatLonBoundingBox.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/document/LongPointMultiRangeBuilder.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/document/package-info.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/search/BM25FQuery.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/search/CoveringQuery.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/search/CoveringScorer.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/search/DocValuesNumbersQuery.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/search/DocValuesTermsQuery.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/search/IndexSortSortedNumericDocValuesRangeQuery.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/search/LargeNumHitsTopDocsCollector.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/search/LatLonPointPrototypeQueries.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/search/LongHashSet.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/search/MultiNormsLeafSimScorer.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/search/MultiRangeQuery.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/search/NearestNeighbor.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/search/PhraseWildcardQuery.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/search/TermAutomatonQuery.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/search/TermAutomatonScorer.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/search/TokenStreamToTermAutomatonQuery.java
create mode 100644 lucene/sandbox/src/java/org/apache/lucene/sandbox/search/package-info.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/search/BM25FQuery.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/search/CoveringQuery.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/search/CoveringScorer.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/search/DocValuesNumbersQuery.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/search/DocValuesTermsQuery.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/search/IndexSortSortedNumericDocValuesRangeQuery.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/search/LargeNumHitsTopDocsCollector.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/search/LatLonPointPrototypeQueries.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/search/LongHashSet.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/search/MultiNormsLeafSimScorer.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/search/MultiRangeQuery.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/search/NearestNeighbor.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/search/PhraseWildcardQuery.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonQuery.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonScorer.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/search/TokenStreamToTermAutomatonQuery.java
delete mode 100644 lucene/sandbox/src/java/org/apache/lucene/search/package.html
delete mode 100644 lucene/sandbox/src/test/org/apache/lucene/codecs/idversion/StringAndPayloadField.java
delete mode 100644 lucene/sandbox/src/test/org/apache/lucene/codecs/idversion/TestIDVersionPostingsFormat.java
delete mode 100644 lucene/sandbox/src/test/org/apache/lucene/document/TestBigIntegerPoint.java
delete mode 100644 lucene/sandbox/src/test/org/apache/lucene/document/TestDoubleRangeField.java
delete mode 100644 lucene/sandbox/src/test/org/apache/lucene/document/TestFloatPointNearestNeighbor.java
delete mode 100644 lucene/sandbox/src/test/org/apache/lucene/document/TestHalfFloatPoint.java
create mode 100644 lucene/sandbox/src/test/org/apache/lucene/sandbox/codecs/idversion/StringAndPayloadField.java
create mode 100644 lucene/sandbox/src/test/org/apache/lucene/sandbox/codecs/idversion/TestIDVersionPostingsFormat.java
create mode 100644 lucene/sandbox/src/test/org/apache/lucene/sandbox/document/TestBigIntegerPoint.java
create mode 100644 lucene/sandbox/src/test/org/apache/lucene/sandbox/document/TestDoubleRangeField.java
create mode 100644 lucene/sandbox/src/test/org/apache/lucene/sandbox/document/TestFloatPointNearestNeighbor.java
create mode 100644 lucene/sandbox/src/test/org/apache/lucene/sandbox/document/TestHalfFloatPoint.java
delete mode 100644 lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/FuzzyLikeThisQueryTest.java
create mode 100644 lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestFuzzyLikeThisQuery.java
create mode 100644 lucene/sandbox/src/test/org/apache/lucene/sandbox/search/LongHashSetTests.java
create mode 100644 lucene/sandbox/src/test/org/apache/lucene/sandbox/search/TestBM25FQuery.java
create mode 100644 lucene/sandbox/src/test/org/apache/lucene/sandbox/search/TestCoveringQuery.java
create mode 100644 lucene/sandbox/src/test/org/apache/lucene/sandbox/search/TestDocValuesNumbersQuery.java
create mode 100644 lucene/sandbox/src/test/org/apache/lucene/sandbox/search/TestDocValuesTermsQuery.java
create mode 100644 lucene/sandbox/src/test/org/apache/lucene/sandbox/search/TestFieldCacheTermsFilter.java
create mode 100644 lucene/sandbox/src/test/org/apache/lucene/sandbox/search/TestIndexSortSortedNumericDocValuesRangeQuery.java
create mode 100644 lucene/sandbox/src/test/org/apache/lucene/sandbox/search/TestLargeNumHitsTopDocsCollector.java
create mode 100644 lucene/sandbox/src/test/org/apache/lucene/sandbox/search/TestLatLonBoundingBoxQueries.java
create mode 100644 lucene/sandbox/src/test/org/apache/lucene/sandbox/search/TestMultiRangeQueries.java
create mode 100644 lucene/sandbox/src/test/org/apache/lucene/sandbox/search/TestNearest.java
create mode 100644 lucene/sandbox/src/test/org/apache/lucene/sandbox/search/TestPhraseWildcardQuery.java
create mode 100644 lucene/sandbox/src/test/org/apache/lucene/sandbox/search/TestTermAutomatonQuery.java
delete mode 100644 lucene/sandbox/src/test/org/apache/lucene/search/LongHashSetTests.java
delete mode 100644 lucene/sandbox/src/test/org/apache/lucene/search/TestBM25FQuery.java
delete mode 100644 lucene/sandbox/src/test/org/apache/lucene/search/TestCoveringQuery.java
delete mode 100644 lucene/sandbox/src/test/org/apache/lucene/search/TestDocValuesNumbersQuery.java
delete mode 100644 lucene/sandbox/src/test/org/apache/lucene/search/TestDocValuesTermsQuery.java
delete mode 100644 lucene/sandbox/src/test/org/apache/lucene/search/TestFieldCacheTermsFilter.java
delete mode 100644 lucene/sandbox/src/test/org/apache/lucene/search/TestIndexSortSortedNumericDocValuesRangeQuery.java
delete mode 100644 lucene/sandbox/src/test/org/apache/lucene/search/TestLargeNumHitsTopDocsCollector.java
delete mode 100644 lucene/sandbox/src/test/org/apache/lucene/search/TestLatLonBoundingBoxQueries.java
delete mode 100644 lucene/sandbox/src/test/org/apache/lucene/search/TestMultiRangeQueries.java
delete mode 100644 lucene/sandbox/src/test/org/apache/lucene/search/TestNearest.java
delete mode 100644 lucene/sandbox/src/test/org/apache/lucene/search/TestPhraseWildcardQuery.java
delete mode 100644 lucene/sandbox/src/test/org/apache/lucene/search/TestTermAutomatonQuery.java
delete mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/DistanceStrategyTest.java
delete mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/PortedSolr3Test.java
delete mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/QueryEqualsHashCodeTest.java
delete mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/SpatialArgsTest.java
create mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/TestDistanceStrategy.java
create mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/TestPortedSolr3.java
create mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/TestQueryEqualsHashCode.java
create mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/TestSpatialArgs.java
delete mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/composite/CompositeStrategyTest.java
create mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/composite/TestCompositeStrategy.java
delete mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/DateNRStrategyTest.java
delete mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/HeatmapFacetCounterTest.java
delete mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/JtsPolygonTest.java
delete mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/NumberRangeFacetsTest.java
delete mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/RandomSpatialOpFuzzyPrefixTree50Test.java
delete mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/RandomSpatialOpFuzzyPrefixTreeTest.java
create mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/TestDateNRStrategy.java
create mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/TestHeatmapFacetCounter.java
create mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/TestJtsPolygon.java
create mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/TestNumberRangeFacets.java
create mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/TestRandomSpatialOpFuzzyPrefixTree.java
create mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/TestRandomSpatialOpFuzzyPrefixTree50.java
delete mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/tree/DateRangePrefixTreeTest.java
delete mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/tree/S2PrefixTreeTest.java
delete mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/tree/SpatialPrefixTreeTest.java
create mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/tree/TestDateRangePrefixTree.java
create mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/tree/TestS2PrefixTree.java
create mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/tree/TestSpatialPrefixTree.java
delete mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/query/SpatialArgsParserTest.java
create mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/query/TestSpatialArgsParser.java
delete mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/serialized/SerializedStrategyTest.java
create mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/serialized/TestSerializedStrategy.java
delete mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/spatial4j/Geo3dRptTest.java
delete mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/spatial4j/Geo3dShapeSphereModelRectRelationTest.java
delete mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/spatial4j/Geo3dShapeWGS84ModelRectRelationTest.java
delete mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/spatial4j/Geo3dTest.java
create mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/spatial4j/TestGeo3d.java
create mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/spatial4j/TestGeo3dRpt.java
create mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/spatial4j/TestGeo3dShapeSphereModelRectRelation.java
create mode 100644 lucene/spatial-extras/src/test/org/apache/lucene/spatial/spatial4j/TestGeo3dShapeWGS84ModelRectRelation.java
delete mode 100644 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/CompositeGeoPolygonRelationshipsTest.java
delete mode 100755 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoBBoxTest.java
delete mode 100755 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoCircleTest.java
delete mode 100755 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoConvexPolygonTest.java
delete mode 100644 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoExactCircleTest.java
delete mode 100644 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoModelTest.java
delete mode 100755 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoPathTest.java
delete mode 100644 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoPointTest.java
delete mode 100755 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoPolygonTest.java
delete mode 100644 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/PlaneTest.java
delete mode 100644 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/RandomBinaryCodecTest.java
delete mode 100644 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/RandomGeoPolygonTest.java
delete mode 100644 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/RandomGeoShapeRelationshipTest.java
delete mode 100644 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/RandomPlaneTest.java
delete mode 100644 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/SimpleGeoPolygonRelationshipsTest.java
create mode 100644 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestCompositeGeoPolygonRelationships.java
create mode 100755 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoBBox.java
create mode 100755 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoCircle.java
create mode 100755 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoConvexPolygon.java
create mode 100644 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoExactCircle.java
create mode 100644 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoModel.java
create mode 100755 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoPath.java
create mode 100644 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoPoint.java
create mode 100755 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestGeoPolygon.java
create mode 100644 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestPlane.java
create mode 100644 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestRandomBinaryCodec.java
create mode 100644 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestRandomGeoPolygon.java
create mode 100644 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestRandomGeoShapeRelationship.java
create mode 100644 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestRandomPlane.java
create mode 100644 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestSimpleGeoPolygonRelationships.java
create mode 100644 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/TestXYZSolid.java
delete mode 100644 lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/XYZSolidTest.java
create mode 100644 lucene/test-framework/src/test/org/apache/lucene/util/TestPleaseFail.java
delete mode 100644 solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/ClusteringEngine.java
delete mode 100644 solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/ClusteringParams.java
delete mode 100644 solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/DocumentClusteringEngine.java
create mode 100644 solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/Engine.java
create mode 100644 solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/EngineContext.java
create mode 100644 solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/EngineEntry.java
create mode 100644 solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/EngineParameters.java
create mode 100644 solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/FlatKeysAttrVisitor.java
create mode 100644 solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/InputDocument.java
create mode 100644 solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/PathResourceLookup.java
delete mode 100644 solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/SearchClusteringEngine.java
delete mode 100644 solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/CarrotClusteringEngine.java
delete mode 100644 solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/CarrotParams.java
delete mode 100644 solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/LuceneCarrot2StemmerFactory.java
delete mode 100644 solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/LuceneCarrot2TokenizerFactory.java
delete mode 100644 solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/SolrResourceLocator.java
delete mode 100644 solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/SolrStopwordsCarrot2LexicalDataFactory.java
delete mode 100644 solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/package-info.java
create mode 100644 solr/contrib/clustering/src/test-files/META-INF/services/org.carrot2.clustering.ClusteringAlgorithmProvider
delete mode 100644 solr/contrib/clustering/src/test-files/clustering/solr/collection1/conf/clustering/carrot2/mock-external-attrs-attributes.xml
delete mode 100644 solr/contrib/clustering/src/test-files/clustering/solr/collection1/conf/clustering/carrot2/stoplabels.mt
delete mode 100644 solr/contrib/clustering/src/test-files/clustering/solr/collection1/conf/clustering/carrot2/stopwords.mt
delete mode 100644 solr/contrib/clustering/src/test-files/clustering/solr/collection1/conf/clustering/custom/stoplabels.mt
delete mode 100644 solr/contrib/clustering/src/test-files/clustering/solr/collection1/conf/clustering/custom/stopwords.mt
delete mode 100644 solr/contrib/clustering/src/test-files/clustering/solr/collection1/conf/mapping-ISOLatin1Accent.txt
delete mode 100644 solr/contrib/clustering/src/test-files/clustering/solr/collection1/conf/spellings.txt
delete mode 100644 solr/contrib/clustering/src/test-files/clustering/solr/collection1/conf/synonyms.txt
create mode 100644 solr/contrib/clustering/src/test-files/clustering/solr/collection1/conf/testCustomLanguageResources/english.stoplabels.utf8
create mode 100644 solr/contrib/clustering/src/test-files/clustering/solr/collection1/conf/testCustomLanguageResources/english.stopwords.utf8
create mode 100644 solr/contrib/clustering/src/test-files/log4j2.xml
create mode 100644 solr/contrib/clustering/src/test-files/org/apache/solr/handler/clustering/ClusteringComponentDistributedTest-testLingoAlgorithm.txt
create mode 100644 solr/contrib/clustering/src/test-files/org/apache/solr/handler/clustering/ClusteringComponentDistributedTest-testStcAlgorithm.txt
create mode 100644 solr/contrib/clustering/src/test-files/org/apache/solr/handler/clustering/ClusteringComponentTest-testCustomLanguageResources.txt
create mode 100644 solr/contrib/clustering/src/test-files/org/apache/solr/handler/clustering/ClusteringComponentTest-testDefaultEngineOrder.txt
create mode 100644 solr/contrib/clustering/src/test-files/org/apache/solr/handler/clustering/ClusteringComponentTest-testKmeansAlgorithm.txt
create mode 100644 solr/contrib/clustering/src/test-files/org/apache/solr/handler/clustering/ClusteringComponentTest-testLingoAlgorithm.txt
create mode 100644 solr/contrib/clustering/src/test-files/org/apache/solr/handler/clustering/ClusteringComponentTest-testParamDefaultLanguage.txt
create mode 100644 solr/contrib/clustering/src/test-files/org/apache/solr/handler/clustering/ClusteringComponentTest-testParamLanguageField.txt
create mode 100644 solr/contrib/clustering/src/test-files/org/apache/solr/handler/clustering/ClusteringComponentTest-testParamOtherTopics.txt
create mode 100644 solr/contrib/clustering/src/test-files/org/apache/solr/handler/clustering/ClusteringComponentTest-testParamSubclusters-off.txt
create mode 100644 solr/contrib/clustering/src/test-files/org/apache/solr/handler/clustering/ClusteringComponentTest-testParamSubclusters-on.txt
create mode 100644 solr/contrib/clustering/src/test-files/org/apache/solr/handler/clustering/ClusteringComponentTest-testPassingAttributes.txt
create mode 100644 solr/contrib/clustering/src/test-files/org/apache/solr/handler/clustering/ClusteringComponentTest-testPassingAttributesViaSolrConfig.txt
create mode 100644 solr/contrib/clustering/src/test-files/org/apache/solr/handler/clustering/ClusteringComponentTest-testStcAlgorithm.txt
delete mode 100644 solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/AbstractClusteringTestCase.java
create mode 100644 solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/ClusteringComponentDistributedTest.java
delete mode 100644 solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/DistributedClusteringComponentTest.java
create mode 100644 solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/EchoClusteringAlgorithm.java
create mode 100644 solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/EchoClusteringAlgorithmProvider.java
create mode 100644 solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/MockClusteringAlgorithm.java
create mode 100644 solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/MockClusteringAlgorithmProvider.java
delete mode 100644 solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/MockDocumentClusteringEngine.java
create mode 100644 solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/ResourceCheckAlgorithm.java
create mode 100644 solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/ResourceCheckAlgorithmProvider.java
create mode 100644 solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/SampleData.java
delete mode 100644 solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/carrot2/CarrotClusteringEngineTest.java
delete mode 100644 solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/carrot2/DuplicatingStemmerFactory.java
delete mode 100644 solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/carrot2/DuplicatingTokenizerFactory.java
delete mode 100644 solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/carrot2/EchoClusteringAlgorithm.java
delete mode 100644 solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/carrot2/EchoStemsClusteringAlgorithm.java
delete mode 100644 solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/carrot2/EchoTokensClusteringAlgorithm.java
delete mode 100644 solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/carrot2/LexicalResourcesCheckClusteringAlgorithm.java
delete mode 100644 solr/contrib/clustering/src/test/org/apache/solr/handler/clustering/carrot2/MockClusteringAlgorithm.java
create mode 100644 solr/contrib/ltr/src/java/org/apache/solr/ltr/interleaving/Interleaving.java
create mode 100644 solr/contrib/ltr/src/java/org/apache/solr/ltr/interleaving/InterleavingResult.java
create mode 100644 solr/contrib/ltr/src/java/org/apache/solr/ltr/interleaving/LTRInterleavingQuery.java
create mode 100644 solr/contrib/ltr/src/java/org/apache/solr/ltr/interleaving/LTRInterleavingRescorer.java
create mode 100644 solr/contrib/ltr/src/java/org/apache/solr/ltr/interleaving/LTRInterleavingScoringQuery.java
create mode 100644 solr/contrib/ltr/src/java/org/apache/solr/ltr/interleaving/OriginalRankingLTRScoringQuery.java
create mode 100644 solr/contrib/ltr/src/java/org/apache/solr/ltr/interleaving/algorithms/TeamDraftInterleaving.java
create mode 100644 solr/contrib/ltr/src/java/org/apache/solr/ltr/interleaving/algorithms/package-info.java
create mode 100644 solr/contrib/ltr/src/java/org/apache/solr/ltr/interleaving/package-info.java
create mode 100644 solr/contrib/ltr/src/java/org/apache/solr/ltr/response/transform/LTRInterleavingTransformerFactory.java
create mode 100644 solr/contrib/ltr/src/java/org/apache/solr/ltr/search/LTRQuery.java
create mode 100644 solr/contrib/ltr/src/test/org/apache/solr/ltr/interleaving/TestLTRQParserInterleaving.java
create mode 100644 solr/contrib/ltr/src/test/org/apache/solr/ltr/interleaving/algorithms/TeamDraftInterleavingTest.java
create mode 100644 solr/contrib/ltr/src/test/org/apache/solr/ltr/response/transform/TestFeatureLoggerTransformer.java
create mode 100644 solr/contrib/ltr/src/test/org/apache/solr/ltr/response/transform/TestInterleavingTransformer.java
create mode 100644 solr/contrib/prometheus-exporter/conf/log4j2.xml
create mode 100644 solr/core/src/java/org/apache/solr/api/ConfigurablePlugin.java
create mode 100644 solr/core/src/java/org/apache/solr/api/ContainerPluginsRegistry.java
delete mode 100644 solr/core/src/java/org/apache/solr/api/CustomContainerPlugins.java
create mode 100644 solr/core/src/java/org/apache/solr/cloud/ClusterSingleton.java
delete mode 100644 solr/core/src/java/org/apache/solr/cloud/rule/ImplicitSnitch.java
delete mode 100644 solr/core/src/java/org/apache/solr/cloud/rule/ReplicaAssigner.java
delete mode 100644 solr/core/src/java/org/apache/solr/cloud/rule/Rule.java
delete mode 100644 solr/core/src/java/org/apache/solr/cloud/rule/ServerSnitchContext.java
delete mode 100644 solr/core/src/java/org/apache/solr/cloud/rule/package-info.java
create mode 100644 solr/core/src/java/org/apache/solr/cluster/events/ClusterEvent.java
create mode 100644 solr/core/src/java/org/apache/solr/cluster/events/ClusterEventListener.java
create mode 100644 solr/core/src/java/org/apache/solr/cluster/events/ClusterEventProducer.java
create mode 100644 solr/core/src/java/org/apache/solr/cluster/events/ClusterEventProducerBase.java
create mode 100644 solr/core/src/java/org/apache/solr/cluster/events/ClusterPropertiesChangedEvent.java
create mode 100644 solr/core/src/java/org/apache/solr/cluster/events/CollectionsAddedEvent.java
create mode 100644 solr/core/src/java/org/apache/solr/cluster/events/CollectionsRemovedEvent.java
create mode 100644 solr/core/src/java/org/apache/solr/cluster/events/NoOpProducer.java
create mode 100644 solr/core/src/java/org/apache/solr/cluster/events/NodesDownEvent.java
create mode 100644 solr/core/src/java/org/apache/solr/cluster/events/NodesUpEvent.java
create mode 100644 solr/core/src/java/org/apache/solr/cluster/events/impl/ClusterEventProducerFactory.java
create mode 100644 solr/core/src/java/org/apache/solr/cluster/events/impl/CollectionsRepairEventListener.java
create mode 100644 solr/core/src/java/org/apache/solr/cluster/events/impl/DefaultClusterEventProducer.java
create mode 100644 solr/core/src/java/org/apache/solr/cluster/events/impl/DelegatingClusterEventProducer.java
create mode 100644 solr/core/src/java/org/apache/solr/cluster/events/impl/package-info.java
create mode 100644 solr/core/src/java/org/apache/solr/cluster/events/package-info.java
create mode 100644 solr/core/src/java/org/apache/solr/cluster/placement/plugins/AffinityPlacementFactory.java
create mode 100644 solr/core/src/java/org/apache/solr/cluster/placement/plugins/MinimizeCoresPlacementFactory.java
delete mode 100644 solr/core/src/java/org/apache/solr/cluster/placement/plugins/SamplePluginAffinityReplicaPlacement.java
delete mode 100644 solr/core/src/java/org/apache/solr/cluster/placement/plugins/SamplePluginMinimizeCores.java
delete mode 100644 solr/core/src/java/org/apache/solr/cluster/placement/plugins/SamplePluginRandomPlacement.java
create mode 100644 solr/core/src/java/org/apache/solr/core/ClusterSingletons.java
create mode 100644 solr/core/src/test-files/solr/solr-metricsconfig1.xml
create mode 100644 solr/core/src/test/org/apache/solr/SolrTestCaseJ4DeleteCoreTest.java
delete mode 100644 solr/core/src/test/org/apache/solr/TestSolrTestCaseJ4.java
delete mode 100644 solr/core/src/test/org/apache/solr/cloud/ConfigSetsAPITest.java
create mode 100644 solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPIShareSchema.java
delete mode 100644 solr/core/src/test/org/apache/solr/cloud/rule/ImplicitSnitchTest.java
delete mode 100644 solr/core/src/test/org/apache/solr/cloud/rule/RuleEngineTest.java
delete mode 100644 solr/core/src/test/org/apache/solr/cloud/rule/RulesTest.java
create mode 100644 solr/core/src/test/org/apache/solr/cluster/events/AllEventsListener.java
create mode 100644 solr/core/src/test/org/apache/solr/cluster/events/ClusterEventProducerTest.java
create mode 100644 solr/core/src/test/org/apache/solr/cluster/events/impl/CollectionsRepairEventListenerTest.java
create mode 100644 solr/core/src/test/org/apache/solr/cluster/placement/AttributeFetcherForTest.java
create mode 100644 solr/core/src/test/org/apache/solr/cluster/placement/Builders.java
create mode 100644 solr/core/src/test/org/apache/solr/cluster/placement/ClusterAbstractionsForTest.java
create mode 100644 solr/core/src/test/org/apache/solr/cluster/placement/impl/PlacementPluginIntegrationTest.java
create mode 100644 solr/core/src/test/org/apache/solr/cluster/placement/impl/SimpleClusterAbstractionsTest.java
create mode 100644 solr/core/src/test/org/apache/solr/cluster/placement/plugins/AffinityPlacementFactoryTest.java
create mode 100644 solr/core/src/test/org/apache/solr/core/TestMinimalConfig.java
create mode 100644 solr/core/src/test/org/apache/solr/metrics/MetricsDisabledCloudTest.java
create mode 100644 solr/core/src/test/org/apache/solr/update/processor/AtomicUpdateJavabinTest.java
delete mode 100644 solr/core/src/test/org/apache/solr/update/processor/AtomicUpdateRemovalJavabinTest.java
create mode 100644 solr/dev-docs/plugins/container-plugins.adoc
delete mode 100755 solr/docker/include/scripts/oom_solr.sh
delete mode 100755 solr/docker/tests/cases/version/test.sh
delete mode 100644 solr/licenses/attributes-binder-1.3.3.jar.sha1
delete mode 100644 solr/licenses/attributes-binder-LICENSE-ASL.txt
delete mode 100644 solr/licenses/attributes-binder-NOTICE.txt
create mode 100644 solr/licenses/carrot2-LICENSE-BSD_LIKE.txt
create mode 100644 solr/licenses/carrot2-NOTICE.txt
create mode 100644 solr/licenses/carrot2-core-4.0.4.jar.sha1
delete mode 100644 solr/licenses/carrot2-guava-18.0.jar.sha1
delete mode 100644 solr/licenses/carrot2-guava-LICENSE-ASL.txt
delete mode 100644 solr/licenses/carrot2-guava-NOTICE.txt
delete mode 100644 solr/licenses/carrot2-mini-3.16.2.jar.sha1
delete mode 100644 solr/licenses/carrot2-mini-LICENSE-BSD_LIKE.txt
delete mode 100644 solr/licenses/carrot2-mini-NOTICE.txt
delete mode 100644 solr/licenses/http2-client-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/http2-client-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/http2-common-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/http2-common-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/http2-hpack-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/http2-hpack-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/http2-http-client-transport-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/http2-http-client-transport-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/http2-server-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/http2-server-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/jetty-alpn-client-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/jetty-alpn-client-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/jetty-alpn-java-client-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/jetty-alpn-java-client-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/jetty-alpn-java-server-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/jetty-alpn-java-server-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/jetty-alpn-server-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/jetty-alpn-server-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/jetty-client-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/jetty-client-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/jetty-continuation-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/jetty-continuation-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/jetty-deploy-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/jetty-deploy-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/jetty-http-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/jetty-http-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/jetty-io-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/jetty-io-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/jetty-jmx-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/jetty-jmx-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/jetty-rewrite-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/jetty-rewrite-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/jetty-security-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/jetty-security-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/jetty-server-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/jetty-server-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/jetty-servlet-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/jetty-servlet-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/jetty-servlets-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/jetty-servlets-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/jetty-start-9.4.27.v20200227-shaded.jar.sha1
create mode 100644 solr/licenses/jetty-start-9.4.34.v20201102-shaded.jar.sha1
delete mode 100644 solr/licenses/jetty-util-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/jetty-util-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/jetty-webapp-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/jetty-webapp-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/jetty-xml-9.4.27.v20200227.jar.sha1
create mode 100644 solr/licenses/jetty-xml-9.4.34.v20201102.jar.sha1
delete mode 100644 solr/licenses/junit-4.12.jar.sha1
create mode 100644 solr/licenses/junit-4.13.1.jar.sha1
delete mode 100644 solr/licenses/simple-xml-safe-2.7.1.jar.sha1
delete mode 100644 solr/licenses/simple-xml-safe-LICENSE-ASL.txt
delete mode 100644 solr/licenses/simple-xml-safe-NOTICE.txt
delete mode 100644 solr/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/README.md
delete mode 100644 solr/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/kmeans-attributes.xml
delete mode 100644 solr/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/lingo-attributes.xml
delete mode 100644 solr/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/stc-attributes.xml
delete mode 100644 solr/solr-ref-guide/src/blob-store-api.adoc
create mode 100644 solr/solr-ref-guide/src/images/monitoring-solr-with-prometheus-and-grafana/prometheus-solr-ping.png
create mode 100644 solr/solr-ref-guide/src/images/result-clustering/carrot2-docs-attrs1.png
create mode 100644 solr/solr-ref-guide/src/images/result-clustering/carrot2-docs-attrs2.png
delete mode 100644 solr/solr-ref-guide/src/images/result-clustering/carrot2-workbench.png
delete mode 100644 solr/solr-ref-guide/src/images/velocity-search-ui/techproducts_browse.png
delete mode 100644 solr/solr-ref-guide/src/rule-based-replica-placement.adoc
create mode 100644 solr/solrj/src/java/org/apache/solr/common/cloud/UrlScheme.java
create mode 100644 solr/solrj/src/test/org/apache/solr/common/cloud/TestZkMaintenanceUtils.java
create mode 100644 solr/solrj/src/test/org/apache/solr/common/cloud/UrlSchemeTest.java
delete mode 100644 solr/solrj/src/test/org/apache/solr/common/util/TestZkMaintenanceUtils.java
delete mode 100644 solr/webapp/web/libs/jquery-3.4.1.min.js
create mode 100644 solr/webapp/web/libs/jquery-3.5.1.min.js
[lucene-solr] 15/18: merging with masster
Posted by is...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ishan pushed a commit to branch jira/solr14827
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit ac536c49add2a42cd4f6baa2577f4e68cca200fb
Author: Noble Paul <no...@gmail.com>
AuthorDate: Mon Oct 12 12:21:28 2020 +1100
merging with masster
---
.../src/java/org/apache/solr/util/plugin/NamedListPluginLoader.java | 1 +
solr/solrj/src/java/org/apache/solr/common/util/PropertiesUtil.java | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/solr/core/src/java/org/apache/solr/util/plugin/NamedListPluginLoader.java b/solr/core/src/java/org/apache/solr/util/plugin/NamedListPluginLoader.java
index cc90983..a2dd291 100644
--- a/solr/core/src/java/org/apache/solr/util/plugin/NamedListPluginLoader.java
+++ b/solr/core/src/java/org/apache/solr/util/plugin/NamedListPluginLoader.java
@@ -21,6 +21,7 @@ import java.util.Map;
import org.apache.solr.common.util.DOMUtil;
import org.apache.solr.common.ConfigNode;
import org.apache.solr.common.util.DOMUtil;
+import org.w3c.dom.Node;
/**
*
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/PropertiesUtil.java b/solr/solrj/src/java/org/apache/solr/common/util/PropertiesUtil.java
index 57861c1..9085ffc 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/PropertiesUtil.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/PropertiesUtil.java
@@ -16,13 +16,14 @@
*/
package org.apache.solr.common.util;
+import org.apache.solr.common.SolrException;
+
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import java.util.function.Function;
-import org.apache.solr.common.SolrException;
/**
* Breaking out some utility methods into a separate class as part of SOLR-4196. These utils have nothing to do with
[lucene-solr] 10/18: javadocs and other review comments
Posted by is...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ishan pushed a commit to branch jira/solr14827
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit 504740f1551591f35f690b6cb96c4b684e085a7a
Author: noble <no...@apache.org>
AuthorDate: Sat Oct 10 17:36:31 2020 +1100
javadocs and other review comments
---
.../src/java/org/apache/solr/schema/IndexSchema.java | 6 +++---
.../src/java/org/apache/solr/util/DataConfigNode.java | 4 ++--
.../src/java/org/apache/solr/common/ConfigNode.java | 18 ++++++++++++++++--
3 files changed, 21 insertions(+), 7 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
index 20281e3..97d786b 100644
--- a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
@@ -561,16 +561,16 @@ public class IndexSchema {
if (node != null) {
throw new SolrException(ErrorCode.SERVER_ERROR, "Setting defaultSearchField in schema not supported since Solr 7");
}
- node = rootNode.child("solrQueryParser");
- // /schema/solrQueryParser/@defaultOperator
+ ///schema/solrQueryParser/@defaultOperator
// expression = stepsToPath(SCHEMA, "solrQueryParser", AT + "defaultOperator");
// node = (Node) xpath.evaluate(expression, document, XPathConstants.NODE);
+ node = rootNode.child(it -> it.attributes().get("defaultOperator") != null, "solrQueryParser");
if (node != null) {
throw new SolrException(ErrorCode.SERVER_ERROR, "Setting default operator in schema (solrQueryParser/@defaultOperator) not supported");
}
- // /schema/uniqueKey/text()
+ // /schema/uniqueKey/text()
// expression = stepsToPath(SCHEMA, UNIQUE_KEY, TEXT_FUNCTION);
// node = (Node) xpath.evaluate(expression, document, XPathConstants.NODE);
node = rootNode.child(UNIQUE_KEY);
diff --git a/solr/core/src/java/org/apache/solr/util/DataConfigNode.java b/solr/core/src/java/org/apache/solr/util/DataConfigNode.java
index 9c825e8..29afd67 100644
--- a/solr/core/src/java/org/apache/solr/util/DataConfigNode.java
+++ b/solr/core/src/java/org/apache/solr/util/DataConfigNode.java
@@ -105,9 +105,9 @@ public class DataConfigNode implements ConfigNode {
}
@Override
- public List<ConfigNode> children(Predicate<ConfigNode> test, Set<String> set) {
+ public List<ConfigNode> children(Predicate<ConfigNode> test, Set<String> matchNames) {
List<ConfigNode> result = new ArrayList<>();
- for (String s : set) {
+ for (String s : matchNames) {
List<ConfigNode> vals = kids.get(s);
if (vals != null) {
vals.forEach(it -> {
diff --git a/solr/solrj/src/java/org/apache/solr/common/ConfigNode.java b/solr/solrj/src/java/org/apache/solr/common/ConfigNode.java
index 0f6a813..44ac4ff 100644
--- a/solr/solrj/src/java/org/apache/solr/common/ConfigNode.java
+++ b/solr/solrj/src/java/org/apache/solr/common/ConfigNode.java
@@ -53,6 +53,8 @@ public interface ConfigNode {
return child(null, name);
}
+ /**Iterate through child nodes with the name and return the first child that matches
+ */
default ConfigNode child(Predicate<ConfigNode> test, String name) {
ConfigNode[] result = new ConfigNode[1];
forEachChild(it -> {
@@ -66,14 +68,22 @@ public interface ConfigNode {
return result[0];
}
+ /**Iterate through child nodes with the names and return all the matching children
+ * @param nodeNames names of tags to be returned
+ * @param test check for the nodes to be returned
+ */
default List<ConfigNode> children(Predicate<ConfigNode> test, String... nodeNames) {
return children(test, nodeNames == null ? Collections.emptySet() : Set.of(nodeNames));
}
- default List<ConfigNode> children(Predicate<ConfigNode> test, Set<String> set) {
+ /**Iterate through child nodes with the names and return all the matching children
+ * @param matchNames names of tags to be returned
+ * @param test check for the nodes to be returned
+ */
+ default List<ConfigNode> children(Predicate<ConfigNode> test, Set<String> matchNames) {
List<ConfigNode> result = new ArrayList<>();
forEachChild(it -> {
- if (set != null && !set.isEmpty() && !set.contains(it.name())) return Boolean.TRUE;
+ if (matchNames != null && !matchNames.isEmpty() && !matchNames.contains(it.name())) return Boolean.TRUE;
if (test == null || test.test(it)) result.add(it);
return Boolean.TRUE;
});
@@ -84,6 +94,10 @@ public interface ConfigNode {
return children(null, Collections.singleton(name));
}
+ /** abortable iterate through child
+ *
+ * @param fun consume the node and return true to continue or false to abort
+ */
void forEachChild(Function<ConfigNode, Boolean> fun);
[lucene-solr] 13/18: merging with master
Posted by is...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ishan pushed a commit to branch jira/solr14827
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit f3ac2e93cd6ab4b2030dcbb69e5ad3a114b12665
Author: David Smiley <ds...@apache.org>
AuthorDate: Sat Oct 10 08:52:10 2020 -0400
merging with master
---
.../src/java/org/apache/solr/prometheus/exporter/MetricsQuery.java | 2 +-
.../apache/solr/prometheus/exporter/PrometheusExporterSettings.java | 2 +-
solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java | 1 -
solr/core/src/java/org/apache/solr/core/XmlConfigFile.java | 1 -
solr/core/src/java/org/apache/solr/schema/IndexSchema.java | 1 -
solr/core/src/java/org/apache/solr/util/DOMConfigNode.java | 1 +
solr/core/src/java/org/apache/solr/util/DataConfigNode.java | 3 ++-
solr/core/src/java/org/apache/solr/util/plugin/MapPluginLoader.java | 1 +
.../src/java/org/apache/solr/util/plugin/NamedListPluginLoader.java | 1 +
solr/solrj/src/java/org/apache/solr/common/util/DOMUtil.java | 3 +--
10 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/solr/contrib/prometheus-exporter/src/java/org/apache/solr/prometheus/exporter/MetricsQuery.java b/solr/contrib/prometheus-exporter/src/java/org/apache/solr/prometheus/exporter/MetricsQuery.java
index eefc14b..9a8783f 100644
--- a/solr/contrib/prometheus-exporter/src/java/org/apache/solr/prometheus/exporter/MetricsQuery.java
+++ b/solr/contrib/prometheus-exporter/src/java/org/apache/solr/prometheus/exporter/MetricsQuery.java
@@ -27,8 +27,8 @@ import net.thisptr.jackson.jq.JsonQuery;
import net.thisptr.jackson.jq.exception.JsonQueryException;
import org.apache.solr.client.solrj.request.QueryRequest;
import org.apache.solr.common.params.ModifiableSolrParams;
-import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.DOMUtil;
+import org.apache.solr.common.util.NamedList;
import org.w3c.dom.Node;
public class MetricsQuery {
diff --git a/solr/contrib/prometheus-exporter/src/java/org/apache/solr/prometheus/exporter/PrometheusExporterSettings.java b/solr/contrib/prometheus-exporter/src/java/org/apache/solr/prometheus/exporter/PrometheusExporterSettings.java
index 68eda8d..9ce035d 100644
--- a/solr/contrib/prometheus-exporter/src/java/org/apache/solr/prometheus/exporter/PrometheusExporterSettings.java
+++ b/solr/contrib/prometheus-exporter/src/java/org/apache/solr/prometheus/exporter/PrometheusExporterSettings.java
@@ -19,8 +19,8 @@ package org.apache.solr.prometheus.exporter;
import java.util.List;
-import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.DOMUtil;
+import org.apache.solr.common.util.NamedList;
import org.w3c.dom.Node;
public class PrometheusExporterSettings {
diff --git a/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java b/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java
index d68d16b..ebe3b66 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java
@@ -46,7 +46,6 @@ import org.apache.solr.common.SolrException;
import org.apache.solr.common.util.DOMUtil;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.PropertiesUtil;
-import org.apache.solr.common.util.Utils;
import org.apache.solr.logging.LogWatcherConfig;
import org.apache.solr.metrics.reporters.SolrJmxReporter;
import org.apache.solr.update.UpdateShardHandlerConfig;
diff --git a/solr/core/src/java/org/apache/solr/core/XmlConfigFile.java b/solr/core/src/java/org/apache/solr/core/XmlConfigFile.java
index 6cc6216..5971eb5 100644
--- a/solr/core/src/java/org/apache/solr/core/XmlConfigFile.java
+++ b/solr/core/src/java/org/apache/solr/core/XmlConfigFile.java
@@ -42,7 +42,6 @@ import org.apache.solr.cloud.ZkSolrResourceLoader;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.util.DOMUtil;
import org.apache.solr.common.util.XMLErrorLogger;
-import org.apache.solr.util.DOMUtil;
import org.apache.solr.util.SystemIdResolver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
index 839cff4..ef10e6f 100644
--- a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
@@ -74,7 +74,6 @@ import org.apache.solr.search.similarities.SchemaSimilarityFactory;
import org.apache.solr.uninverting.UninvertingReader;
import org.apache.solr.util.ConcurrentLRUCache;
import org.apache.solr.util.DOMConfigNode;
-import org.apache.solr.util.DOMUtil;
import org.apache.solr.util.DataConfigNode;
import org.apache.solr.util.PayloadUtils;
import org.apache.solr.util.plugin.SolrCoreAware;
diff --git a/solr/core/src/java/org/apache/solr/util/DOMConfigNode.java b/solr/core/src/java/org/apache/solr/util/DOMConfigNode.java
index 85ca9f7..6afc5a5 100644
--- a/solr/core/src/java/org/apache/solr/util/DOMConfigNode.java
+++ b/solr/core/src/java/org/apache/solr/util/DOMConfigNode.java
@@ -23,6 +23,7 @@ import java.util.function.Function;
import org.apache.solr.cluster.api.SimpleMap;
import org.apache.solr.common.ConfigNode;
+import org.apache.solr.common.util.DOMUtil;
import org.apache.solr.common.util.WrappedSimpleMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
diff --git a/solr/core/src/java/org/apache/solr/util/DataConfigNode.java b/solr/core/src/java/org/apache/solr/util/DataConfigNode.java
index 29afd67..38940ee 100644
--- a/solr/core/src/java/org/apache/solr/util/DataConfigNode.java
+++ b/solr/core/src/java/org/apache/solr/util/DataConfigNode.java
@@ -29,9 +29,10 @@ import java.util.function.Predicate;
import org.apache.solr.cluster.api.SimpleMap;
import org.apache.solr.common.ConfigNode;
+import org.apache.solr.common.util.PropertiesUtil;
/**
- * ConfigNode impl that copies and maintains data internally
+ * ConfigNode impl that copies and maintains data internally from DOM
*/
public class DataConfigNode implements ConfigNode {
final String name;
diff --git a/solr/core/src/java/org/apache/solr/util/plugin/MapPluginLoader.java b/solr/core/src/java/org/apache/solr/util/plugin/MapPluginLoader.java
index 46bd79f..ac822c7 100644
--- a/solr/core/src/java/org/apache/solr/util/plugin/MapPluginLoader.java
+++ b/solr/core/src/java/org/apache/solr/util/plugin/MapPluginLoader.java
@@ -20,6 +20,7 @@ import java.util.Map;
import org.apache.solr.common.util.DOMUtil;
import org.apache.solr.common.ConfigNode;
+import org.apache.solr.common.util.DOMUtil;
import static org.apache.solr.common.params.CommonParams.NAME;
diff --git a/solr/core/src/java/org/apache/solr/util/plugin/NamedListPluginLoader.java b/solr/core/src/java/org/apache/solr/util/plugin/NamedListPluginLoader.java
index 5736abf..cc90983 100644
--- a/solr/core/src/java/org/apache/solr/util/plugin/NamedListPluginLoader.java
+++ b/solr/core/src/java/org/apache/solr/util/plugin/NamedListPluginLoader.java
@@ -20,6 +20,7 @@ import java.util.Map;
import org.apache.solr.common.util.DOMUtil;
import org.apache.solr.common.ConfigNode;
+import org.apache.solr.common.util.DOMUtil;
/**
*
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/DOMUtil.java b/solr/solrj/src/java/org/apache/solr/common/util/DOMUtil.java
index 2b3219d..d0b1f7b 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/DOMUtil.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/DOMUtil.java
@@ -24,7 +24,6 @@ import java.util.Map;
import java.util.Properties;
import java.util.Set;
-import com.google.common.collect.ImmutableSet;
import org.apache.solr.common.ConfigNode;
import org.apache.solr.common.SolrException;
import org.w3c.dom.NamedNodeMap;
@@ -40,7 +39,7 @@ public class DOMUtil {
public static final String XML_RESERVED_PREFIX = "xml";
- public static final Set<String> NL_TAGS = ImmutableSet.of("str", "int","long","float","double","bool");
+ public static final Set<String> NL_TAGS = Set.of("str", "int","long","float","double","bool");
public static Map<String,String> toMap(NamedNodeMap attrs) {
[lucene-solr] 06/18: unused import
Posted by is...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ishan pushed a commit to branch jira/solr14827
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit f313d6c3f78be6f135c3afd9021605aff5a90ba3
Author: noblepaul <no...@gmail.com>
AuthorDate: Mon Sep 7 10:50:31 2020 +1000
unused import
---
solr/core/src/java/org/apache/solr/schema/IndexSchema.java | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
index 1aa1e66..dfb82fd 100644
--- a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
@@ -37,7 +37,6 @@ import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
import java.util.TreeSet;
-import java.util.concurrent.atomic.AtomicLong;
import java.util.function.Function;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@@ -170,7 +169,7 @@ public class IndexSchema {
* directives that target them.
*/
protected Map<SchemaField, Integer> copyFieldTargetCounts = new HashMap<>();
- static AtomicLong totalSchemaLoadTime = new AtomicLong();
+// static AtomicLong totalSchemaLoadTime = new AtomicLong();
/**
@@ -183,9 +182,9 @@ public class IndexSchema {
this.resourceName = Objects.requireNonNull(name);
try {
- long start = System.currentTimeMillis();
+// long start = System.currentTimeMillis();
readSchema(is);
- System.out.println("schema-load-time : "+ totalSchemaLoadTime.addAndGet (System.currentTimeMillis() - start));
+// System.out.println("schema-load-time : "+ totalSchemaLoadTime.addAndGet (System.currentTimeMillis() - start));
loader.inform(loader);
} catch (IOException e) {
throw new RuntimeException(e);
[lucene-solr] 05/18: unused import
Posted by is...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ishan pushed a commit to branch jira/solr14827
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit def7db590a14d5c4b88742110e4cb25e88fb4e85
Author: noblepaul <no...@gmail.com>
AuthorDate: Mon Sep 7 10:49:03 2020 +1000
unused import
---
solr/core/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java | 1 -
1 file changed, 1 deletion(-)
diff --git a/solr/core/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java b/solr/core/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java
index 7212e25..1077f14 100644
--- a/solr/core/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java
+++ b/solr/core/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java
@@ -20,7 +20,6 @@ import java.lang.invoke.MethodHandles;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
-import java.util.function.Consumer;
import org.apache.solr.common.ConfigNode;
import org.apache.solr.common.SolrException;
[lucene-solr] 08/18: cache and reuse
Posted by is...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ishan pushed a commit to branch jira/solr14827
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit a73c2c526782cd6d0e4ccbe1eb4cc139ecd1e052
Author: noblepaul <no...@gmail.com>
AuthorDate: Thu Sep 10 17:54:36 2020 +1000
cache and reuse
---
.../apache/solr/cloud/CloudConfigSetService.java | 30 +++++++++++-
.../apache/solr/cloud/ZkSolrResourceLoader.java | 7 +--
.../org/apache/solr/core/ConfigSetService.java | 18 ++++++-
.../java/org/apache/solr/schema/IndexSchema.java | 25 ++++++----
.../org/apache/solr/schema/IndexSchemaFactory.java | 55 ++++++++++++++++++----
.../org/apache/solr/schema/ManagedIndexSchema.java | 5 +-
.../solr/schema/ManagedIndexSchemaFactory.java | 7 +--
.../java/org/apache/solr/schema/SchemaManager.java | 3 +-
.../apache/solr/schema/ZkIndexSchemaReader.java | 2 +-
.../java/org/apache/solr/util/DataConfigNode.java | 24 +++++-----
.../solr/schema/TestManagedSchemaThreadSafety.java | 8 ++--
.../java/org/apache/solr/common/ConfigNode.java | 1 +
12 files changed, 138 insertions(+), 47 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/cloud/CloudConfigSetService.java b/solr/core/src/java/org/apache/solr/cloud/CloudConfigSetService.java
index 644b49e..54c515e 100644
--- a/solr/core/src/java/org/apache/solr/cloud/CloudConfigSetService.java
+++ b/solr/core/src/java/org/apache/solr/cloud/CloudConfigSetService.java
@@ -17,8 +17,12 @@
package org.apache.solr.cloud;
import java.lang.invoke.MethodHandles;
+import java.lang.ref.WeakReference;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import org.apache.solr.cloud.api.collections.CreateCollectionCmd;
+import org.apache.solr.common.ConfigNode;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.cloud.ZkConfigManager;
import org.apache.solr.common.cloud.ZkStateReader;
@@ -39,7 +43,7 @@ import org.slf4j.LoggerFactory;
*/
public class CloudConfigSetService extends ConfigSetService {
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
+ private Map<String, ConfigCacheEntry> cache = new ConcurrentHashMap<>();
private final ZkController zkController;
public CloudConfigSetService(SolrResourceLoader loader, boolean shareSchema, ZkController zkController) {
@@ -47,6 +51,20 @@ public class CloudConfigSetService extends ConfigSetService {
this.zkController = zkController;
}
+ public void storeConfig(String resource, ConfigNode config, int znodeVersion) {
+ cache.put(resource, new ConfigCacheEntry(config, znodeVersion));
+ }
+
+ public ConfigNode getConfig(String resource, int znodeVersion) {
+ ConfigCacheEntry e = cache.get(resource);
+ if (e == null) return null;
+ ConfigNode configNode = e.configNode.get();
+ if (configNode == null) cache.remove(resource);
+ if (e.znodeVersion == znodeVersion) return configNode;
+ if (e.znodeVersion < znodeVersion) cache.remove(resource);
+ return null;
+ }
+
@Override
public SolrResourceLoader createCoreResourceLoader(CoreDescriptor cd) {
final String colName = cd.getCollectionName();
@@ -111,4 +129,14 @@ public class CloudConfigSetService extends ConfigSetService {
public String configSetName(CoreDescriptor cd) {
return "configset " + cd.getConfigSet();
}
+
+ private static class ConfigCacheEntry {
+ final WeakReference<ConfigNode> configNode;
+ final int znodeVersion;
+
+ private ConfigCacheEntry(ConfigNode configNode, int znodeVersion) {
+ this.configNode = new WeakReference<>(configNode);
+ this.znodeVersion = znodeVersion;
+ }
+ }
}
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkSolrResourceLoader.java b/solr/core/src/java/org/apache/solr/cloud/ZkSolrResourceLoader.java
index 0e17b5c..b52d6bb 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkSolrResourceLoader.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkSolrResourceLoader.java
@@ -81,7 +81,7 @@ public class ZkSolrResourceLoader extends SolrResourceLoader {
if (zkController.pathExists(file)) {
Stat stat = new Stat();
byte[] bytes = zkController.getZkClient().getData(file, null, stat, true);
- return new ZkByteArrayInputStream(bytes, stat);
+ return new ZkByteArrayInputStream(bytes, file, stat);
} else {
//Path does not exists. We only retry for session expired exceptions.
break;
@@ -126,11 +126,12 @@ public class ZkSolrResourceLoader extends SolrResourceLoader {
public static class ZkByteArrayInputStream extends ByteArrayInputStream{
+ public final String fileName;
private final Stat stat;
- public ZkByteArrayInputStream(byte[] buf, Stat stat) {
+ public ZkByteArrayInputStream(byte[] buf, String fileName, Stat stat) {
super(buf);
+ this.fileName = fileName;
this.stat = stat;
-
}
public Stat getStat(){
diff --git a/solr/core/src/java/org/apache/solr/core/ConfigSetService.java b/solr/core/src/java/org/apache/solr/core/ConfigSetService.java
index 1d45bc5..691f17a 100644
--- a/solr/core/src/java/org/apache/solr/core/ConfigSetService.java
+++ b/solr/core/src/java/org/apache/solr/core/ConfigSetService.java
@@ -28,12 +28,14 @@ import com.github.benmanes.caffeine.cache.Caffeine;
import org.apache.solr.cloud.CloudConfigSetService;
import org.apache.solr.cloud.ZkController;
import org.apache.solr.cloud.ZkSolrResourceLoader;
+import org.apache.solr.common.ConfigNode;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.schema.IndexSchemaFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.xml.sax.InputSource;
/**
* Service class used by the CoreContainer to load ConfigSets for use in SolrCore
@@ -135,14 +137,14 @@ public abstract class ConfigSetService {
// note: luceneMatchVersion influences the schema
String cacheKey = configSet + "/" + guessSchemaName + "/" + modVersion + "/" + solrConfig.luceneMatchVersion;
return schemaCache.get(cacheKey,
- (key) -> indexSchemaFactory.create(cdSchemaName, solrConfig));
+ (key) -> indexSchemaFactory.create(cdSchemaName, solrConfig, ConfigSetService.this));
} else {
log.warn("Unable to get schema modification version, configSet={} schema={}", configSet, guessSchemaName);
// see explanation above; "guessSchema" is a guess
}
}
- return indexSchemaFactory.create(cdSchemaName, solrConfig);
+ return indexSchemaFactory.create(cdSchemaName, solrConfig, this);
}
/**
@@ -186,6 +188,18 @@ public abstract class ConfigSetService {
*/
public abstract String configSetName(CoreDescriptor cd);
+ public interface ConfigResource {
+
+ default String resourceName() {return null;}
+
+ InputSource getSource();
+
+ default ConfigNode getParsed() {return null;}
+
+ default void storeParsed(ConfigNode node){}
+
+ }
+
/**
* The Solr standalone version of ConfigSetService.
*
diff --git a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
index 772e049..20281e3 100644
--- a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
@@ -64,6 +64,7 @@ import org.apache.solr.common.util.DOMUtil;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.Pair;
import org.apache.solr.common.util.SimpleOrderedMap;
+import org.apache.solr.core.ConfigSetService;
import org.apache.solr.core.SolrCore;
import org.apache.solr.core.SolrResourceLoader;
import org.apache.solr.core.XmlConfigFile;
@@ -80,7 +81,6 @@ import org.apache.solr.util.PayloadUtils;
import org.apache.solr.util.plugin.SolrCoreAware;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.xml.sax.InputSource;
import static java.util.Arrays.asList;
import static java.util.Collections.singletonList;
@@ -169,6 +169,7 @@ public class IndexSchema {
* directives that target them.
*/
protected Map<SchemaField, Integer> copyFieldTargetCounts = new HashMap<>();
+ private ConfigNode rootNode;
// static AtomicLong totalSchemaLoadTime = new AtomicLong();
@@ -177,17 +178,20 @@ public class IndexSchema {
* By default, this follows the normal config path directory searching rules.
* @see SolrResourceLoader#openResource
*/
- public IndexSchema(String name, InputSource is, Version luceneVersion, SolrResourceLoader resourceLoader, Properties substitutableProperties) {
+ public IndexSchema(String name, ConfigSetService.ConfigResource schemaResource, Version luceneVersion, SolrResourceLoader resourceLoader, Properties substitutableProperties) {
this(luceneVersion, resourceLoader, substitutableProperties);
this.resourceName = Objects.requireNonNull(name);
+ ConfigNode.SUBSTITUTES.set(substitutableProperties::getProperty);
try {
// long start = System.currentTimeMillis();
- readSchema(is);
+ readSchema(schemaResource);
// System.out.println("schema-load-time : "+ totalSchemaLoadTime.addAndGet (System.currentTimeMillis() - start));
loader.inform(loader);
} catch (IOException e) {
throw new RuntimeException(e);
+ } finally {
+ ConfigNode.SUBSTITUTES.remove();
}
}
@@ -478,18 +482,21 @@ public class IndexSchema {
}
}
- protected void readSchema(InputSource is) {
+ protected void readSchema(ConfigSetService.ConfigResource is) {
assert null != is : "schema InputSource should never be null";
try {
- // pass the config resource loader to avoid building an empty one for no reason:
- // in the current case though, the stream is valid so we wont load the resource by name
- XmlConfigFile schemaConf = new XmlConfigFile(loader, SCHEMA, is, SLASH+SCHEMA+SLASH, null);
+ rootNode = is.getParsed();
+ if(rootNode == null) {
+ // pass the config resource loader to avoid building an empty one for no reason:
+ // in the current case though, the stream is valid so we wont load the resource by name
+ XmlConfigFile schemaConf = new XmlConfigFile(loader, SCHEMA, is.getSource(), SLASH+SCHEMA+SLASH, null);
// Document document = schemaConf.getDocument();
// final XPath xpath = schemaConf.getXPath();
// String expression = stepsToPath(SCHEMA, AT + NAME);
// Node nd = (Node) xpath.evaluate(expression, document, XPathConstants.NODE);
- ConfigNode rootNode = new DataConfigNode(new DOMConfigNode(schemaConf.getDocument().getDocumentElement()),
- substitutableProperties::getProperty) ;
+ rootNode = new DataConfigNode(new DOMConfigNode(schemaConf.getDocument().getDocumentElement())) ;
+ is.storeParsed(rootNode);
+ }
name = rootNode.attributes().get("name");
StringBuilder sb = new StringBuilder();
// Another case where the initialization from the test harness is different than the "real world"
diff --git a/solr/core/src/java/org/apache/solr/schema/IndexSchemaFactory.java b/solr/core/src/java/org/apache/solr/schema/IndexSchemaFactory.java
index 095efd4..0391aa2 100644
--- a/solr/core/src/java/org/apache/solr/schema/IndexSchemaFactory.java
+++ b/solr/core/src/java/org/apache/solr/schema/IndexSchemaFactory.java
@@ -19,8 +19,12 @@ package org.apache.solr.schema;
import java.io.InputStream;
import java.lang.invoke.MethodHandles;
+import org.apache.solr.cloud.CloudConfigSetService;
+import org.apache.solr.cloud.ZkSolrResourceLoader;
+import org.apache.solr.common.ConfigNode;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrException.ErrorCode;
+import org.apache.solr.core.ConfigSetService;
import org.apache.solr.core.PluginInfo;
import org.apache.solr.core.SolrConfig;
import org.apache.solr.core.SolrResourceLoader;
@@ -33,10 +37,12 @@ import org.xml.sax.InputSource;
/** Base class for factories for IndexSchema implementations */
public abstract class IndexSchemaFactory implements NamedListInitializedPlugin {
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
- /** Instantiates the configured schema factory, then calls create on it. */
public static IndexSchema buildIndexSchema(String resourceName, SolrConfig config) {
- return newIndexSchemaFactory(config).create(resourceName, config);
+ return buildIndexSchema(resourceName, config, null);
+ }
+ /** Instantiates the configured schema factory, then calls create on it. */
+ public static IndexSchema buildIndexSchema(String resourceName, SolrConfig config, ConfigSetService configSetService) {
+ return newIndexSchemaFactory(config).create(resourceName, config, configSetService);
}
/** Instantiates us from {@link SolrConfig}. */
@@ -54,7 +60,7 @@ public abstract class IndexSchemaFactory implements NamedListInitializedPlugin {
/**
* Returns the resource (file) name that will be used for the schema itself. The answer may be a guess.
- * Do not pass the result of this to {@link #create(String, SolrConfig)}.
+ * Do not pass the result of this to {@link #create(String, SolrConfig, ConfigSetService)}.
* The input is the name coming from the {@link org.apache.solr.core.CoreDescriptor}
* which acts as a default or asked-for name.
*/
@@ -65,7 +71,7 @@ public abstract class IndexSchemaFactory implements NamedListInitializedPlugin {
/**
* Returns an index schema created from a local resource. The input is usually from the core descriptor.
*/
- public IndexSchema create(String resourceName, SolrConfig config) {
+ public IndexSchema create(String resourceName, SolrConfig config, ConfigSetService configSetService) {
SolrResourceLoader loader = config.getResourceLoader();
InputStream schemaInputStream = null;
@@ -80,10 +86,41 @@ public abstract class IndexSchemaFactory implements NamedListInitializedPlugin {
log.error(msg, e);
throw new SolrException(ErrorCode.SERVER_ERROR, msg, e);
}
- InputSource inputSource = new InputSource(schemaInputStream);
- inputSource.setSystemId(SystemIdResolver.createSystemIdFromResourceName(resourceName));
- IndexSchema schema = new IndexSchema(resourceName, inputSource, config.luceneMatchVersion, loader, config.getSubstituteProperties());
- return schema;
+ InputStream is = schemaInputStream;
+ String name = resourceName;
+ ConfigSetService.ConfigResource schemaResource = new ConfigSetService.ConfigResource() {
+ @Override
+ public InputSource getSource() {
+ InputSource inputSource = new InputSource(is);
+ inputSource.setSystemId(SystemIdResolver.createSystemIdFromResourceName(name));
+ return inputSource;
+ }
+
+ @Override
+ public String resourceName() {
+ return name;
+ }
+
+ @Override
+ public ConfigNode getParsed() {
+ if (configSetService instanceof CloudConfigSetService && is instanceof ZkSolrResourceLoader.ZkByteArrayInputStream) {
+ CloudConfigSetService cloudConfigSetService = (CloudConfigSetService) configSetService;
+ ZkSolrResourceLoader.ZkByteArrayInputStream zkis = (ZkSolrResourceLoader.ZkByteArrayInputStream) is;
+ return cloudConfigSetService.getConfig(zkis.fileName, zkis.getStat().getVersion());
+ }
+ return null;
+ }
+
+ @Override
+ public void storeParsed(ConfigNode node) {
+ if (configSetService instanceof CloudConfigSetService && is instanceof ZkSolrResourceLoader.ZkByteArrayInputStream) {
+ CloudConfigSetService cloudConfigSetService = (CloudConfigSetService) configSetService;
+ ZkSolrResourceLoader.ZkByteArrayInputStream zkis = (ZkSolrResourceLoader.ZkByteArrayInputStream) is;
+ cloudConfigSetService.storeConfig(zkis.fileName, node, zkis.getStat().getVersion());
+ }
+ }
+ };
+ return new IndexSchema(resourceName, schemaResource, config.luceneMatchVersion, loader, config.getSubstituteProperties());
}
}
diff --git a/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java b/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java
index 0dd71f8..dd17c5b 100644
--- a/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java
@@ -67,10 +67,10 @@ import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.ExecutorUtil;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.SolrNamedThreadFactory;
+import org.apache.solr.core.ConfigSetService;
import org.apache.solr.core.SolrConfig;
import org.apache.solr.core.SolrResourceLoader;
import org.apache.solr.rest.schema.FieldTypeXmlAdapter;
-import org.apache.solr.common.util.SolrNamedThreadFactory;
import org.apache.solr.util.DOMConfigNode;
import org.apache.solr.util.FileUtils;
import org.apache.solr.util.RTimer;
@@ -79,7 +79,6 @@ import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.data.Stat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.xml.sax.InputSource;
import static org.apache.solr.core.SolrResourceLoader.informAware;
@@ -104,7 +103,7 @@ public final class ManagedIndexSchema extends IndexSchema {
* By default, this follows the normal config path directory searching rules.
* @see org.apache.solr.core.SolrResourceLoader#openResource
*/
- ManagedIndexSchema(SolrConfig solrConfig, String name, InputSource is, boolean isMutable,
+ ManagedIndexSchema(SolrConfig solrConfig, String name, ConfigSetService.ConfigResource is, boolean isMutable,
String managedSchemaResourceName, int schemaZkVersion, Object schemaUpdateLock) {
super(name, is, solrConfig.luceneMatchVersion, solrConfig.getResourceLoader(), solrConfig.getSubstituteProperties());
this.isMutable = isMutable;
diff --git a/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchemaFactory.java b/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchemaFactory.java
index ef5df42..a7e6aef 100644
--- a/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchemaFactory.java
+++ b/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchemaFactory.java
@@ -30,6 +30,7 @@ import org.apache.solr.common.cloud.SolrZkClient;
import org.apache.solr.common.cloud.ZkCmdExecutor;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.NamedList;
+import org.apache.solr.core.ConfigSetService;
import org.apache.solr.core.SolrConfig;
import org.apache.solr.core.SolrCore;
import org.apache.solr.core.SolrResourceLoader;
@@ -109,7 +110,7 @@ public class ManagedIndexSchemaFactory extends IndexSchemaFactory implements Sol
* renamed by appending the extension named in {@link #UPGRADED_SCHEMA_EXTENSION}.
*/
@Override
- public ManagedIndexSchema create(String resourceName, SolrConfig config) {
+ public ManagedIndexSchema create(String resourceName, SolrConfig config, ConfigSetService configSetService) {
this.resourceName = resourceName;
this.config = config;
this.loader = config.getResourceLoader();
@@ -174,8 +175,8 @@ public class ManagedIndexSchemaFactory extends IndexSchemaFactory implements Sol
}
InputSource inputSource = new InputSource(schemaInputStream);
inputSource.setSystemId(SystemIdResolver.createSystemIdFromResourceName(loadedResource));
- schema = new ManagedIndexSchema(config, loadedResource, inputSource, isMutable,
- managedSchemaResourceName, schemaZkVersion, getSchemaUpdateLock());
+ schema = new ManagedIndexSchema(config, loadedResource, () -> inputSource, isMutable,
+ managedSchemaResourceName, schemaZkVersion, getSchemaUpdateLock());
if (shouldUpgrade) {
// Persist the managed schema if it doesn't already exist
synchronized (schema.getSchemaUpdateLock()) {
diff --git a/solr/core/src/java/org/apache/solr/schema/SchemaManager.java b/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
index f539969..be126f2 100644
--- a/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
+++ b/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
@@ -451,10 +451,11 @@ public class SchemaManager {
return (ManagedIndexSchema) core.getLatestSchema();
}
InputStream in = resourceLoader.openResource(name);
+ InputSource is = new InputSource(in);
if (in instanceof ZkSolrResourceLoader.ZkByteArrayInputStream) {
int version = ((ZkSolrResourceLoader.ZkByteArrayInputStream) in).getStat().getVersion();
log.info("managed schema loaded . version : {} ", version);
- return new ManagedIndexSchema(core.getSolrConfig(), name, new InputSource(in), true, name, version,
+ return new ManagedIndexSchema(core.getSolrConfig(), name, () -> is, true, name, version,
core.getLatestSchema().getSchemaUpdateLock());
} else {
return (ManagedIndexSchema) core.getLatestSchema();
diff --git a/solr/core/src/java/org/apache/solr/schema/ZkIndexSchemaReader.java b/solr/core/src/java/org/apache/solr/schema/ZkIndexSchemaReader.java
index 3b867ce..56daf01 100644
--- a/solr/core/src/java/org/apache/solr/schema/ZkIndexSchemaReader.java
+++ b/solr/core/src/java/org/apache/solr/schema/ZkIndexSchemaReader.java
@@ -174,7 +174,7 @@ public class ZkIndexSchemaReader implements OnReconnect {
InputSource inputSource = new InputSource(new ByteArrayInputStream(data));
String resourceName = managedIndexSchemaFactory.getManagedSchemaResourceName();
ManagedIndexSchema newSchema = new ManagedIndexSchema
- (managedIndexSchemaFactory.getConfig(), resourceName, inputSource, managedIndexSchemaFactory.isMutable(),
+ (managedIndexSchemaFactory.getConfig(), resourceName, () -> inputSource, managedIndexSchemaFactory.isMutable(),
resourceName, stat.getVersion(), oldSchema.getSchemaUpdateLock());
managedIndexSchemaFactory.setSchema(newSchema);
long stop = System.nanoTime();
diff --git a/solr/core/src/java/org/apache/solr/util/DataConfigNode.java b/solr/core/src/java/org/apache/solr/util/DataConfigNode.java
index 3867af7..9c825e8 100644
--- a/solr/core/src/java/org/apache/solr/util/DataConfigNode.java
+++ b/solr/core/src/java/org/apache/solr/util/DataConfigNode.java
@@ -37,36 +37,38 @@ public class DataConfigNode implements ConfigNode {
final String name;
final SimpleMap<String> attributes;
private final Map<String, List<ConfigNode>> kids = new HashMap<>();
- private String textData;
- private final Function<String, String> propertySubstitution;
+ private final String textData;
- public DataConfigNode(ConfigNode root, Function<String, String> propertySubstitution) {
- this.propertySubstitution = propertySubstitution;
+ public DataConfigNode(ConfigNode root) {
name = root.name();
attributes = wrap(root.attributes());
textData = root.textValue();
- if (textData != null) textData = PropertiesUtil.substitute(textData.trim(), propertySubstitution);
root.forEachChild(it -> {
List<ConfigNode> nodes = kids.computeIfAbsent(it.name(),
k -> new ArrayList<>());
- nodes.add(new DataConfigNode(it, propertySubstitution));
+ nodes.add(new DataConfigNode(it));
return Boolean.TRUE;
});
}
+ public String subtituteVal(String s) {
+ Function<String, String> props = SUBSTITUTES.get();
+ if (props == null) return s;
+ return PropertiesUtil.substitute(s, props);
+ }
+
private SimpleMap<String> wrap(SimpleMap<String> delegate) {
- return propertySubstitution == null ? delegate :
- new SimpleMap<>() {
+ return new SimpleMap<>() {
@Override
public String get(String key) {
- return PropertiesUtil.substitute(delegate.get(key), propertySubstitution);
+ return subtituteVal(delegate.get(key));
}
@Override
public void forEachEntry(BiConsumer<String, ? super String> fun) {
- delegate.forEachEntry((k, v) -> fun.accept(k, PropertiesUtil.substitute(v, propertySubstitution)));
+ delegate.forEachEntry((k, v) -> fun.accept(k, subtituteVal(v)));
}
@Override
@@ -83,7 +85,7 @@ public class DataConfigNode implements ConfigNode {
@Override
public String textValue() {
- return textData;
+ return subtituteVal(textData);
}
@Override
diff --git a/solr/core/src/test/org/apache/solr/schema/TestManagedSchemaThreadSafety.java b/solr/core/src/test/org/apache/solr/schema/TestManagedSchemaThreadSafety.java
index c611359..e2d8737 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestManagedSchemaThreadSafety.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestManagedSchemaThreadSafety.java
@@ -17,9 +17,6 @@
package org.apache.solr.schema;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
@@ -50,6 +47,9 @@ import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
public class TestManagedSchemaThreadSafety extends SolrTestCaseJ4 {
private static final class SuspendingZkClient extends SolrZkClient {
@@ -180,7 +180,7 @@ public class TestManagedSchemaThreadSafety extends SolrTestCaseJ4 {
ManagedIndexSchemaFactory factory = new ManagedIndexSchemaFactory();
factory.init(new NamedList());
- factory.create("schema.xml", solrConfig);
+ factory.create("schema.xml", solrConfig, null);
}
catch (Exception e) {
throw new RuntimeException(e);
diff --git a/solr/solrj/src/java/org/apache/solr/common/ConfigNode.java b/solr/solrj/src/java/org/apache/solr/common/ConfigNode.java
index f046440..0f6a813 100644
--- a/solr/solrj/src/java/org/apache/solr/common/ConfigNode.java
+++ b/solr/solrj/src/java/org/apache/solr/common/ConfigNode.java
@@ -29,6 +29,7 @@ import org.apache.solr.cluster.api.SimpleMap;
* A generic interface that represents a config file, mostly XML
*/
public interface ConfigNode {
+ ThreadLocal<Function<String,String>> SUBSTITUTES = new ThreadLocal<>();
/**
* Name of the tag
[lucene-solr] 04/18: bug fix
Posted by is...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ishan pushed a commit to branch jira/solr14827
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit 70b5ad3af246afd5f59d040eebb3fa83ecb74b1d
Author: noblepaul <no...@gmail.com>
AuthorDate: Mon Sep 7 10:43:03 2020 +1000
bug fix
---
.../java/org/apache/solr/core/XmlConfigFile.java | 23 +++-------------------
.../java/org/apache/solr/schema/IndexSchema.java | 10 +++++++---
2 files changed, 10 insertions(+), 23 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/core/XmlConfigFile.java b/solr/core/src/java/org/apache/solr/core/XmlConfigFile.java
index 9df33b7..6cc6216 100644
--- a/solr/core/src/java/org/apache/solr/core/XmlConfigFile.java
+++ b/solr/core/src/java/org/apache/solr/core/XmlConfigFile.java
@@ -20,11 +20,6 @@ import javax.xml.namespace.QName;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMResult;
-import javax.xml.transform.dom.DOMSource;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
@@ -145,7 +140,7 @@ public class XmlConfigFile { // formerly simply "Config"
db.setErrorHandler(xmllog);
try {
doc = db.parse(is);
- origDoc = copyDoc(doc);
+ origDoc = doc;
} finally {
// some XML parsers are broken and don't close the byte stream (but they should according to spec)
IOUtils.closeQuietly(is.getByteStream());
@@ -153,7 +148,7 @@ public class XmlConfigFile { // formerly simply "Config"
if (substituteProps != null) {
DOMUtil.substituteProperties(doc, getSubstituteProperties());
}
- } catch (ParserConfigurationException | SAXException | TransformerException e) {
+ } catch (ParserConfigurationException | SAXException e) {
SolrException.log(log, "Exception during parsing file: " + name, e);
throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, e);
}
@@ -179,15 +174,7 @@ public class XmlConfigFile { // formerly simply "Config"
return this.substituteProperties;
}
- private static Document copyDoc(Document doc) throws TransformerException {
- TransformerFactory tfactory = TransformerFactory.newInstance();
- Transformer tx = tfactory.newTransformer();
- DOMSource source = new DOMSource(doc);
- DOMResult result = new DOMResult();
- tx.transform(source, result);
- return (Document) result.getNode();
- }
-
+
/**
* @since solr 1.3
*/
@@ -237,10 +224,6 @@ public class XmlConfigFile { // formerly simply "Config"
return getNode(path, doc, errifMissing);
}
- public Node getUnsubstitutedNode(String path, boolean errIfMissing) {
- return getNode(path, origDoc, errIfMissing);
- }
-
public Node getNode(String path, Document doc, boolean errIfMissing) {
XPath xpath = xpathFactory.newXPath();
String xstr = normalize(path);
diff --git a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
index 8344fc6..1aa1e66 100644
--- a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
@@ -756,9 +756,13 @@ public class IndexSchema {
// NodeList nodes = (NodeList)xpath.evaluate(expression, document, XPathConstants.NODESET);
List<ConfigNode> nodes = n.children(COPY_FIELD);
- for (int i=0; i<nodes.size(); i++) {
- ConfigNode node = nodes.get(i);
-// NamedNodeMap attrs = node.getAttributes();
+ ConfigNode f = n.child(FIELDS);
+ if (f != null) {
+ List<ConfigNode> c = f.children(COPY_FIELD);
+ if (nodes.isEmpty()) nodes = c;
+ else nodes.addAll(c);
+ }
+ for (ConfigNode node : nodes) {
String source = DOMUtil.getAttr(node, SOURCE, COPY_FIELD + " definition");
String dest = DOMUtil.getAttr(node, DESTINATION, COPY_FIELD + " definition");
[lucene-solr] 01/18: SOLR-14827: Refactor schema loading to not use
XPath
Posted by is...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ishan pushed a commit to branch jira/solr14827
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit 74c98f04e6dfbe848d2462e51927d4ddda975ae0
Author: noblepaul <no...@gmail.com>
AuthorDate: Fri Sep 4 01:04:49 2020 +1000
SOLR-14827: Refactor schema loading to not use XPath
---
.../java/org/apache/solr/core/XmlConfigFile.java | 9 ++
.../apache/solr/schema/FieldTypePluginLoader.java | 85 +++++++------
.../java/org/apache/solr/schema/IndexSchema.java | 134 +++++++++++----------
.../org/apache/solr/schema/ManagedIndexSchema.java | 4 +-
.../java/org/apache/solr/util/DOMConfigNode.java | 86 +++++++++++++
.../solr/util/plugin/AbstractPluginLoader.java | 18 +--
.../apache/solr/util/plugin/MapPluginLoader.java | 6 +-
.../solr/util/plugin/NamedListPluginLoader.java | 4 +-
.../org/apache/solr/cluster/api/SimpleMap.java | 5 +
.../java/org/apache/solr/common/ConfigNode.java | 73 +++++++++++
.../java/org/apache/solr/common/util/DOMUtil.java | 108 +++++++++++++----
11 files changed, 388 insertions(+), 144 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/core/XmlConfigFile.java b/solr/core/src/java/org/apache/solr/core/XmlConfigFile.java
index 6d8cb92..ed28075 100644
--- a/solr/core/src/java/org/apache/solr/core/XmlConfigFile.java
+++ b/solr/core/src/java/org/apache/solr/core/XmlConfigFile.java
@@ -44,9 +44,12 @@ import java.util.TreeSet;
import org.apache.commons.io.IOUtils;
import org.apache.solr.cloud.ZkSolrResourceLoader;
+import org.apache.solr.common.ConfigNode;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.util.DOMUtil;
import org.apache.solr.common.util.XMLErrorLogger;
+import org.apache.solr.util.DOMConfigNode;
+import org.apache.solr.util.DOMUtil;
import org.apache.solr.util.SystemIdResolver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -72,6 +75,8 @@ public class XmlConfigFile { // formerly simply "Config"
private final String prefix;
private final String name;
private final SolrResourceLoader loader;
+
+ private final ConfigNode rootNode;
private final Properties substituteProperties;
private int zkVersion = -1;
@@ -152,11 +157,15 @@ public class XmlConfigFile { // formerly simply "Config"
if (substituteProps != null) {
DOMUtil.substituteProperties(doc, getSubstituteProperties());
}
+ rootNode = new DOMConfigNode(doc.getDocumentElement());
} catch (ParserConfigurationException | SAXException | TransformerException e) {
SolrException.log(log, "Exception during parsing file: " + name, e);
throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, e);
}
}
+ public ConfigNode rootNode() {
+ return rootNode;
+ }
/*
* Assert that assertCondition is true.
diff --git a/solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java b/solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java
index b4f51ec..2d86113 100644
--- a/solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java
+++ b/solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java
@@ -16,13 +16,10 @@
*/
package org.apache.solr.schema;
-import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPathExpressionException;
-import javax.xml.xpath.XPathFactory;
import java.lang.invoke.MethodHandles;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -33,6 +30,7 @@ import org.apache.lucene.analysis.TokenizerFactory;
import org.apache.lucene.analysis.core.KeywordAnalyzer;
import org.apache.lucene.util.Version;
import org.apache.solr.analysis.TokenizerChain;
+import org.apache.solr.common.ConfigNode;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.cloud.SolrClassLoader;
import org.apache.solr.common.util.DOMUtil;
@@ -40,9 +38,6 @@ import org.apache.solr.core.SolrConfig;
import org.apache.solr.util.plugin.AbstractPluginLoader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
import static org.apache.solr.common.params.CommonParams.NAME;
@@ -54,8 +49,6 @@ public final class FieldTypePluginLoader
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
- private final XPath xpath = XPathFactory.newInstance().newXPath();
-
/**
* @param schema The schema that will be used to initialize the FieldTypes
* @param fieldTypes All FieldTypes that are instantiated by
@@ -81,27 +74,30 @@ public final class FieldTypePluginLoader
protected FieldType create( SolrClassLoader loader,
String name,
String className,
- Node node ) throws Exception {
+ ConfigNode node ) throws Exception {
FieldType ft = loader.newInstance(className, FieldType.class);
ft.setTypeName(name);
String expression = "./analyzer[@type='query']";
- Node anode = (Node)xpath.evaluate(expression, node, XPathConstants.NODE);
+ ConfigNode anode = node.child(it -> "analyzer".equals(it.name()) && "query".equals(it.attributes().get("type")));
Analyzer queryAnalyzer = readAnalyzer(anode);
- expression = "./analyzer[@type='multiterm']";
- anode = (Node)xpath.evaluate(expression, node, XPathConstants.NODE);
+// expression = "./analyzer[@type='multiterm']";
+ anode = node.child(it -> "analyzer".equals(it.name()) && "multiterm".equals(it.attributes().get("type"))) ;
Analyzer multiAnalyzer = readAnalyzer(anode);
// An analyzer without a type specified, or with type="index"
expression = "./analyzer[not(@type)] | ./analyzer[@type='index']";
- anode = (Node)xpath.evaluate(expression, node, XPathConstants.NODE);
+ anode = node.child(it -> "analyzer".equals(it.name()) &&
+ (it.attributes().get("type") == null || "index".equals(it.attributes().get("type"))));
+// anode = (Node)xpath.evaluate(expression, node, XPathConstants.NODE);
Analyzer analyzer = readAnalyzer(anode);
// a custom similarity[Factory]
expression = "./similarity";
- anode = (Node)xpath.evaluate(expression, node, XPathConstants.NODE);
+ anode = node.child(it -> "similarity".equals(it.name()) && "multiterm".equals(it.attributes().get("type"))) ;
+
SimilarityFactory simFactory = IndexSchema.readSimilarity(loader, anode);
if (null != simFactory) {
ft.setSimilarity(simFactory);
@@ -153,9 +149,9 @@ public final class FieldTypePluginLoader
}
@Override
- protected void init(FieldType plugin, Node node) throws Exception {
+ protected void init(FieldType plugin, ConfigNode node) throws Exception {
- Map<String, String> params = DOMUtil.toMapExcept(node.getAttributes(), NAME);
+ Map<String, String> params = DOMUtil.toMapExcept(node, NAME);
plugin.setArgs(schema, params);
}
@@ -187,7 +183,7 @@ public final class FieldTypePluginLoader
// <analyzer><tokenizer class="...."/><tokenizer class="...." arg="....">
//
//
- private Analyzer readAnalyzer(Node node) throws XPathExpressionException {
+ private Analyzer readAnalyzer(ConfigNode node) {
final SolrClassLoader loader = schema.getSolrClassLoader();
@@ -196,26 +192,29 @@ public final class FieldTypePluginLoader
// Node node = DOMUtil.getChild(fieldtype,"analyzer");
if (node == null) return null;
- NamedNodeMap attrs = node.getAttributes();
- String analyzerName = DOMUtil.getAttr(attrs,"class");
+// NamedNodeMap attrs = node.getAttributes();
+ String analyzerName = DOMUtil.getAttr(node,"class", null);
// check for all of these up front, so we can error if used in
// conjunction with an explicit analyzer class.
- NodeList charFilterNodes = (NodeList)xpath.evaluate
- ("./charFilter", node, XPathConstants.NODESET);
- NodeList tokenizerNodes = (NodeList)xpath.evaluate
- ("./tokenizer", node, XPathConstants.NODESET);
- NodeList tokenFilterNodes = (NodeList)xpath.evaluate
- ("./filter", node, XPathConstants.NODESET);
-
+// NodeList charFilterNodes = (NodeList)xpath.evaluate
+// ("./charFilter", node, XPathConstants.NODESET);
+// NodeList tokenizerNodes = (NodeList)xpath.evaluate
+// ("./tokenizer", node, XPathConstants.NODESET);
+// NodeList tokenFilterNodes = (NodeList)xpath.evaluate
+// ("./filter", node, XPathConstants.NODESET);
+ List<ConfigNode> charFilterNodes = node.children("charFilter");
+ List<ConfigNode> tokenizerNodes = node.children("tokenizer");
+ List<ConfigNode> tokenFilterNodes = node.children("filter");
+
if (analyzerName != null) {
// explicitly check for child analysis factories instead of
// just any child nodes, because the user might have their
// own custom nodes (ie: <description> or something like that)
- if (0 != charFilterNodes.getLength() ||
- 0 != tokenizerNodes.getLength() ||
- 0 != tokenFilterNodes.getLength()) {
+ if (0 != charFilterNodes.size() ||
+ 0 != tokenizerNodes.size() ||
+ 0 != tokenFilterNodes.size()) {
throw new SolrException
( SolrException.ErrorCode.SERVER_ERROR,
"Configuration Error: Analyzer class='" + analyzerName +
@@ -227,7 +226,7 @@ public final class FieldTypePluginLoader
final Class<? extends Analyzer> clazz = loader.findClass(analyzerName, Analyzer.class);
Analyzer analyzer = clazz.getConstructor().newInstance();
- final String matchVersionStr = DOMUtil.getAttr(attrs, LUCENE_MATCH_VERSION_PARAM);
+ final String matchVersionStr = DOMUtil.getAttr(node, LUCENE_MATCH_VERSION_PARAM,null);
final Version luceneMatchVersion = (matchVersionStr == null) ?
schema.getDefaultLuceneMatchVersion() :
SolrConfig.parseLuceneVersionString(matchVersionStr);
@@ -254,9 +253,9 @@ public final class FieldTypePluginLoader
("[schema.xml] analyzer/charFilter", CharFilterFactory.class, false, false) {
@Override
- @SuppressWarnings({"rawtypes"})
- protected CharFilterFactory create(SolrClassLoader loader, String name, String className, Node node) throws Exception {
- final Map<String,String> params = DOMUtil.toMap(node.getAttributes());
+ @SuppressWarnings("rawtypes")
+ protected CharFilterFactory create(SolrClassLoader loader, String name, String className, ConfigNode node) throws Exception {
+ final Map<String,String> params = DOMUtil.toMapExcept(node);
String configuredVersion = params.remove(LUCENE_MATCH_VERSION_PARAM);
params.put(LUCENE_MATCH_VERSION_PARAM, parseConfiguredVersion(configuredVersion, CharFilterFactory.class.getSimpleName()).toString());
CharFilterFactory factory;
@@ -279,7 +278,7 @@ public final class FieldTypePluginLoader
}
@Override
- protected void init(CharFilterFactory plugin, Node node) throws Exception {
+ protected void init(CharFilterFactory plugin, ConfigNode node) throws Exception {
if( plugin != null ) {
charFilters.add( plugin );
}
@@ -305,9 +304,9 @@ public final class FieldTypePluginLoader
("[schema.xml] analyzer/tokenizer", TokenizerFactory.class, false, false) {
@Override
- @SuppressWarnings({"rawtypes"})
- protected TokenizerFactory create(SolrClassLoader loader, String name, String className, Node node) throws Exception {
- final Map<String,String> params = DOMUtil.toMap(node.getAttributes());
+ @SuppressWarnings("rawtypes")
+ protected TokenizerFactory create(SolrClassLoader loader, String name, String className, ConfigNode node) throws Exception {
+ final Map<String,String> params = DOMUtil.toMap(node);
String configuredVersion = params.remove(LUCENE_MATCH_VERSION_PARAM);
params.put(LUCENE_MATCH_VERSION_PARAM, parseConfiguredVersion(configuredVersion, TokenizerFactory.class.getSimpleName()).toString());
TokenizerFactory factory;
@@ -330,7 +329,7 @@ public final class FieldTypePluginLoader
}
@Override
- protected void init(TokenizerFactory plugin, Node node) throws Exception {
+ protected void init(TokenizerFactory plugin, ConfigNode node) throws Exception {
if( !tokenizers.isEmpty() ) {
throw new SolrException( SolrException.ErrorCode.SERVER_ERROR,
"The schema defines multiple tokenizers for: "+node );
@@ -360,9 +359,9 @@ public final class FieldTypePluginLoader
new AbstractPluginLoader<TokenFilterFactory>("[schema.xml] analyzer/filter", TokenFilterFactory.class, false, false)
{
@Override
- @SuppressWarnings({"rawtypes"})
- protected TokenFilterFactory create(SolrClassLoader loader, String name, String className, Node node) throws Exception {
- final Map<String,String> params = DOMUtil.toMap(node.getAttributes());
+ @SuppressWarnings("rawtypes")
+ protected TokenFilterFactory create(SolrClassLoader loader, String name, String className, ConfigNode node) throws Exception {
+ final Map<String,String> params = DOMUtil.toMap(node);
String configuredVersion = params.remove(LUCENE_MATCH_VERSION_PARAM);
params.put(LUCENE_MATCH_VERSION_PARAM, parseConfiguredVersion(configuredVersion, TokenFilterFactory.class.getSimpleName()).toString());
TokenFilterFactory factory;
@@ -385,7 +384,7 @@ public final class FieldTypePluginLoader
}
@Override
- protected void init(TokenFilterFactory plugin, Node node) throws Exception {
+ protected void init(TokenFilterFactory plugin, ConfigNode node) throws Exception {
if( plugin != null ) {
filters.add( plugin );
}
diff --git a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
index 305cd50..c451176 100644
--- a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
@@ -16,8 +16,6 @@
*/
package org.apache.solr.schema;
-import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import java.io.IOException;
import java.io.Writer;
@@ -39,17 +37,20 @@ import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
import java.util.TreeSet;
+import java.util.concurrent.atomic.AtomicLong;
import java.util.function.Function;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.Stream;
+import com.google.common.collect.ImmutableSet;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.DelegatingAnalyzerWrapper;
import org.apache.lucene.index.IndexableField;
import org.apache.lucene.queries.payloads.PayloadDecoder;
import org.apache.lucene.search.similarities.Similarity;
import org.apache.lucene.util.Version;
+import org.apache.solr.common.ConfigNode;
import org.apache.solr.common.MapSerializable;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrException;
@@ -77,11 +78,6 @@ import org.apache.solr.util.PayloadUtils;
import org.apache.solr.util.plugin.SolrCoreAware;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import static java.util.Arrays.asList;
@@ -148,6 +144,8 @@ public class IndexSchema {
public DynamicField[] getDynamicFields() { return dynamicFields; }
+ private final Set<String> FIELDTYPE_KEYS = ImmutableSet.of("fieldtype", "fieldType");
+
@SuppressWarnings({"unchecked", "rawtypes"})
protected Cache<String, SchemaField> dynamicFieldCache = new ConcurrentLRUCache(10000, 8000, 9000,100, false,false, null);
@@ -163,7 +161,6 @@ public class IndexSchema {
public DynamicCopy[] getDynamicCopyFields() { return dynamicCopyFields; }
private Map<FieldType, PayloadDecoder> decoders = new HashMap<>(); // cache to avoid scanning token filters repeatedly, unnecessarily
-
/**
* keys are all fields copied to, count is num of copyField
* directives that target them.
@@ -180,7 +177,9 @@ public class IndexSchema {
this.resourceName = Objects.requireNonNull(name);
try {
+// long start = System.currentTimeMillis();
readSchema(is);
+// System.out.println("schema-load-time : "+ totalSchemaLoadTime.addAndGet (System.currentTimeMillis() - start));
loader.inform(loader);
} catch (IOException e) {
throw new RuntimeException(e);
@@ -480,17 +479,18 @@ public class IndexSchema {
// pass the config resource loader to avoid building an empty one for no reason:
// in the current case though, the stream is valid so we wont load the resource by name
XmlConfigFile schemaConf = new XmlConfigFile(loader, SCHEMA, is, SLASH+SCHEMA+SLASH, substitutableProperties);
- Document document = schemaConf.getDocument();
- final XPath xpath = schemaConf.getXPath();
- String expression = stepsToPath(SCHEMA, AT + NAME);
- Node nd = (Node) xpath.evaluate(expression, document, XPathConstants.NODE);
+// Document document = schemaConf.getDocument();
+// final XPath xpath = schemaConf.getXPath();
+// String expression = stepsToPath(SCHEMA, AT + NAME);
+// Node nd = (Node) xpath.evaluate(expression, document, XPathConstants.NODE);
+ ConfigNode rootNode = schemaConf.rootNode();
+ name = rootNode.attributes().get("name");
StringBuilder sb = new StringBuilder();
// Another case where the initialization from the test harness is different than the "real world"
- if (nd==null) {
+ if (name==null) {
sb.append("schema has no name!");
log.warn("{}", sb);
} else {
- name = nd.getNodeValue();
sb.append("Schema ");
sb.append(NAME);
sb.append("=");
@@ -499,21 +499,24 @@ public class IndexSchema {
}
// /schema/@version
- expression = stepsToPath(SCHEMA, AT + VERSION);
- version = schemaConf.getFloat(expression, 1.0f);
+// expression = stepsToPath(SCHEMA, AT + VERSION);
+ version = Float.parseFloat(rootNode.attributes().get("version","1.0f"));
// load the Field Types
final FieldTypePluginLoader typeLoader = new FieldTypePluginLoader(this, fieldTypes, schemaAware);
- expression = getFieldTypeXPathExpressions();
- NodeList nodes = (NodeList) xpath.evaluate(expression, document, XPathConstants.NODESET);
- typeLoader.load(solrClassLoader, nodes);
+// expression = getFieldTypeXPathExpressions();
+// NodeList nodes = (NodeList) xpath.evaluate(expression, document, XPathConstants.NODESET);
+
+ typeLoader.load(solrClassLoader,
+ rootNode.children(it -> FIELDTYPE_KEYS.contains( it.name())));
// load the fields
- Map<String,Boolean> explicitRequiredProp = loadFields(document, xpath);
+ Map<String,Boolean> explicitRequiredProp = loadFields(rootNode);
+
+// expression = stepsToPath(SCHEMA, SIMILARITY); // /schema/similarity
+// Node node = (Node) xpath.evaluate(expression, document, XPathConstants.NODE);
- expression = stepsToPath(SCHEMA, SIMILARITY); // /schema/similarity
- Node node = (Node) xpath.evaluate(expression, document, XPathConstants.NODE);
- similarityFactory = readSimilarity(solrClassLoader, node);
+ similarityFactory = readSimilarity(solrClassLoader, rootNode.child(SIMILARITY));
if (similarityFactory == null) {
final Class<?> simClass = SchemaSimilarityFactory.class;
// use the loader to ensure proper SolrCoreAware handling
@@ -537,26 +540,30 @@ public class IndexSchema {
}
// /schema/defaultSearchField/text()
- expression = stepsToPath(SCHEMA, "defaultSearchField", TEXT_FUNCTION);
- node = (Node) xpath.evaluate(expression, document, XPathConstants.NODE);
+// expression = stepsToPath(SCHEMA, "defaultSearchField", TEXT_FUNCTION);
+// node = (Node) xpath.evaluate(expression, document, XPathConstants.NODE);
+ ConfigNode node = rootNode.child("defaultSearchField");
if (node != null) {
throw new SolrException(ErrorCode.SERVER_ERROR, "Setting defaultSearchField in schema not supported since Solr 7");
}
+ node = rootNode.child("solrQueryParser");
// /schema/solrQueryParser/@defaultOperator
- expression = stepsToPath(SCHEMA, "solrQueryParser", AT + "defaultOperator");
- node = (Node) xpath.evaluate(expression, document, XPathConstants.NODE);
+// expression = stepsToPath(SCHEMA, "solrQueryParser", AT + "defaultOperator");
+// node = (Node) xpath.evaluate(expression, document, XPathConstants.NODE);
if (node != null) {
throw new SolrException(ErrorCode.SERVER_ERROR, "Setting default operator in schema (solrQueryParser/@defaultOperator) not supported");
}
// /schema/uniqueKey/text()
- expression = stepsToPath(SCHEMA, UNIQUE_KEY, TEXT_FUNCTION);
- node = (Node) xpath.evaluate(expression, document, XPathConstants.NODE);
+// expression = stepsToPath(SCHEMA, UNIQUE_KEY, TEXT_FUNCTION);
+// node = (Node) xpath.evaluate(expression, document, XPathConstants.NODE);
+ node = rootNode.child(UNIQUE_KEY);
+
if (node==null) {
log.warn("no {} specified in schema.", UNIQUE_KEY);
} else {
- uniqueKeyField=getIndexedField(node.getNodeValue().trim());
+ uniqueKeyField=getIndexedField(node.textValue().trim());
uniqueKeyFieldName=uniqueKeyField.getName();
uniqueKeyFieldType=uniqueKeyField.getType();
@@ -608,7 +615,7 @@ public class IndexSchema {
// expression = "/schema/copyField";
dynamicCopyFields = new DynamicCopy[] {};
- loadCopyFields(document, xpath);
+ loadCopyFields(rootNode);
postReadInform();
@@ -639,61 +646,61 @@ public class IndexSchema {
*
* @return a map from field name to explicit required value
*/
- protected synchronized Map<String,Boolean> loadFields(Document document, XPath xpath) throws XPathExpressionException {
+ protected synchronized Map<String,Boolean> loadFields(ConfigNode n) {
// Hang on to the fields that say if they are required -- this lets us set a reasonable default for the unique key
Map<String,Boolean> explicitRequiredProp = new HashMap<>();
ArrayList<DynamicField> dFields = new ArrayList<>();
// /schema/field | /schema/dynamicField | /schema/fields/field | /schema/fields/dynamicField
- String expression = stepsToPath(SCHEMA, FIELD)
+ /* String expression = stepsToPath(SCHEMA, FIELD)
+ XPATH_OR + stepsToPath(SCHEMA, DYNAMIC_FIELD)
+ XPATH_OR + stepsToPath(SCHEMA, FIELDS, FIELD)
- + XPATH_OR + stepsToPath(SCHEMA, FIELDS, DYNAMIC_FIELD);
-
- NodeList nodes = (NodeList)xpath.evaluate(expression, document, XPathConstants.NODESET);
+ + XPATH_OR + stepsToPath(SCHEMA, FIELDS, DYNAMIC_FIELD);*/
+ List<ConfigNode> nodes = n.children(it -> "field".equals(it.name()) ||
+ "dynamicField".equals(it.name()));
- for (int i=0; i<nodes.getLength(); i++) {
- Node node = nodes.item(i);
+// NodeList nodes = (NodeList)xpath.evaluate(expression, document, XPathConstants.NODESET);
- NamedNodeMap attrs = node.getAttributes();
+ for (ConfigNode node : nodes) {
+ // SimpleMap<String> attrs = node.attributes();
- String name = DOMUtil.getAttr(attrs, NAME, "field definition");
+ String name = DOMUtil.getAttr(node, NAME, "field definition");
log.trace("reading field def {}", name);
- String type = DOMUtil.getAttr(attrs, TYPE, "field " + name);
+ String type = DOMUtil.getAttr(node, TYPE, "field " + name);
FieldType ft = fieldTypes.get(type);
- if (ft==null) {
+ if (ft == null) {
throw new SolrException
(ErrorCode.BAD_REQUEST, "Unknown " + FIELD_TYPE + " '" + type + "' specified on field " + name);
}
- Map<String,String> args = DOMUtil.toMapExcept(attrs, NAME, TYPE);
+ Map<String, String> args = DOMUtil.toMapExcept(node, NAME, TYPE);
if (null != args.get(REQUIRED)) {
explicitRequiredProp.put(name, Boolean.valueOf(args.get(REQUIRED)));
}
- SchemaField f = SchemaField.create(name,ft,args);
+ SchemaField f = SchemaField.create(name, ft, args);
- if (node.getNodeName().equals(FIELD)) {
- SchemaField old = fields.put(f.getName(),f);
- if( old != null ) {
+ if (node.name().equals(FIELD)) {
+ SchemaField old = fields.put(f.getName(), f);
+ if (old != null) {
String msg = "[schema.xml] Duplicate field definition for '"
- + f.getName() + "' [[["+old.toString()+"]]] and [[["+f.toString()+"]]]";
- throw new SolrException(ErrorCode.SERVER_ERROR, msg );
+ + f.getName() + "' [[[" + old.toString() + "]]] and [[[" + f.toString() + "]]]";
+ throw new SolrException(ErrorCode.SERVER_ERROR, msg);
}
log.debug("field defined: {}", f);
- if( f.getDefaultValue() != null ) {
+ if (f.getDefaultValue() != null) {
if (log.isDebugEnabled()) {
log.debug("{} contains default value {}", name, f.getDefaultValue());
}
- fieldsWithDefaultValue.add( f );
+ fieldsWithDefaultValue.add(f);
}
if (f.isRequired()) {
log.debug("{} is required in this schema", name);
requiredFields.add(f);
}
- } else if (node.getNodeName().equals(DYNAMIC_FIELD)) {
+ } else if (node.name().equals(DYNAMIC_FIELD)) {
if (isValidDynamicField(dFields, f)) {
addDynamicFieldNoDupCheck(dFields, f);
}
@@ -733,17 +740,18 @@ public class IndexSchema {
/**
* Loads the copy fields
*/
- protected synchronized void loadCopyFields(Document document, XPath xpath) throws XPathExpressionException {
- String expression = "//" + COPY_FIELD;
- NodeList nodes = (NodeList)xpath.evaluate(expression, document, XPathConstants.NODESET);
+ protected synchronized void loadCopyFields(ConfigNode n) throws XPathExpressionException {
+// String expression = "//" + COPY_FIELD;
+// NodeList nodes = (NodeList)xpath.evaluate(expression, document, XPathConstants.NODESET);
- for (int i=0; i<nodes.getLength(); i++) {
- Node node = nodes.item(i);
- NamedNodeMap attrs = node.getAttributes();
+ List<ConfigNode> nodes = n.children(COPY_FIELD);
+ for (int i=0; i<nodes.size(); i++) {
+ ConfigNode node = nodes.get(i);
+// NamedNodeMap attrs = node.getAttributes();
- String source = DOMUtil.getAttr(attrs, SOURCE, COPY_FIELD + " definition");
- String dest = DOMUtil.getAttr(attrs, DESTINATION, COPY_FIELD + " definition");
- String maxChars = DOMUtil.getAttr(attrs, MAX_CHARS);
+ String source = DOMUtil.getAttr(node, SOURCE, COPY_FIELD + " definition");
+ String dest = DOMUtil.getAttr(node, DESTINATION, COPY_FIELD + " definition");
+ String maxChars = DOMUtil.getAttr(node, MAX_CHARS, null);
int maxCharsInt = CopyField.UNLIMITED;
if (maxChars != null) {
@@ -990,12 +998,12 @@ public class IndexSchema {
dynamicCopyFields = temp;
}
- static SimilarityFactory readSimilarity(SolrClassLoader loader, Node node) {
+ static SimilarityFactory readSimilarity(SolrClassLoader loader, ConfigNode node) {
if (node==null) {
return null;
} else {
SimilarityFactory similarityFactory;
- final String classArg = ((Element) node).getAttribute(SimilarityFactory.CLASS_NAME);
+ final String classArg = node.attributes().get(SimilarityFactory.CLASS_NAME);
final Object obj = loader.newInstance(classArg, Object.class, "search.similarities.");
if (obj instanceof SimilarityFactory) {
// configure a factory, get a similarity back
diff --git a/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java b/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java
index e7a748c..0dd71f8 100644
--- a/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java
@@ -70,6 +70,8 @@ import org.apache.solr.common.util.SolrNamedThreadFactory;
import org.apache.solr.core.SolrConfig;
import org.apache.solr.core.SolrResourceLoader;
import org.apache.solr.rest.schema.FieldTypeXmlAdapter;
+import org.apache.solr.common.util.SolrNamedThreadFactory;
+import org.apache.solr.util.DOMConfigNode;
import org.apache.solr.util.FileUtils;
import org.apache.solr.util.RTimer;
import org.apache.zookeeper.CreateMode;
@@ -1308,7 +1310,7 @@ public final class ManagedIndexSchema extends IndexSchema {
Map<String,FieldType> newFieldTypes = new HashMap<>();
List<SchemaAware> schemaAwareList = new ArrayList<>();
FieldTypePluginLoader typeLoader = new FieldTypePluginLoader(this, newFieldTypes, schemaAwareList);
- typeLoader.loadSingle(solrClassLoader, FieldTypeXmlAdapter.toNode(options));
+ typeLoader.loadSingle(solrClassLoader, new DOMConfigNode(FieldTypeXmlAdapter.toNode(options)));
FieldType ft = newFieldTypes.get(typeName);
if (!schemaAwareList.isEmpty())
schemaAware.addAll(schemaAwareList);
diff --git a/solr/core/src/java/org/apache/solr/util/DOMConfigNode.java b/solr/core/src/java/org/apache/solr/util/DOMConfigNode.java
new file mode 100644
index 0000000..1cccbce
--- /dev/null
+++ b/solr/core/src/java/org/apache/solr/util/DOMConfigNode.java
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.solr.util;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.function.Function;
+
+import org.apache.solr.cluster.api.SimpleMap;
+import org.apache.solr.common.ConfigNode;
+import org.apache.solr.common.util.WrappedSimpleMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * Read using DOM
+ */
+public class DOMConfigNode implements ConfigNode {
+
+ private final Node node;
+ SimpleMap<String> attrs;
+
+ @Override
+ public String name() {
+ return node.getNodeName();
+ }
+
+ @Override
+ public String textValue() {
+ return DOMUtil.getText(node);
+ }
+
+ public DOMConfigNode(Node node) {
+ this.node = node;
+ }
+
+ @Override
+ public SimpleMap<String> attributes() {
+ if (attrs != null) return attrs;
+ return attrs = new WrappedSimpleMap<>(DOMUtil.toMap(node.getAttributes()));
+ }
+
+ @Override
+ public ConfigNode child(String name) {
+ Node n = DOMUtil.getChild(node, name);
+ return n == null? null: new DOMConfigNode(n);
+ }
+
+ @Override
+ public List<ConfigNode> children(String name) {
+ List<ConfigNode> result = new ArrayList<>();
+ forEachChild(it -> {
+ if (name.equals(it.name())) {
+ result.add(it);
+ }
+ return Boolean.TRUE;
+ });
+ return result;
+ }
+
+ @Override
+ public void forEachChild(Function<ConfigNode, Boolean> fun) {
+ NodeList nlst = node.getChildNodes();
+ for (int i = 0; i < nlst.getLength(); i++) {
+ Node item = nlst.item(i);
+ if(item.getNodeType() != Node.ELEMENT_NODE) continue;
+ Boolean toContinue = fun.apply(new DOMConfigNode(item));
+ if (Boolean.FALSE == toContinue) break;
+ }
+ }
+}
diff --git a/solr/core/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java b/solr/core/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java
index d042531..48f07d0 100644
--- a/solr/core/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java
+++ b/solr/core/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java
@@ -20,7 +20,9 @@ import java.lang.invoke.MethodHandles;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
+import java.util.function.Consumer;
+import org.apache.solr.common.ConfigNode;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrException.ErrorCode;
import org.apache.solr.common.cloud.SolrClassLoader;
@@ -86,7 +88,7 @@ public abstract class AbstractPluginLoader<T>
* @param node - the XML node defining this plugin
*/
@SuppressWarnings("unchecked")
- protected T create(SolrClassLoader loader, String name, String className, Node node ) throws Exception
+ protected T create(SolrClassLoader loader, String name, String className, ConfigNode node ) throws Exception
{
return loader.newInstance(className, pluginClassType, getDefaultPackages());
}
@@ -103,7 +105,7 @@ public abstract class AbstractPluginLoader<T>
* @param plugin - the plugin to initialize
* @param node - the XML node defining this plugin
*/
- abstract protected void init( T plugin, Node node ) throws Exception;
+ abstract protected void init( T plugin, ConfigNode node ) throws Exception;
/**
* Initializes and registers each plugin in the list.
@@ -135,15 +137,13 @@ public abstract class AbstractPluginLoader<T>
* If a default element is defined, it will be returned from this function.
*
*/
- public T load(SolrClassLoader loader, NodeList nodes )
+ public T load(SolrClassLoader loader, List<ConfigNode> nodes )
{
List<PluginInitInfo> info = new ArrayList<>();
T defaultPlugin = null;
if (nodes !=null ) {
- for (int i=0; i<nodes.getLength(); i++) {
- Node node = nodes.item(i);
-
+ for (ConfigNode node : nodes) {
String name = null;
try {
name = DOMUtil.getAttr(node, NAME, requireName ? type : null);
@@ -225,7 +225,7 @@ public abstract class AbstractPluginLoader<T>
* The created class for the plugin will be returned from this function.
*
*/
- public T loadSingle(SolrClassLoader loader, Node node) {
+ public T loadSingle(SolrClassLoader loader, ConfigNode node) {
List<PluginInitInfo> info = new ArrayList<>();
T plugin = null;
@@ -277,9 +277,9 @@ public abstract class AbstractPluginLoader<T>
*/
private class PluginInitInfo {
final T plugin;
- final Node node;
+ final ConfigNode node;
- PluginInitInfo(T plugin, Node node) {
+ PluginInitInfo(T plugin, ConfigNode node) {
this.plugin = plugin;
this.node = node;
}
diff --git a/solr/core/src/java/org/apache/solr/util/plugin/MapPluginLoader.java b/solr/core/src/java/org/apache/solr/util/plugin/MapPluginLoader.java
index 9cf68f6..46bd79f 100644
--- a/solr/core/src/java/org/apache/solr/util/plugin/MapPluginLoader.java
+++ b/solr/core/src/java/org/apache/solr/util/plugin/MapPluginLoader.java
@@ -19,7 +19,7 @@ package org.apache.solr.util.plugin;
import java.util.Map;
import org.apache.solr.common.util.DOMUtil;
-import org.w3c.dom.Node;
+import org.apache.solr.common.ConfigNode;
import static org.apache.solr.common.params.CommonParams.NAME;
@@ -38,8 +38,8 @@ public class MapPluginLoader<T extends MapInitializedPlugin> extends AbstractPlu
}
@Override
- protected void init(T plugin, Node node) throws Exception {
- Map<String, String> params = DOMUtil.toMapExcept(node.getAttributes(), NAME, "class");
+ protected void init(T plugin, ConfigNode node) throws Exception {
+ Map<String, String> params = DOMUtil.toMapExcept(node, NAME, "class");
plugin.init( params );
}
diff --git a/solr/core/src/java/org/apache/solr/util/plugin/NamedListPluginLoader.java b/solr/core/src/java/org/apache/solr/util/plugin/NamedListPluginLoader.java
index ae202db..5736abf 100644
--- a/solr/core/src/java/org/apache/solr/util/plugin/NamedListPluginLoader.java
+++ b/solr/core/src/java/org/apache/solr/util/plugin/NamedListPluginLoader.java
@@ -19,7 +19,7 @@ package org.apache.solr.util.plugin;
import java.util.Map;
import org.apache.solr.common.util.DOMUtil;
-import org.w3c.dom.Node;
+import org.apache.solr.common.ConfigNode;
/**
*
@@ -35,7 +35,7 @@ public class NamedListPluginLoader<T extends NamedListInitializedPlugin> extends
}
@Override
- protected void init(T plugin,Node node) throws Exception {
+ protected void init(T plugin, ConfigNode node) throws Exception {
plugin.init( DOMUtil.childNodesToNamedList(node) );
}
diff --git a/solr/solrj/src/java/org/apache/solr/cluster/api/SimpleMap.java b/solr/solrj/src/java/org/apache/solr/cluster/api/SimpleMap.java
index ca747b9..81da171 100644
--- a/solr/solrj/src/java/org/apache/solr/cluster/api/SimpleMap.java
+++ b/solr/solrj/src/java/org/apache/solr/cluster/api/SimpleMap.java
@@ -35,6 +35,11 @@ public interface SimpleMap<T> extends MapWriter {
/**get a value by key. If not present , null is returned */
T get(String key);
+ default T get(String key, T def) {
+ T val = get(key);
+ return val == null ? def : val;
+ }
+
/**Navigate through all keys and values */
void forEachEntry(BiConsumer<String, ? super T> fun);
diff --git a/solr/solrj/src/java/org/apache/solr/common/ConfigNode.java b/solr/solrj/src/java/org/apache/solr/common/ConfigNode.java
new file mode 100644
index 0000000..90b0b81
--- /dev/null
+++ b/solr/solrj/src/java/org/apache/solr/common/ConfigNode.java
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.solr.common;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.function.Function;
+import java.util.function.Predicate;
+
+import org.apache.solr.cluster.api.SimpleMap;
+
+/**
+ * A generic interface that represents a config file, mostly XML
+ */
+public interface ConfigNode {
+
+ /**Name of the tag
+ */
+ String name();
+
+ /**Text value of the node
+ */
+ String textValue();
+
+ /**Attributes
+ */
+ SimpleMap<String> attributes();
+
+ /** Child by name
+ */
+ ConfigNode child(String name);
+
+ default ConfigNode child(Predicate<ConfigNode> test) {
+ ConfigNode[] result = new ConfigNode[1];
+ forEachChild(it -> {
+ if (test.test(it)) {
+ result[0] = it;
+ return Boolean.FALSE;
+ }
+ return Boolean.TRUE;
+ });
+ return result[0];
+ }
+
+ default List<ConfigNode> children(Predicate<ConfigNode> test) {
+ List<ConfigNode> result = new ArrayList<>();
+ forEachChild(it -> {
+ if (test.test(it)) result.add(it);
+ return Boolean.TRUE;
+ });
+ return result;
+ }
+
+ List<ConfigNode> children(String name);
+
+ void forEachChild(Function<ConfigNode, Boolean> fun);
+
+
+}
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/DOMUtil.java b/solr/solrj/src/java/org/apache/solr/common/util/DOMUtil.java
index c86fcea..206d84b 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/DOMUtil.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/DOMUtil.java
@@ -22,7 +22,10 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import org.apache.solr.common.ConfigNode;
import org.apache.solr.common.SolrException;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
@@ -37,9 +40,23 @@ public class DOMUtil {
public static final String XML_RESERVED_PREFIX = "xml";
+ static final Set<String> NL_TAGS = ImmutableSet.of("str", "int","long","float","double","bool");
+
+
public static Map<String,String> toMap(NamedNodeMap attrs) {
return toMapExcept(attrs);
}
+ public static Map<String,String> toMap(ConfigNode node) {
+ return toMapExcept(node);
+ }
+ public static Map<String,String> toMapExcept(ConfigNode node, String... exclusions) {
+ Map<String,String> args = new HashMap<>();
+ node.attributes().forEachEntry((k, v) -> {
+ for (String ex : exclusions) if (ex.equals(k)) return;
+ args.put(k,v);
+ });
+ return args;
+ }
public static Map<String,String> toMapExcept(NamedNodeMap attrs, String... exclusions) {
Map<String,String> args = new HashMap<>();
@@ -92,6 +109,16 @@ public class DOMUtil {
return val;
}
+ public static String getAttr(ConfigNode node, String name, String missing_err) {
+ String attr = node.attributes().get(name);
+ if (attr == null) {
+ if (missing_err == null) return null;
+ throw new RuntimeException(missing_err + ": missing mandatory attribute '" + name + "'");
+ }
+ return attr;
+
+ }
+
public static String getAttr(Node node, String name, String missing_err) {
return getAttr(node.getAttributes(), name, missing_err);
}
@@ -110,6 +137,10 @@ public class DOMUtil {
return nodesToList(nd.getChildNodes());
}
+ public static NamedList<Object> childNodesToNamedList(ConfigNode node) {
+ return readNamedListChildren(node);
+ }
+
public static NamedList<Object> nodesToNamedList(NodeList nlst) {
NamedList<Object> clst = new NamedList<>();
for (int i=0; i<nlst.getLength(); i++) {
@@ -160,35 +191,66 @@ public class DOMUtil {
val = childNodesToList(nd);
} else {
final String textValue = getText(nd);
- try {
- if ("str".equals(type)) {
- val = textValue;
- } else if ("int".equals(type)) {
- val = Integer.valueOf(textValue);
- } else if ("long".equals(type)) {
- val = Long.valueOf(textValue);
- } else if ("float".equals(type)) {
- val = Float.valueOf(textValue);
- } else if ("double".equals(type)) {
- val = Double.valueOf(textValue);
- } else if ("bool".equals(type)) {
- val = StrUtils.parseBool(textValue);
- }
- // :NOTE: Unexpected Node names are ignored
- // :TODO: should we generate an error here?
- } catch (NumberFormatException nfe) {
- throw new SolrException
- (SolrException.ErrorCode.SERVER_ERROR,
- "Value " + (null != name ? ("of '" +name+ "' ") : "") +
- "can not be parsed as '" +type+ "': \"" + textValue + "\"",
- nfe);
- }
+ val = parseVal(type, name, textValue);
}
if (nlst != null) nlst.add(name,val);
if (arr != null) arr.add(val);
}
+ private static Object parseVal(String type, String name, String textValue) {
+ Object val = null;
+ try {
+ if ("str".equals(type)) {
+ val = textValue;
+ } else if ("int".equals(type)) {
+ val = Integer.valueOf(textValue);
+ } else if ("long".equals(type)) {
+ val = Long.valueOf(textValue);
+ } else if ("float".equals(type)) {
+ val = Float.valueOf(textValue);
+ } else if ("double".equals(type)) {
+ val = Double.valueOf(textValue);
+ } else if ("bool".equals(type)) {
+ val = StrUtils.parseBool(textValue);
+ }
+ // :NOTE: Unexpected Node names are ignored
+ // :TODO: should we generate an error here?
+ } catch (NumberFormatException nfe) {
+ throw new SolrException
+ (SolrException.ErrorCode.SERVER_ERROR,
+ "Value " + (null != name ? ("of '" + name + "' ") : "") +
+ "can not be parsed as '" + type + "': \"" + textValue + "\"",
+ nfe);
+ }
+ return val;
+ }
+
+ public static NamedList<Object> readNamedListChildren(ConfigNode configNode) {
+ NamedList<Object> result = new NamedList<>();
+ configNode.forEachChild(it -> {
+ String tag = it.name();
+ String varName = it.attributes().get("name");
+ if (NL_TAGS.contains(tag)) {
+ result.add(varName, parseVal(tag, varName, it.textValue()));
+ }
+ if ("lst".equals(tag)) {
+ result.add(varName, readNamedListChildren(it));
+ } else if ("arr".equals(tag)) {
+ List<Object> l = new ArrayList<>();
+ result.add(varName, l);
+ it.forEachChild(n -> {
+ if (NL_TAGS.contains(n.name())) {
+ l.add(parseVal(n.name(), null, n.textValue()));
+ }
+ return Boolean.TRUE;
+ });
+ }
+ return Boolean.TRUE;
+ });
+ return result;
+ }
+
/**
* Drop in replacement for Node.getTextContent().
*
[lucene-solr] 03/18: bug fix
Posted by is...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ishan pushed a commit to branch jira/solr14827
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit a6f6330607318d200b6e4e574e9462b0c1aba6a6
Author: noblepaul <no...@gmail.com>
AuthorDate: Fri Sep 4 18:21:40 2020 +1000
bug fix
---
.../org/apache/solr/schema/FieldTypePluginLoader.java | 8 ++++----
.../src/java/org/apache/solr/schema/IndexSchema.java | 16 +++++++++++-----
.../src/java/org/apache/solr/util/DataConfigNode.java | 3 +++
3 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java b/solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java
index b52809e..22625d7 100644
--- a/solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java
+++ b/solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java
@@ -79,7 +79,7 @@ public final class FieldTypePluginLoader
FieldType ft = loader.newInstance(className, FieldType.class);
ft.setTypeName(name);
- String expression = "./analyzer[@type='query']";
+// String expression = "./analyzer[@type='query']";
ConfigNode anode = node.child(it -> "query".equals(it.attributes().get("type")) , "analyzer");
Analyzer queryAnalyzer = readAnalyzer(anode);
@@ -88,15 +88,15 @@ public final class FieldTypePluginLoader
Analyzer multiAnalyzer = readAnalyzer(anode);
// An analyzer without a type specified, or with type="index"
- expression = "./analyzer[not(@type)] | ./analyzer[@type='index']";
+// expression = "./analyzer[not(@type)] | ./analyzer[@type='index']";
anode = node.child(it ->
(it.attributes().get("type") == null || "index".equals(it.attributes().get("type"))), "analyzer");
// anode = (Node)xpath.evaluate(expression, node, XPathConstants.NODE);
Analyzer analyzer = readAnalyzer(anode);
// a custom similarity[Factory]
- expression = "./similarity";
- anode = node.child(it -> "multiterm".equals(it.attributes().get("type")), "similarity") ;
+// expression = "./similarity";
+ anode = node.child("similarity") ;
SimilarityFactory simFactory = IndexSchema.readSimilarity(loader, anode);
if (null != simFactory) {
diff --git a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
index 4a0e4b0..8344fc6 100644
--- a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
@@ -170,7 +170,7 @@ public class IndexSchema {
* directives that target them.
*/
protected Map<SchemaField, Integer> copyFieldTargetCounts = new HashMap<>();
-// static AtomicLong totalSchemaLoadTime = new AtomicLong();
+ static AtomicLong totalSchemaLoadTime = new AtomicLong();
/**
@@ -183,9 +183,9 @@ public class IndexSchema {
this.resourceName = Objects.requireNonNull(name);
try {
-// long start = System.currentTimeMillis();
+ long start = System.currentTimeMillis();
readSchema(is);
-// System.out.println("schema-load-time : "+ totalSchemaLoadTime.addAndGet (System.currentTimeMillis() - start));
+ System.out.println("schema-load-time : "+ totalSchemaLoadTime.addAndGet (System.currentTimeMillis() - start));
loader.inform(loader);
} catch (IOException e) {
throw new RuntimeException(e);
@@ -513,8 +513,10 @@ public class IndexSchema {
// expression = getFieldTypeXPathExpressions();
// NodeList nodes = (NodeList) xpath.evaluate(expression, document, XPathConstants.NODESET);
- typeLoader.load(solrClassLoader,
- rootNode.children(null, FIELDTYPE_KEYS));
+ List<ConfigNode> fTypes = rootNode.children(null, FIELDTYPE_KEYS);
+ ConfigNode types = rootNode.child(TYPES);
+ if(types != null) fTypes.addAll(types.children(null, FIELDTYPE_KEYS));
+ typeLoader.load(solrClassLoader, fTypes);
// load the fields
Map<String,Boolean> explicitRequiredProp = loadFields(rootNode);
@@ -664,6 +666,10 @@ public class IndexSchema {
+ XPATH_OR + stepsToPath(SCHEMA, FIELDS, FIELD)
+ XPATH_OR + stepsToPath(SCHEMA, FIELDS, DYNAMIC_FIELD);*/
List<ConfigNode> nodes = n.children(null, FIELD_KEYS);
+ ConfigNode child = n.child(FIELDS);
+ if(child != null) {
+ nodes.addAll(child.children(null, FIELD_KEYS));
+ }
// NodeList nodes = (NodeList)xpath.evaluate(expression, document, XPathConstants.NODESET);
diff --git a/solr/core/src/java/org/apache/solr/util/DataConfigNode.java b/solr/core/src/java/org/apache/solr/util/DataConfigNode.java
index 2567667..d7bc679 100644
--- a/solr/core/src/java/org/apache/solr/util/DataConfigNode.java
+++ b/solr/core/src/java/org/apache/solr/util/DataConfigNode.java
@@ -29,6 +29,9 @@ import java.util.function.Predicate;
import org.apache.solr.cluster.api.SimpleMap;
import org.apache.solr.common.ConfigNode;
+/**
+ * ConfigNode impl that copies and maintains data internally
+ */
public class DataConfigNode implements ConfigNode {
final String name;
final SimpleMap<String> attributes;
[lucene-solr] 07/18: substitute properties real time
Posted by is...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ishan pushed a commit to branch jira/solr14827
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit cecf1f9aa32652c986dad2ce4893d47a6e2e2054
Author: noblepaul <no...@gmail.com>
AuthorDate: Wed Sep 9 18:20:37 2020 +1000
substitute properties real time
---
.../java/org/apache/solr/schema/IndexSchema.java | 5 +--
.../java/org/apache/solr/util/DataConfigNode.java | 36 +++++++++++++++++-----
.../apache/solr/common/util/PropertiesUtil.java | 13 +++++---
3 files changed, 40 insertions(+), 14 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
index dfb82fd..772e049 100644
--- a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
@@ -483,12 +483,13 @@ public class IndexSchema {
try {
// pass the config resource loader to avoid building an empty one for no reason:
// in the current case though, the stream is valid so we wont load the resource by name
- XmlConfigFile schemaConf = new XmlConfigFile(loader, SCHEMA, is, SLASH+SCHEMA+SLASH, substitutableProperties);
+ XmlConfigFile schemaConf = new XmlConfigFile(loader, SCHEMA, is, SLASH+SCHEMA+SLASH, null);
// Document document = schemaConf.getDocument();
// final XPath xpath = schemaConf.getXPath();
// String expression = stepsToPath(SCHEMA, AT + NAME);
// Node nd = (Node) xpath.evaluate(expression, document, XPathConstants.NODE);
- ConfigNode rootNode = new DataConfigNode(new DOMConfigNode(schemaConf.getDocument().getDocumentElement()) , Collections.singleton("similarity")) ;
+ ConfigNode rootNode = new DataConfigNode(new DOMConfigNode(schemaConf.getDocument().getDocumentElement()),
+ substitutableProperties::getProperty) ;
name = rootNode.attributes().get("name");
StringBuilder sb = new StringBuilder();
// Another case where the initialization from the test harness is different than the "real world"
diff --git a/solr/core/src/java/org/apache/solr/util/DataConfigNode.java b/solr/core/src/java/org/apache/solr/util/DataConfigNode.java
index d7bc679..3867af7 100644
--- a/solr/core/src/java/org/apache/solr/util/DataConfigNode.java
+++ b/solr/core/src/java/org/apache/solr/util/DataConfigNode.java
@@ -23,6 +23,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.function.BiConsumer;
import java.util.function.Function;
import java.util.function.Predicate;
@@ -37,25 +38,44 @@ public class DataConfigNode implements ConfigNode {
final SimpleMap<String> attributes;
private final Map<String, List<ConfigNode>> kids = new HashMap<>();
private String textData;
+ private final Function<String, String> propertySubstitution;
- public DataConfigNode(ConfigNode root, Set<String> ignore) {
+ public DataConfigNode(ConfigNode root, Function<String, String> propertySubstitution) {
+ this.propertySubstitution = propertySubstitution;
name = root.name();
- attributes = root.attributes();
+ attributes = wrap(root.attributes());
textData = root.textValue();
- if (textData != null) textData = textData.trim();
+ if (textData != null) textData = PropertiesUtil.substitute(textData.trim(), propertySubstitution);
root.forEachChild(it -> {
List<ConfigNode> nodes = kids.computeIfAbsent(it.name(),
k -> new ArrayList<>());
- if (ignore != null && ignore.contains(it.name())) {
- nodes.add(it);
- } else {
- nodes.add(new DataConfigNode(it, ignore));
- }
+
+ nodes.add(new DataConfigNode(it, propertySubstitution));
return Boolean.TRUE;
});
}
+ private SimpleMap<String> wrap(SimpleMap<String> delegate) {
+ return propertySubstitution == null ? delegate :
+ new SimpleMap<>() {
+ @Override
+ public String get(String key) {
+ return PropertiesUtil.substitute(delegate.get(key), propertySubstitution);
+ }
+
+ @Override
+ public void forEachEntry(BiConsumer<String, ? super String> fun) {
+ delegate.forEachEntry((k, v) -> fun.accept(k, PropertiesUtil.substitute(v, propertySubstitution)));
+ }
+
+ @Override
+ public int size() {
+ return delegate.size();
+ }
+ };
+ }
+
@Override
public String name() {
return name;
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/PropertiesUtil.java b/solr/solrj/src/java/org/apache/solr/common/util/PropertiesUtil.java
index 7650a5c..57861c1 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/PropertiesUtil.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/PropertiesUtil.java
@@ -16,23 +16,28 @@
*/
package org.apache.solr.common.util;
-import org.apache.solr.common.SolrException;
-
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
+import java.util.function.Function;
+
+import org.apache.solr.common.SolrException;
/**
* Breaking out some utility methods into a separate class as part of SOLR-4196. These utils have nothing to do with
* the DOM (they came from DomUtils) and it's really confusing to see them in something labeled DOM
*/
public class PropertiesUtil {
+ public static String substituteProperty(String value, Properties coreProperties) {
+ if(coreProperties == null) return substitute(value, null);
+ return substitute(value, coreProperties::getProperty);
+ }
/*
* This method borrowed from Ant's PropertyHelper.replaceProperties:
* http://svn.apache.org/repos/asf/ant/core/trunk/src/main/org/apache/tools/ant/PropertyHelper.java
*/
- public static String substituteProperty(String value, Properties coreProperties) {
+ public static String substitute(String value, Function<String,String> coreProperties) {
if (value == null || value.indexOf('$') == -1) {
return value;
}
@@ -56,7 +61,7 @@ public class PropertiesUtil {
propertyName = propertyName.substring(0, colon_index);
}
if (coreProperties != null) {
- fragment = coreProperties.getProperty(propertyName);
+ fragment = coreProperties.apply(propertyName);
}
if (fragment == null) {
fragment = System.getProperty(propertyName, defaultValue);
[lucene-solr] 11/18: merging with master
Posted by is...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ishan pushed a commit to branch jira/solr14827
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit 5746feef7c6cf029d72e6c88cf25c93c41ef54c6
Author: noble <no...@apache.org>
AuthorDate: Mon Oct 12 11:35:03 2020 +1100
merging with master
---
.../java/org/apache/solr/schema/IndexSchema.java | 26 +---------------------
.../java/org/apache/solr/common/util/DOMUtil.java | 2 +-
2 files changed, 2 insertions(+), 26 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
index 97d786b..839cff4 100644
--- a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
@@ -16,7 +16,6 @@
*/
package org.apache.solr.schema;
-import javax.xml.xpath.XPathExpressionException;
import java.io.IOException;
import java.io.Writer;
import java.lang.invoke.MethodHandles;
@@ -120,13 +119,9 @@ public class IndexSchema {
public static final String UNIQUE_KEY = "uniqueKey";
public static final String VERSION = "version";
- private static final String AT = "@";
private static final String DESTINATION_DYNAMIC_BASE = "destDynamicBase";
- private static final String SOLR_CORE_NAME = "solr.core.name";
private static final String SOURCE_DYNAMIC_BASE = "sourceDynamicBase";
private static final String SOURCE_EXPLICIT_FIELDS = "sourceExplicitFields";
- private static final String TEXT_FUNCTION = "text()";
- private static final String XPATH_OR = " | ";
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
protected String resourceName;
@@ -758,7 +753,7 @@ public class IndexSchema {
/**
* Loads the copy fields
*/
- protected synchronized void loadCopyFields(ConfigNode n) throws XPathExpressionException {
+ protected synchronized void loadCopyFields(ConfigNode n) {
// String expression = "//" + COPY_FIELD;
// NodeList nodes = (NodeList)xpath.evaluate(expression, document, XPathConstants.NODESET);
@@ -803,17 +798,6 @@ public class IndexSchema {
}
}
- /**
- * Converts a sequence of path steps into a rooted path, by inserting slashes in front of each step.
- * @param steps The steps to join with slashes to form a path
- * @return a rooted path: a leading slash followed by the given steps joined with slashes
- */
- private String stepsToPath(String... steps) {
- StringBuilder builder = new StringBuilder();
- for (String step : steps) { builder.append(SLASH).append(step); }
- return builder.toString();
- }
-
/** Returns true if the given name has exactly one asterisk either at the start or end of the name */
protected static boolean isValidFieldGlob(String name) {
if (name.startsWith("*") || name.endsWith("*")) {
@@ -1978,14 +1962,6 @@ public class IndexSchema {
throw new SolrException(ErrorCode.SERVER_ERROR, msg);
}
- protected String getFieldTypeXPathExpressions() {
- // /schema/fieldtype | /schema/fieldType | /schema/types/fieldtype | /schema/types/fieldType
- String expression = stepsToPath(SCHEMA, FIELD_TYPE.toLowerCase(Locale.ROOT)) // backcompat(?)
- + XPATH_OR + stepsToPath(SCHEMA, FIELD_TYPE)
- + XPATH_OR + stepsToPath(SCHEMA, TYPES, FIELD_TYPE.toLowerCase(Locale.ROOT))
- + XPATH_OR + stepsToPath(SCHEMA, TYPES, FIELD_TYPE);
- return expression;
- }
/**
* Helper method that returns <code>true</code> if the {@link #ROOT_FIELD_NAME} uses the exact
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/DOMUtil.java b/solr/solrj/src/java/org/apache/solr/common/util/DOMUtil.java
index 206d84b..2b3219d 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/DOMUtil.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/DOMUtil.java
@@ -40,7 +40,7 @@ public class DOMUtil {
public static final String XML_RESERVED_PREFIX = "xml";
- static final Set<String> NL_TAGS = ImmutableSet.of("str", "int","long","float","double","bool");
+ public static final Set<String> NL_TAGS = ImmutableSet.of("str", "int","long","float","double","bool");
public static Map<String,String> toMap(NamedNodeMap attrs) {
[lucene-solr] 17/18: unused imp[ort
Posted by is...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ishan pushed a commit to branch jira/solr14827
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit 491f172ed3b858a2f7b1a3a8f9953be172d55f6d
Author: Noble Paul <no...@users.noreply.github.com>
AuthorDate: Mon Oct 12 16:21:56 2020 +1100
unused imp[ort
---
.../core/src/java/org/apache/solr/util/plugin/NamedListPluginLoader.java | 1 -
1 file changed, 1 deletion(-)
diff --git a/solr/core/src/java/org/apache/solr/util/plugin/NamedListPluginLoader.java b/solr/core/src/java/org/apache/solr/util/plugin/NamedListPluginLoader.java
index a2dd291..cc90983 100644
--- a/solr/core/src/java/org/apache/solr/util/plugin/NamedListPluginLoader.java
+++ b/solr/core/src/java/org/apache/solr/util/plugin/NamedListPluginLoader.java
@@ -21,7 +21,6 @@ import java.util.Map;
import org.apache.solr.common.util.DOMUtil;
import org.apache.solr.common.ConfigNode;
import org.apache.solr.common.util.DOMUtil;
-import org.w3c.dom.Node;
/**
*
[lucene-solr] 16/18: merging with master
Posted by is...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ishan pushed a commit to branch jira/solr14827
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit 6ad7716e8f4ee77ec48f689e9cccdec7e0983056
Author: Noble Paul <no...@gmail.com>
AuthorDate: Mon Oct 12 12:31:01 2020 +1100
merging with master
---
solr/core/src/java/org/apache/solr/schema/IndexSchema.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
index ef10e6f..7214d19 100644
--- a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
@@ -59,7 +59,6 @@ import org.apache.solr.common.params.MapSolrParams;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.Cache;
-import org.apache.solr.common.util.DOMUtil;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.Pair;
import org.apache.solr.common.util.SimpleOrderedMap;
@@ -74,6 +73,7 @@ import org.apache.solr.search.similarities.SchemaSimilarityFactory;
import org.apache.solr.uninverting.UninvertingReader;
import org.apache.solr.util.ConcurrentLRUCache;
import org.apache.solr.util.DOMConfigNode;
+import org.apache.solr.common.util.DOMUtil;
import org.apache.solr.util.DataConfigNode;
import org.apache.solr.util.PayloadUtils;
import org.apache.solr.util.plugin.SolrCoreAware;
[lucene-solr] 12/18: javadocs fix
Posted by is...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ishan pushed a commit to branch jira/solr14827
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit e49e3a54fe33527aed93010d644360c9ecd66717
Author: noble <no...@apache.org>
AuthorDate: Mon Oct 12 11:38:08 2020 +1100
javadocs fix
---
solr/solrj/src/java/org/apache/solr/common/ConfigNode.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/solr/solrj/src/java/org/apache/solr/common/ConfigNode.java b/solr/solrj/src/java/org/apache/solr/common/ConfigNode.java
index 44ac4ff..1a67b52 100644
--- a/solr/solrj/src/java/org/apache/solr/common/ConfigNode.java
+++ b/solr/solrj/src/java/org/apache/solr/common/ConfigNode.java
@@ -94,7 +94,7 @@ public interface ConfigNode {
return children(null, Collections.singleton(name));
}
- /** abortable iterate through child
+ /** abortable iterate through children
*
* @param fun consume the node and return true to continue or false to abort
*/
[lucene-solr] 02/18: preload conf
Posted by is...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ishan pushed a commit to branch jira/solr14827
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit 976608dcdac97f71271df7ea9a58830c6d71eede
Author: noblepaul <no...@gmail.com>
AuthorDate: Fri Sep 4 16:47:00 2020 +1000
preload conf
---
.../java/org/apache/solr/core/XmlConfigFile.java | 8 --
.../apache/solr/schema/FieldTypePluginLoader.java | 10 +-
.../java/org/apache/solr/schema/IndexSchema.java | 15 ++-
.../java/org/apache/solr/util/DOMConfigNode.java | 2 +
.../java/org/apache/solr/util/DataConfigNode.java | 106 +++++++++++++++++++++
.../solr/util/plugin/AbstractPluginLoader.java | 2 -
.../java/org/apache/solr/common/ConfigNode.java | 36 +++++--
7 files changed, 149 insertions(+), 30 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/core/XmlConfigFile.java b/solr/core/src/java/org/apache/solr/core/XmlConfigFile.java
index ed28075..9df33b7 100644
--- a/solr/core/src/java/org/apache/solr/core/XmlConfigFile.java
+++ b/solr/core/src/java/org/apache/solr/core/XmlConfigFile.java
@@ -44,11 +44,9 @@ import java.util.TreeSet;
import org.apache.commons.io.IOUtils;
import org.apache.solr.cloud.ZkSolrResourceLoader;
-import org.apache.solr.common.ConfigNode;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.util.DOMUtil;
import org.apache.solr.common.util.XMLErrorLogger;
-import org.apache.solr.util.DOMConfigNode;
import org.apache.solr.util.DOMUtil;
import org.apache.solr.util.SystemIdResolver;
import org.slf4j.Logger;
@@ -75,8 +73,6 @@ public class XmlConfigFile { // formerly simply "Config"
private final String prefix;
private final String name;
private final SolrResourceLoader loader;
-
- private final ConfigNode rootNode;
private final Properties substituteProperties;
private int zkVersion = -1;
@@ -157,15 +153,11 @@ public class XmlConfigFile { // formerly simply "Config"
if (substituteProps != null) {
DOMUtil.substituteProperties(doc, getSubstituteProperties());
}
- rootNode = new DOMConfigNode(doc.getDocumentElement());
} catch (ParserConfigurationException | SAXException | TransformerException e) {
SolrException.log(log, "Exception during parsing file: " + name, e);
throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, e);
}
}
- public ConfigNode rootNode() {
- return rootNode;
- }
/*
* Assert that assertCondition is true.
diff --git a/solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java b/solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java
index 2d86113..b52809e 100644
--- a/solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java
+++ b/solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java
@@ -80,23 +80,23 @@ public final class FieldTypePluginLoader
ft.setTypeName(name);
String expression = "./analyzer[@type='query']";
- ConfigNode anode = node.child(it -> "analyzer".equals(it.name()) && "query".equals(it.attributes().get("type")));
+ ConfigNode anode = node.child(it -> "query".equals(it.attributes().get("type")) , "analyzer");
Analyzer queryAnalyzer = readAnalyzer(anode);
// expression = "./analyzer[@type='multiterm']";
- anode = node.child(it -> "analyzer".equals(it.name()) && "multiterm".equals(it.attributes().get("type"))) ;
+ anode = node.child(it -> "multiterm".equals(it.attributes().get("type") ), "analyzer");
Analyzer multiAnalyzer = readAnalyzer(anode);
// An analyzer without a type specified, or with type="index"
expression = "./analyzer[not(@type)] | ./analyzer[@type='index']";
- anode = node.child(it -> "analyzer".equals(it.name()) &&
- (it.attributes().get("type") == null || "index".equals(it.attributes().get("type"))));
+ anode = node.child(it ->
+ (it.attributes().get("type") == null || "index".equals(it.attributes().get("type"))), "analyzer");
// anode = (Node)xpath.evaluate(expression, node, XPathConstants.NODE);
Analyzer analyzer = readAnalyzer(anode);
// a custom similarity[Factory]
expression = "./similarity";
- anode = node.child(it -> "similarity".equals(it.name()) && "multiterm".equals(it.attributes().get("type"))) ;
+ anode = node.child(it -> "multiterm".equals(it.attributes().get("type")), "similarity") ;
SimilarityFactory simFactory = IndexSchema.readSimilarity(loader, anode);
if (null != simFactory) {
diff --git a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
index c451176..4a0e4b0 100644
--- a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
@@ -74,6 +74,9 @@ import org.apache.solr.response.SolrQueryResponse;
import org.apache.solr.search.similarities.SchemaSimilarityFactory;
import org.apache.solr.uninverting.UninvertingReader;
import org.apache.solr.util.ConcurrentLRUCache;
+import org.apache.solr.util.DOMConfigNode;
+import org.apache.solr.util.DOMUtil;
+import org.apache.solr.util.DataConfigNode;
import org.apache.solr.util.PayloadUtils;
import org.apache.solr.util.plugin.SolrCoreAware;
import org.slf4j.Logger;
@@ -144,7 +147,8 @@ public class IndexSchema {
public DynamicField[] getDynamicFields() { return dynamicFields; }
- private final Set<String> FIELDTYPE_KEYS = ImmutableSet.of("fieldtype", "fieldType");
+ private static final Set<String> FIELDTYPE_KEYS = ImmutableSet.of("fieldtype", "fieldType");
+ private static final Set<String> FIELD_KEYS = ImmutableSet.of("dynamicField", "field");
@SuppressWarnings({"unchecked", "rawtypes"})
protected Cache<String, SchemaField> dynamicFieldCache = new ConcurrentLRUCache(10000, 8000, 9000,100, false,false, null);
@@ -166,6 +170,8 @@ public class IndexSchema {
* directives that target them.
*/
protected Map<SchemaField, Integer> copyFieldTargetCounts = new HashMap<>();
+// static AtomicLong totalSchemaLoadTime = new AtomicLong();
+
/**
* Constructs a schema using the specified resource name and stream.
@@ -483,7 +489,7 @@ public class IndexSchema {
// final XPath xpath = schemaConf.getXPath();
// String expression = stepsToPath(SCHEMA, AT + NAME);
// Node nd = (Node) xpath.evaluate(expression, document, XPathConstants.NODE);
- ConfigNode rootNode = schemaConf.rootNode();
+ ConfigNode rootNode = new DataConfigNode(new DOMConfigNode(schemaConf.getDocument().getDocumentElement()) , Collections.singleton("similarity")) ;
name = rootNode.attributes().get("name");
StringBuilder sb = new StringBuilder();
// Another case where the initialization from the test harness is different than the "real world"
@@ -508,7 +514,7 @@ public class IndexSchema {
// NodeList nodes = (NodeList) xpath.evaluate(expression, document, XPathConstants.NODESET);
typeLoader.load(solrClassLoader,
- rootNode.children(it -> FIELDTYPE_KEYS.contains( it.name())));
+ rootNode.children(null, FIELDTYPE_KEYS));
// load the fields
Map<String,Boolean> explicitRequiredProp = loadFields(rootNode);
@@ -657,8 +663,7 @@ public class IndexSchema {
+ XPATH_OR + stepsToPath(SCHEMA, DYNAMIC_FIELD)
+ XPATH_OR + stepsToPath(SCHEMA, FIELDS, FIELD)
+ XPATH_OR + stepsToPath(SCHEMA, FIELDS, DYNAMIC_FIELD);*/
- List<ConfigNode> nodes = n.children(it -> "field".equals(it.name()) ||
- "dynamicField".equals(it.name()));
+ List<ConfigNode> nodes = n.children(null, FIELD_KEYS);
// NodeList nodes = (NodeList)xpath.evaluate(expression, document, XPathConstants.NODESET);
diff --git a/solr/core/src/java/org/apache/solr/util/DOMConfigNode.java b/solr/core/src/java/org/apache/solr/util/DOMConfigNode.java
index 1cccbce..85ca9f7 100644
--- a/solr/core/src/java/org/apache/solr/util/DOMConfigNode.java
+++ b/solr/core/src/java/org/apache/solr/util/DOMConfigNode.java
@@ -35,6 +35,7 @@ public class DOMConfigNode implements ConfigNode {
private final Node node;
SimpleMap<String> attrs;
+
@Override
public String name() {
return node.getNodeName();
@@ -83,4 +84,5 @@ public class DOMConfigNode implements ConfigNode {
if (Boolean.FALSE == toContinue) break;
}
}
+
}
diff --git a/solr/core/src/java/org/apache/solr/util/DataConfigNode.java b/solr/core/src/java/org/apache/solr/util/DataConfigNode.java
new file mode 100644
index 0000000..2567667
--- /dev/null
+++ b/solr/core/src/java/org/apache/solr/util/DataConfigNode.java
@@ -0,0 +1,106 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.solr.util;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.function.Function;
+import java.util.function.Predicate;
+
+import org.apache.solr.cluster.api.SimpleMap;
+import org.apache.solr.common.ConfigNode;
+
+public class DataConfigNode implements ConfigNode {
+ final String name;
+ final SimpleMap<String> attributes;
+ private final Map<String, List<ConfigNode>> kids = new HashMap<>();
+ private String textData;
+
+ public DataConfigNode(ConfigNode root, Set<String> ignore) {
+ name = root.name();
+ attributes = root.attributes();
+ textData = root.textValue();
+ if (textData != null) textData = textData.trim();
+ root.forEachChild(it -> {
+ List<ConfigNode> nodes = kids.computeIfAbsent(it.name(),
+ k -> new ArrayList<>());
+ if (ignore != null && ignore.contains(it.name())) {
+ nodes.add(it);
+ } else {
+ nodes.add(new DataConfigNode(it, ignore));
+ }
+ return Boolean.TRUE;
+ });
+
+ }
+
+ @Override
+ public String name() {
+ return name;
+ }
+
+ @Override
+ public String textValue() {
+ return textData;
+ }
+
+ @Override
+ public SimpleMap<String> attributes() {
+ return attributes;
+ }
+
+ @Override
+ public ConfigNode child(String name) {
+ List<ConfigNode> val = kids.get(name);
+ return val == null || val.isEmpty() ? null : val.get(0);
+ }
+
+ @Override
+ public List<ConfigNode> children(String name) {
+ return kids.getOrDefault(name, Collections.emptyList());
+ }
+
+ @Override
+ public List<ConfigNode> children(Predicate<ConfigNode> test, Set<String> set) {
+ List<ConfigNode> result = new ArrayList<>();
+ for (String s : set) {
+ List<ConfigNode> vals = kids.get(s);
+ if (vals != null) {
+ vals.forEach(it -> {
+ if (test == null || test.test(it)) {
+ result.add(it);
+ }
+ });
+ }
+ }
+ return result;
+ }
+
+ @Override
+ public void forEachChild(Function<ConfigNode, Boolean> fun) {
+ kids.forEach((s, configNodes) -> {
+ if (configNodes != null) {
+ configNodes.forEach(fun::apply);
+ }
+ });
+ }
+}
diff --git a/solr/core/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java b/solr/core/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java
index 48f07d0..7212e25 100644
--- a/solr/core/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java
+++ b/solr/core/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java
@@ -29,8 +29,6 @@ import org.apache.solr.common.cloud.SolrClassLoader;
import org.apache.solr.common.util.DOMUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
import static org.apache.solr.common.params.CommonParams.NAME;
diff --git a/solr/solrj/src/java/org/apache/solr/common/ConfigNode.java b/solr/solrj/src/java/org/apache/solr/common/ConfigNode.java
index 90b0b81..f046440 100644
--- a/solr/solrj/src/java/org/apache/solr/common/ConfigNode.java
+++ b/solr/solrj/src/java/org/apache/solr/common/ConfigNode.java
@@ -17,7 +17,9 @@
package org.apache.solr.common;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
+import java.util.Set;
import java.util.function.Function;
import java.util.function.Predicate;
@@ -28,26 +30,33 @@ import org.apache.solr.cluster.api.SimpleMap;
*/
public interface ConfigNode {
- /**Name of the tag
+ /**
+ * Name of the tag
*/
String name();
- /**Text value of the node
+ /**
+ * Text value of the node
*/
String textValue();
- /**Attributes
+ /**
+ * Attributes
*/
SimpleMap<String> attributes();
- /** Child by name
+ /**
+ * Child by name
*/
- ConfigNode child(String name);
+ default ConfigNode child(String name) {
+ return child(null, name);
+ }
- default ConfigNode child(Predicate<ConfigNode> test) {
+ default ConfigNode child(Predicate<ConfigNode> test, String name) {
ConfigNode[] result = new ConfigNode[1];
forEachChild(it -> {
- if (test.test(it)) {
+ if (name!=null && !name.equals(it.name())) return Boolean.TRUE;
+ if (test == null || test.test(it)) {
result[0] = it;
return Boolean.FALSE;
}
@@ -56,16 +65,23 @@ public interface ConfigNode {
return result[0];
}
- default List<ConfigNode> children(Predicate<ConfigNode> test) {
+ default List<ConfigNode> children(Predicate<ConfigNode> test, String... nodeNames) {
+ return children(test, nodeNames == null ? Collections.emptySet() : Set.of(nodeNames));
+ }
+
+ default List<ConfigNode> children(Predicate<ConfigNode> test, Set<String> set) {
List<ConfigNode> result = new ArrayList<>();
forEachChild(it -> {
- if (test.test(it)) result.add(it);
+ if (set != null && !set.isEmpty() && !set.contains(it.name())) return Boolean.TRUE;
+ if (test == null || test.test(it)) result.add(it);
return Boolean.TRUE;
});
return result;
}
- List<ConfigNode> children(String name);
+ default List<ConfigNode> children(String name) {
+ return children(null, Collections.singleton(name));
+ }
void forEachChild(Function<ConfigNode, Boolean> fun);
[lucene-solr] 18/18: Fixing imports
Posted by is...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ishan pushed a commit to branch jira/solr14827
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit 54c6f222868f611e1b3af8b88531c1bb14089496
Author: Ishan Chattopadhyaya <is...@apache.org>
AuthorDate: Sat Dec 5 10:04:41 2020 +0530
Fixing imports
---
solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java | 1 +
1 file changed, 1 insertion(+)
diff --git a/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java b/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java
index ebe3b66..d68d16b 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java
@@ -46,6 +46,7 @@ import org.apache.solr.common.SolrException;
import org.apache.solr.common.util.DOMUtil;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.PropertiesUtil;
+import org.apache.solr.common.util.Utils;
import org.apache.solr.logging.LogWatcherConfig;
import org.apache.solr.metrics.reporters.SolrJmxReporter;
import org.apache.solr.update.UpdateShardHandlerConfig;
[lucene-solr] 09/18: test failure
Posted by is...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ishan pushed a commit to branch jira/solr14827
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit 6319582fdd9dd737a10599145f1f80341c3ee9c2
Author: noblepaul <no...@gmail.com>
AuthorDate: Thu Oct 8 22:51:46 2020 +1100
test failure
---
.../solr/collection1/conf/bad-schema-daterangefield-instance-options.xml | 1 -
1 file changed, 1 deletion(-)
diff --git a/solr/core/src/test-files/solr/collection1/conf/bad-schema-daterangefield-instance-options.xml b/solr/core/src/test-files/solr/collection1/conf/bad-schema-daterangefield-instance-options.xml
index 4ee6e39..3b040c2 100644
--- a/solr/core/src/test-files/solr/collection1/conf/bad-schema-daterangefield-instance-options.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/bad-schema-daterangefield-instance-options.xml
@@ -30,6 +30,5 @@
<dynamicField name="*_s" type="string" multiValued="false"/>
<dynamicField name="*_l" type="plong" multiValued="false"/>
- <dynamicField name="*_c" type="currency" indexed="true" stored="true"/>
</schema>
[lucene-solr] 14/18: merge with master
Posted by is...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ishan pushed a commit to branch jira/solr14827
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit 12d492ac83a9205cd236ad99801b90286438cff9
Author: Noble Paul <no...@gmail.com>
AuthorDate: Mon Oct 12 12:12:49 2020 +1100
merge with master
---
.../src/java/org/apache/solr/prometheus/exporter/MetricsQuery.java | 2 +-
.../org/apache/solr/prometheus/exporter/PrometheusExporterSettings.java | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/solr/contrib/prometheus-exporter/src/java/org/apache/solr/prometheus/exporter/MetricsQuery.java b/solr/contrib/prometheus-exporter/src/java/org/apache/solr/prometheus/exporter/MetricsQuery.java
index 9a8783f..eefc14b 100644
--- a/solr/contrib/prometheus-exporter/src/java/org/apache/solr/prometheus/exporter/MetricsQuery.java
+++ b/solr/contrib/prometheus-exporter/src/java/org/apache/solr/prometheus/exporter/MetricsQuery.java
@@ -27,8 +27,8 @@ import net.thisptr.jackson.jq.JsonQuery;
import net.thisptr.jackson.jq.exception.JsonQueryException;
import org.apache.solr.client.solrj.request.QueryRequest;
import org.apache.solr.common.params.ModifiableSolrParams;
-import org.apache.solr.common.util.DOMUtil;
import org.apache.solr.common.util.NamedList;
+import org.apache.solr.common.util.DOMUtil;
import org.w3c.dom.Node;
public class MetricsQuery {
diff --git a/solr/contrib/prometheus-exporter/src/java/org/apache/solr/prometheus/exporter/PrometheusExporterSettings.java b/solr/contrib/prometheus-exporter/src/java/org/apache/solr/prometheus/exporter/PrometheusExporterSettings.java
index 9ce035d..68eda8d 100644
--- a/solr/contrib/prometheus-exporter/src/java/org/apache/solr/prometheus/exporter/PrometheusExporterSettings.java
+++ b/solr/contrib/prometheus-exporter/src/java/org/apache/solr/prometheus/exporter/PrometheusExporterSettings.java
@@ -19,8 +19,8 @@ package org.apache.solr.prometheus.exporter;
import java.util.List;
-import org.apache.solr.common.util.DOMUtil;
import org.apache.solr.common.util.NamedList;
+import org.apache.solr.common.util.DOMUtil;
import org.w3c.dom.Node;
public class PrometheusExporterSettings {