Move Goobi.IndexServer into the Goobi.Presentation project
This commit is contained in:
parent
3e0f0e7385
commit
7115104c14
|
@ -0,0 +1,202 @@
|
|||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed 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.
|
|
@ -0,0 +1,40 @@
|
|||
Apache Solr for Goobi.Presentation
|
||||
==================================
|
||||
|
||||
This is just a pre-configured version of Apache Solr. Some files have to be
|
||||
patched in order to add some configuration and security constraints for up
|
||||
to 15 different Lucene cores to be used by Goobi.Presentation. If you need
|
||||
more cores, you have to add more security constraints by yourself.
|
||||
Additionally there are ready-to-use configuration files for the Apache Solr
|
||||
application in the conf/ directoy.
|
||||
|
||||
|
||||
Installation instructions
|
||||
-------------------------
|
||||
|
||||
1. Make sure you have Apache Tomcat 6 up and running. Download Solr 3.6.1
|
||||
from http://lucene.apache.org/solr/. Using later versions may be
|
||||
possible, but is not tested.
|
||||
|
||||
2. Apply the patches in patches/* to the respective files and build Solr.
|
||||
|
||||
3. Copy solr.xml and conf/* to /home/solr and confirm overwriting the
|
||||
existing files. Then move the Solr WAR file to /home/solr and rename it
|
||||
to "apache-solr-for-goobi.war" or change the "docBase" value in
|
||||
conf/context.xml accordingly.
|
||||
|
||||
4. Add the roles "dlfSolrUpdate" and "dlfSolrAdmin" and at least one user
|
||||
with both roles to Tomcat's tomcat-users.xml file.
|
||||
|
||||
5. Load the application by using conf/context.xml as Tomcat's context file.
|
||||
|
||||
6. Restart Tomcat and go for it!
|
||||
|
||||
|
||||
Update instructions
|
||||
-------------------
|
||||
|
||||
When updating an existing Solr instance for Goobi.Presentation follow the
|
||||
above steps but DO NOT overwrite solr.xml! Goobi.Presentation dynamically
|
||||
adds new cores to this file, so overwriting it would result in a loss of
|
||||
these indexes.
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Set the path to the Solr war file as "docBase". -->
|
||||
<Context docBase="/home/solr/apache-solr-for-goobi.war" debug="0" crossContext="true">
|
||||
<!-- Specify the Solr home directory as "value". -->
|
||||
<Environment name="solr/home" type="java.lang.String" value="/home/solr" override="true"/>
|
||||
</Context>
|
|
@ -0,0 +1,15 @@
|
|||
# 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.
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Use a protected word file to protect against the stemmer reducing two
|
||||
# unrelated words to the same base word.
|
|
@ -0,0 +1,163 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<schema name="goobi" version="1.5">
|
||||
<types>
|
||||
<fieldType name="string" class="solr.StrField" sortMissingLast="true" />
|
||||
<fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" />
|
||||
<fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0" />
|
||||
<!-- Use dates of the form 1995-12-31Z23:59:49Z for this field. -->
|
||||
<fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0" />
|
||||
<fieldType name="standard" class="solr.TextField" positionIncrementGap="100">
|
||||
<analyzer>
|
||||
<tokenizer class="solr.StandardTokenizerFactory" />
|
||||
<filter class="solr.StandardFilterFactory" />
|
||||
<filter class="solr.LowerCaseFilterFactory" />
|
||||
</analyzer>
|
||||
</fieldType>
|
||||
<fieldType name="autocomplete" class="solr.TextField" positionIncrementGap="100">
|
||||
<analyzer type="index">
|
||||
<tokenizer class="solr.KeywordTokenizerFactory" />
|
||||
<filter class="solr.LowerCaseFilterFactory" />
|
||||
</analyzer>
|
||||
<analyzer type="query">
|
||||
<tokenizer class="solr.WhitespaceTokenizerFactory" />
|
||||
<filter class="solr.LowerCaseFilterFactory" />
|
||||
</analyzer>
|
||||
</fieldType>
|
||||
<fieldType name="fulltext" class="solr.TextField" positionIncrementGap="100">
|
||||
<analyzer type="index">
|
||||
<tokenizer class="solr.WhitespaceTokenizerFactory" />
|
||||
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
|
||||
<!-- For more precise, but less flexible matching, set generateWordParts="0" and generateNumberParts="0". -->
|
||||
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" />
|
||||
<filter class="solr.ReversedWildcardFilterFactory" withOriginal="true" maxPosAsterisk="3" maxPosQuestion="2" maxFractionAsterisk="0.33" />
|
||||
<filter class="solr.LowerCaseFilterFactory" />
|
||||
<filter class="solr.TrimFilterFactory" />
|
||||
<filter class="solr.SnowballPorterFilterFactory" language="German" protected="protwords.txt" />
|
||||
<!-- <filter class="solr.GermanStemFilterFactory" /> -->
|
||||
<filter class="solr.RemoveDuplicatesTokenFilterFactory" />
|
||||
<!-- <filter class="solr.PatternReplaceFilterFactory" pattern="([^a-z])" replacement="" replace="all" /> -->
|
||||
</analyzer>
|
||||
<analyzer type="query">
|
||||
<tokenizer class="solr.WhitespaceTokenizerFactory" />
|
||||
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" />
|
||||
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
|
||||
<!-- For more precise, but less flexible matching, set generateWordParts="0" and generateNumberParts="0". -->
|
||||
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1" />
|
||||
<filter class="solr.LowerCaseFilterFactory" />
|
||||
<filter class="solr.TrimFilterFactory" />
|
||||
<filter class="solr.SnowballPorterFilterFactory" language="German" protected="protwords.txt" />
|
||||
<!-- <filter class="solr.GermanStemFilterFactory" /> -->
|
||||
<filter class="solr.RemoveDuplicatesTokenFilterFactory" />
|
||||
<!-- <filter class="solr.PatternReplaceFilterFactory" pattern="([^a-z])" replacement="" replace="all" /> -->
|
||||
</analyzer>
|
||||
</fieldType>
|
||||
</types>
|
||||
|
||||
<fields>
|
||||
<!--
|
||||
Valid attributes for fields:
|
||||
name: mandatory - the name for the field
|
||||
type: mandatory - the name of a previously defined type from the
|
||||
<types> section
|
||||
indexed: true if this field should be indexed (searchable or sortable)
|
||||
stored: true if this field should be retrievable
|
||||
multiValued: true if this field may contain multiple values per document
|
||||
omitNorms: (expert) set to true to omit the norms associated with
|
||||
this field (this disables length normalization and index-time
|
||||
boosting for the field, and saves some memory). Only full-text
|
||||
fields or fields that need an index-time boost need norms.
|
||||
omitNorms defaults to true for primitive field types since Solr 1.2.
|
||||
termVectors: [false] set to true to store the term vector for a given field.
|
||||
When using MoreLikeThis, fields used for similarity should be
|
||||
stored for best performance.
|
||||
termPositions: Store position information with the term vector.
|
||||
This will increase storage costs.
|
||||
termOffsets: Store offset information with the term vector. This
|
||||
will increase storage costs.
|
||||
default: a value that should be used if no value is specified
|
||||
when adding a document.
|
||||
required: true if this field is mandatory
|
||||
-->
|
||||
|
||||
<!-- The mandatory and special fields are defined here, all other fields are dynamic fields. -->
|
||||
<!-- Unique identifier for the document in the index. -->
|
||||
<field name="id" type="string" indexed="true" stored="true" required="true" />
|
||||
<!-- Unique identifier for the document (or its top-level parent) in the TYPO3 database. -->
|
||||
<field name="uid" type="int" indexed="true" stored="true" required="true" default="0" />
|
||||
<!-- PageID for the document (or its top-level parent) in the TYPO3 database. -->
|
||||
<field name="pid" type="int" indexed="true" stored="false" required="true" default="0" />
|
||||
<!-- Image number where this document starts. -->
|
||||
<field name="page" type="int" indexed="false" stored="true" required="true" default="0" />
|
||||
<!-- Unique identifier for the parent document in the TYPO3 database. Only if this is a multi-volume work! -->
|
||||
<field name="partof" type="int" indexed="true" stored="true" required="true" default="0" />
|
||||
<!-- XML ID of this document in the METS file. This is only unique within the METS file! -->
|
||||
<field name="sid" type="string" indexed="false" stored="true" required="true" default="" />
|
||||
<!-- If it is a top-level document, leave this as default "true". -->
|
||||
<field name="toplevel" type="boolean" indexed="true" stored="true" required="true" default="true" />
|
||||
<!-- Type of document (eg. monograph, chapter, etc.) -->
|
||||
<field name="type" type="string" indexed="true" stored="true" required="true" default="" />
|
||||
<!-- Next two fields are mandatory for identifying documents. -->
|
||||
<field name="title" type="standard" indexed="true" stored="true" default="" multiValued="false" />
|
||||
<field name="volume" type="standard" indexed="true" stored="true" multiValued="false" />
|
||||
<!-- URL of thumbnail image for the document. -->
|
||||
<field name="thumbnail" type="string" indexed="false" stored="true" default="" multiValued="false" />
|
||||
<!-- CatchAll field. See <copyField> below. -->
|
||||
<field name="default" type="standard" indexed="true" stored="false" required="true" default="" multiValued="true" />
|
||||
<field name="timestamp" type="date" indexed="true" stored="true" required="true" default="NOW" multiValued="false" />
|
||||
<!-- Autocomplete field for search form. -->
|
||||
<field name="autocomplete" type="autocomplete" indexed="true" stored="false" multiValued="true" />
|
||||
<!-- Fulltext field for OCR results. -->
|
||||
<field name="fulltext" type="fulltext" indexed="true" stored="true" multiValued="false" />
|
||||
|
||||
<!--
|
||||
The following dynamic fields define all possible field variants.
|
||||
The mapping between metadata fields and index fields is defined in TYPO3.
|
||||
-->
|
||||
<!-- tokenized, stored, indexed -->
|
||||
<dynamicField name="*_tsi" type="standard" stored="true" indexed="true" multiValued="true" />
|
||||
<!-- tokenized, stored, unindexed -->
|
||||
<dynamicField name="*_tsu" type="standard" stored="true" indexed="false" multiValued="true" />
|
||||
<!-- tokenized, unstored, indexed -->
|
||||
<dynamicField name="*_tui" type="standard" stored="false" indexed="true" multiValued="true" />
|
||||
<!-- tokenized, unstored, unindexed (this is ignored by Lucene) -->
|
||||
<dynamicField name="*_tuu" type="standard" stored="false" indexed="false" multiValued="true" />
|
||||
<!-- untokenized, stored, indexed -->
|
||||
<dynamicField name="*_usi" type="string" stored="true" indexed="true" multiValued="true" />
|
||||
<!-- untokenized, stored, unindexed -->
|
||||
<dynamicField name="*_usu" type="string" stored="true" indexed="false" multiValued="true" />
|
||||
<!-- untokenized, unstored, indexed -->
|
||||
<dynamicField name="*_uui" type="string" stored="false" indexed="true" multiValued="true" />
|
||||
<!-- untokenized, unstored, unindexed (this is ignored by Lucene) -->
|
||||
<dynamicField name="*_uuu" type="string" stored="false" indexed="false" multiValued="true" />
|
||||
<!-- "*_faceting" and "*_sorting" should always be used in addition to one of the other fields. -->
|
||||
<dynamicField name="*_faceting" type="string" stored="false" indexed="true" multiValued="true" />
|
||||
<dynamicField name="*_sorting" type="standard" stored="true" indexed="true" multiValued="false" />
|
||||
</fields>
|
||||
|
||||
<uniqueKey>id</uniqueKey>
|
||||
|
||||
<defaultSearchField>default</defaultSearchField>
|
||||
|
||||
<solrQueryParser defaultOperator="AND" />
|
||||
|
||||
<copyField source="*_tsi" dest="default" />
|
||||
<copyField source="*_tui" dest="default" />
|
||||
<copyField source="*_usi" dest="default" />
|
||||
<copyField source="*_uui" dest="default" />
|
||||
</schema>
|
|
@ -0,0 +1,502 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<!--
|
||||
For more details about configurations options that may appear in this
|
||||
file, see http://wiki.apache.org/solr/SolrConfigXml.
|
||||
|
||||
Specifically, the Solr Config can support XInclude, which may make it easier to manage
|
||||
the configuration. See https://issues.apache.org/jira/browse/SOLR-1167
|
||||
-->
|
||||
<config>
|
||||
<!--
|
||||
Set this to "false" if you want Solr to continue working even if there
|
||||
is an error in your configuration.
|
||||
You may want to set this to "false" in a production environment, but to
|
||||
"true" for testing purposes.
|
||||
-->
|
||||
<abortOnConfigurationError>${solr.abortOnConfigurationError:false}</abortOnConfigurationError>
|
||||
|
||||
<!--
|
||||
Controls what version of Lucene various components of Solr
|
||||
adhere to. Generally, you want to use the latest version to
|
||||
get all bug fixes and improvements. It is highly recommended
|
||||
that you fully re-index after changing this setting as it can
|
||||
affect both how text is indexed and queried.
|
||||
-->
|
||||
<luceneMatchVersion>LUCENE_35</luceneMatchVersion>
|
||||
|
||||
<!--
|
||||
Here you should mention all directories containing plugin files, which
|
||||
are used in solrconfig.xml or schema.xml. Everything contained in the
|
||||
optional "./lib" directory under the Solr home path is always included,
|
||||
so the following is just an example which does not make any sense.
|
||||
If you are using Solr only in conjunction with DLF you can leave this
|
||||
unchanged because you will not need any other than the standard plugins.
|
||||
-->
|
||||
<!-- <lib dir="./lib" /> -->
|
||||
|
||||
<!--
|
||||
Specify the directory where Lucene should save its index files. Please
|
||||
notice that using a NFS mount here is possible but not recommended!
|
||||
-->
|
||||
<dataDir>${solr.core.dataDir}</dataDir>
|
||||
|
||||
<indexDefaults>
|
||||
<!--
|
||||
Set this to "false" if you want Lucene to split the index in multiple
|
||||
files. Updating will be slightly faster, but searching a bit slower.
|
||||
-->
|
||||
<useCompoundFile>true</useCompoundFile>
|
||||
|
||||
<!--
|
||||
Specify the allowed number of index segments before segments are merged
|
||||
together. Higher values will result in faster indexing and less system
|
||||
load, but slower searches.
|
||||
-->
|
||||
<mergeFactor>15</mergeFactor>
|
||||
|
||||
<!--
|
||||
Specify how many documents or memory should be buffered before the data
|
||||
is written to a segment file. Whatever limit is reached first will result
|
||||
in a flush.
|
||||
-->
|
||||
<maxBufferedDocs>500</maxBufferedDocs>
|
||||
<ramBufferSizeMB>64</ramBufferSizeMB>
|
||||
|
||||
<!--
|
||||
Specify how many tokens may be in one field. The latter should not be too low
|
||||
because excess tokens will be discarded.
|
||||
-->
|
||||
<maxFieldLength>10000</maxFieldLength>
|
||||
|
||||
<!-- Specify the timeouts for writing to the index and commiting changes. -->
|
||||
<writeLockTimeout>1000</writeLockTimeout>
|
||||
<commitLockTimeout>10000</commitLockTimeout>
|
||||
|
||||
<!--
|
||||
Specify how Lucene should merge index segments. The given values are
|
||||
Lucene's standard since version 3.3, so just leave this unchanged as long
|
||||
as you do not need backwards compatibility for some reasons.
|
||||
-->
|
||||
<mergePolicy class="org.apache.lucene.index.TieredMergePolicy" />
|
||||
<mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler" />
|
||||
|
||||
<!--
|
||||
Specify which file locking mechanism Lucene should use. The options are:
|
||||
single = use no file locking at all (not recommended!)
|
||||
native = use the system's standard locking method
|
||||
simple = use a plain file for locking
|
||||
-->
|
||||
<lockType>native</lockType>
|
||||
</indexDefaults>
|
||||
|
||||
<!-- Here you can override some default settings from above for a specific index. -->
|
||||
<mainIndex>
|
||||
<!--
|
||||
If true, unlock any held write or commit locks on startup.
|
||||
This defeats the locking mechanism that allows multiple
|
||||
processes to safely access a lucene index, and should be
|
||||
used with care.
|
||||
This is not needed if lock type is 'none' or 'single'
|
||||
-->
|
||||
<unlockOnStartup>false</unlockOnStartup>
|
||||
|
||||
<!--
|
||||
If true, IndexReaders will be reopened (often more efficient) instead
|
||||
of closed and then opened.
|
||||
-->
|
||||
<reopenReaders>true</reopenReaders>
|
||||
|
||||
<!-- Here you can change the deletion policy. This should be left unchanged! -->
|
||||
<deletionPolicy class="solr.SolrDeletionPolicy">
|
||||
<str name="maxCommitsToKeep">1</str>
|
||||
<str name="maxOptimizedCommitsToKeep">0</str>
|
||||
<!-- <str name="maxCommitAge">30MINUTES</str> -->
|
||||
<!-- <str name="maxCommitAge">1DAY</str> -->
|
||||
</deletionPolicy>
|
||||
|
||||
<!--
|
||||
To aid in advanced debugging, you may turn on IndexWriter debug logging.
|
||||
Setting to true will set the file that the underlying Lucene IndexWriter
|
||||
will write its debug infostream to.
|
||||
-->
|
||||
<infoStream file="INFOSTREAM.txt">false</infoStream>
|
||||
</mainIndex>
|
||||
|
||||
<!--
|
||||
Enables JMX if and only if an existing MBeanServer is found, use this
|
||||
if you want to configure JMX through JVM parameters. Remove this to disable
|
||||
exposing Solr configuration and statistics to JMX.
|
||||
|
||||
If you want to connect to a particular server, specify the agentId
|
||||
e.g. <jmx agentId="myAgent" />
|
||||
|
||||
If you want to start a new MBeanServer, specify the serviceUrl
|
||||
e.g <jmx serviceUrl="service:jmx:rmi:///jndi/rmi://localhost:9999/solr"/>
|
||||
|
||||
For more details see http://wiki.apache.org/solr/SolrJmx
|
||||
-->
|
||||
<jmx />
|
||||
|
||||
<updateHandler class="solr.DirectUpdateHandler2">
|
||||
<!--
|
||||
Perform a <commit/> automatically under certain conditions:
|
||||
maxDocs - number of updates since last commit is greater than this
|
||||
maxTime - oldest uncommited update (in ms) is this long ago
|
||||
Instead of enabling autoCommit, consider using "commitWithin"
|
||||
when adding documents. http://wiki.apache.org/solr/UpdateXmlMessages
|
||||
-->
|
||||
<!-- <autoCommit>
|
||||
<maxDocs>10000</maxDocs>
|
||||
<maxTime>1000</maxTime>
|
||||
</autoCommit> -->
|
||||
|
||||
<!--
|
||||
The RunExecutableListener executes an external command from a
|
||||
hook such as postCommit or postOptimize.
|
||||
exe - the name of the executable to run
|
||||
dir - dir to use as the current working directory. default="."
|
||||
wait - the calling thread waits until the executable returns. default="true"
|
||||
args - the arguments to pass to the program. default=nothing
|
||||
env - environment variables to set. default=nothing
|
||||
-->
|
||||
<!-- A postCommit event is fired after every commit or optimize command. -->
|
||||
<!-- <listener event="postCommit" class="solr.RunExecutableListener">
|
||||
<str name="exe">solr/bin/snapshooter</str>
|
||||
<str name="dir">.</str>
|
||||
<bool name="wait">true</bool>
|
||||
<arr name="args"><str>arg1</str><str>arg2</str></arr>
|
||||
<arr name="env"><str>MYVAR=val1</str></arr>
|
||||
</listener> -->
|
||||
|
||||
<!-- A postOptimize event is fired only after every optimize command. -->
|
||||
<!-- <listener event="postOptimize" class="solr.RunExecutableListener">
|
||||
<str name="exe">solr/bin/snapshooter</str>
|
||||
<str name="dir">.</str>
|
||||
<bool name="wait">true</bool>
|
||||
</listener> -->
|
||||
</updateHandler>
|
||||
|
||||
<query>
|
||||
<!--
|
||||
Maximum number of clauses in a boolean query... in the past, this affected
|
||||
range or prefix queries that expanded to big boolean queries - built in Solr
|
||||
query parsers no longer create queries with this limitation.
|
||||
An exception is thrown if exceeded.
|
||||
-->
|
||||
<maxBooleanClauses>1024</maxBooleanClauses>
|
||||
|
||||
<!--
|
||||
Cache used by SolrIndexSearcher for filters (DocSets),
|
||||
unordered sets of *all* documents that match a query.
|
||||
When a new searcher is opened, its caches may be prepopulated
|
||||
or "autowarmed" using data from caches in the old searcher.
|
||||
autowarmCount is the number of items to prepopulate. For LRUCache,
|
||||
the autowarmed items will be the most recently accessed items.
|
||||
Parameters:
|
||||
class - the SolrCache implementation LRUCache or FastLRUCache
|
||||
size - the maximum number of entries in the cache
|
||||
initialSize - the initial capacity (number of entries) of the cache.
|
||||
autowarmCount - the number of entries to prepopulate from and old cache.
|
||||
-->
|
||||
<filterCache class="solr.FastLRUCache" size="512" initialSize="512" autowarmCount="0" />
|
||||
|
||||
<!--
|
||||
queryResultCache caches results of searches - ordered lists of
|
||||
document ids (DocList) based on a query, a sort, and the range
|
||||
of documents requested.
|
||||
-->
|
||||
<queryResultCache class="solr.LRUCache" size="512" initialSize="512" autowarmCount="0" />
|
||||
|
||||
<!--
|
||||
documentCache caches Lucene Document objects (the stored fields for each document).
|
||||
Since Lucene internal document ids are transient, this cache will not be autowarmed.
|
||||
-->
|
||||
<documentCache class="solr.LRUCache" size="512" initialSize="512" autowarmCount="0" />
|
||||
|
||||
<!--
|
||||
If true, stored fields that are not requested will be loaded lazily.
|
||||
This can result in a significant speed improvement if the usual case is to
|
||||
not load all stored fields, especially if the skipped fields are large compressed text fields.
|
||||
-->
|
||||
<enableLazyFieldLoading>true</enableLazyFieldLoading>
|
||||
|
||||
<!--
|
||||
An optimization that attempts to use a filter to satisfy a search.
|
||||
If the requested sort does not include score, then the filterCache
|
||||
will be checked for a filter matching the query. If found, the filter
|
||||
will be used as the source of document ids, and then the sort will be
|
||||
applied to that.
|
||||
-->
|
||||
<useFilterForSortedQuery>true</useFilterForSortedQuery>
|
||||
|
||||
<!--
|
||||
An optimization for use with the queryResultCache. When a search
|
||||
is requested, a superset of the requested number of document ids
|
||||
are collected. For example, if a search for a particular query
|
||||
requests matching documents 10 through 19, and queryWindowSize is 50,
|
||||
then documents 0 through 49 will be collected and cached. Any further
|
||||
requests in that range can be satisfied via the cache.
|
||||
-->
|
||||
<queryResultWindowSize>20</queryResultWindowSize>
|
||||
|
||||
<!--
|
||||
Maximum number of documents to cache for any entry in the queryResultCache.
|
||||
-->
|
||||
<queryResultMaxDocsCached>500</queryResultMaxDocsCached>
|
||||
|
||||
<!--
|
||||
QuerySenderListener takes an array of NamedList and executes a
|
||||
local query request for each NamedList in sequence.
|
||||
-->
|
||||
<listener event="newSearcher" class="solr.QuerySenderListener">
|
||||
<arr name="queries">
|
||||
</arr>
|
||||
</listener>
|
||||
|
||||
<listener event="firstSearcher" class="solr.QuerySenderListener">
|
||||
<arr name="queries">
|
||||
<lst><str name="q">static firstSearcher warming query from solrconfig.xml</str></lst>
|
||||
</arr>
|
||||
</listener>
|
||||
|
||||
<useColdSearcher>true</useColdSearcher>
|
||||
|
||||
<maxWarmingSearchers>10</maxWarmingSearchers>
|
||||
</query>
|
||||
|
||||
<!--
|
||||
Let the dispatch filter handler /select?qt=XXX
|
||||
handleSelect=true will use consistent error handling for /select and /update
|
||||
handleSelect=false will use solr1.1 style error formatting
|
||||
-->
|
||||
<requestDispatcher handleSelect="true" >
|
||||
<!-- Make sure your system has some authentication before enabling remote streaming! -->
|
||||
<requestParsers enableRemoteStreaming="false" multipartUploadLimitInKB="2048000" />
|
||||
|
||||
<httpCaching never304="true">
|
||||
<cacheControl>max-age=30, public</cacheControl>
|
||||
</httpCaching>
|
||||
</requestDispatcher>
|
||||
|
||||
<!--
|
||||
Request Handlers
|
||||
|
||||
Incoming queries will be dispatched to the correct handler
|
||||
based on the path or the qt (query type) param.
|
||||
Names starting with a '/' are accessed with the a path equal to
|
||||
the registered name. Names without a leading '/' are accessed
|
||||
with: http://host/app/[core/]select?qt=name
|
||||
If a /select request is processed with out a qt param
|
||||
specified, the requestHandler that declares default="true" will
|
||||
be used.
|
||||
If a Request Handler is declared with startup="lazy", then it will
|
||||
not be initialized until the first request that uses it.
|
||||
see http://wiki.apache.org/solr/SolrRequestHandler
|
||||
and http://wiki.apache.org/solr/SearchHandler
|
||||
-->
|
||||
<requestHandler name="search" class="solr.SearchHandler" default="true">
|
||||
<!-- default values for query parameters -->
|
||||
<lst name="defaults">
|
||||
<str name="echoParams">explicit</str>
|
||||
<int name="rows">10</int>
|
||||
</lst>
|
||||
</requestHandler>
|
||||
|
||||
<!--
|
||||
XML Update Request Handler.
|
||||
|
||||
The canonical Request Handler for Modifying the Index through
|
||||
commands specified using XML.
|
||||
Note: Since solr1.1 requestHandlers requires a valid content
|
||||
type header if posted in the body. For example, curl now
|
||||
requires: -H 'Content-type:text/xml; charset=utf-8'
|
||||
see http://wiki.apache.org/solr/UpdateXmlMessages
|
||||
-->
|
||||
<requestHandler name="/update" class="solr.XmlUpdateRequestHandler" />
|
||||
|
||||
<!-- Binary Update Request Handler -->
|
||||
<!-- <requestHandler name="/update/javabin" class="solr.BinaryUpdateRequestHandler" startup="lazy" /> -->
|
||||
|
||||
<!-- CSV Update Request Handler -->
|
||||
<!-- <requestHandler name="/update/csv" class="solr.CSVRequestHandler" startup="lazy" /> -->
|
||||
|
||||
<!-- JSON Update Request Handler -->
|
||||
<!-- <requestHandler name="/update/json" class="solr.JsonUpdateRequestHandler" startup="lazy" /> -->
|
||||
|
||||
<!-- XSLT Update Request Handler transforms incoming XML with stylesheet identified by tr= -->
|
||||
<!-- <requestHandler name="/update/xslt" class="solr.XsltUpdateRequestHandler" startup="lazy" /> -->
|
||||
|
||||
<!--
|
||||
Field Analysis Request Handler
|
||||
|
||||
RequestHandler that provides much the same functionality as
|
||||
analysis.jsp. Provides the ability to specify multiple field
|
||||
types and field names in the same request and outputs
|
||||
index-time and query-time analysis for each of them.
|
||||
Request parameters are:
|
||||
analysis.fieldname - field name whose analyzers are to be used
|
||||
analysis.fieldtype - field type whose analyzers are to be used
|
||||
analysis.fieldvalue - text for index-time analysis
|
||||
q (or analysis.q) - text for query time analysis
|
||||
analysis.showmatch (true|false) - When set to true and when
|
||||
query analysis is performed, the produced tokens of the
|
||||
field value analysis will be marked as "matched" for every
|
||||
token that is produces by the query analysis
|
||||
-->
|
||||
<requestHandler name="/analysis/field" class="solr.FieldAnalysisRequestHandler" startup="lazy" />
|
||||
|
||||
<!--
|
||||
Document Analysis Handler
|
||||
|
||||
An analysis handler that provides a breakdown of the analysis
|
||||
process of provided documents. This handler expects a (single)
|
||||
content stream with the following format:
|
||||
<docs>
|
||||
<doc>
|
||||
<field name="id">1</field>
|
||||
<field name="name">The Name</field>
|
||||
<field name="text">The Text Value</field>
|
||||
</doc>
|
||||
<doc>...</doc>
|
||||
<doc>...</doc>
|
||||
...
|
||||
</docs>
|
||||
Note: Each document must contain a field which serves as the
|
||||
unique key. This key is used in the returned response to associate
|
||||
an analysis breakdown to the analyzed document.
|
||||
Like the FieldAnalysisRequestHandler, this handler also supports
|
||||
query analysis by sending either an "analysis.query" or "q"
|
||||
request parameter that holds the query text to be analyzed. It
|
||||
also supports the "analysis.showmatch" parameter which when set to
|
||||
true, all field tokens that match the query tokens will be marked
|
||||
as a "match".
|
||||
see http://wiki.apache.org/solr/AnalysisRequestHandler
|
||||
-->
|
||||
<requestHandler name="/analysis/document" class="solr.DocumentAnalysisRequestHandler" startup="lazy" />
|
||||
|
||||
<!--
|
||||
Admin Handlers
|
||||
|
||||
Admin Handlers - This will register all the standard admin
|
||||
RequestHandlers.
|
||||
-->
|
||||
<requestHandler name="/admin/" class="solr.admin.AdminHandlers" />
|
||||
|
||||
<!-- Ping/Healthcheck Handler -->
|
||||
<requestHandler name="/admin/ping" class="solr.PingRequestHandler">
|
||||
<lst name="invariants">
|
||||
<str name="qt">search</str>
|
||||
<str name="q">solrpingquery</str>
|
||||
</lst>
|
||||
<lst name="defaults">
|
||||
<str name="echoParams">all</str>
|
||||
</lst>
|
||||
</requestHandler>
|
||||
|
||||
<!-- Echo the request contents back to the client -->
|
||||
<!-- <requestHandler name="/debug/dump" class="solr.DumpRequestHandler" >
|
||||
<lst name="defaults">
|
||||
<str name="echoParams">explicit</str>
|
||||
<str name="echoHandler">true</str>
|
||||
</lst>
|
||||
</requestHandler> -->
|
||||
|
||||
<!-- Autocomplete Handler -->
|
||||
<requestHandler name="/suggest" class="org.apache.solr.handler.component.SearchHandler">
|
||||
<lst name="defaults">
|
||||
<str name="spellcheck">true</str>
|
||||
<str name="spellcheck.dictionary">suggest</str>
|
||||
<str name="spellcheck.count">10</str>
|
||||
<str name="spellcheck.onlyMorePopular">true</str>
|
||||
</lst>
|
||||
<arr name="components">
|
||||
<str>suggest</str>
|
||||
</arr>
|
||||
</requestHandler>
|
||||
|
||||
<!--
|
||||
Search Components
|
||||
|
||||
Search components are registered to SolrCore and used by
|
||||
instances of SearchHandler (which can access them by name)
|
||||
By default, the following components are available:
|
||||
<searchComponent name="query" class="solr.QueryComponent" />
|
||||
<searchComponent name="facet" class="solr.FacetComponent" />
|
||||
<searchComponent name="mlt" class="solr.MoreLikeThisComponent" />
|
||||
<searchComponent name="highlight" class="solr.HighlightComponent" />
|
||||
<searchComponent name="stats" class="solr.StatsComponent" />
|
||||
<searchComponent name="debug" class="solr.DebugComponent" />
|
||||
Default configuration in a requestHandler would look like:
|
||||
<arr name="components">
|
||||
<str>query</str>
|
||||
<str>facet</str>
|
||||
<str>mlt</str>
|
||||
<str>highlight</str>
|
||||
<str>stats</str>
|
||||
<str>debug</str>
|
||||
</arr>
|
||||
If you register a searchComponent to one of the standard names,
|
||||
that will be used instead of the default.
|
||||
To insert components before or after the 'standard' components, use:
|
||||
<arr name="first-components">
|
||||
<str>myFirstComponentName</str>
|
||||
</arr>
|
||||
<arr name="last-components">
|
||||
<str>myLastComponentName</str>
|
||||
</arr>
|
||||
NOTE: The component registered with the name "debug" will
|
||||
always be executed after the "last-components"
|
||||
-->
|
||||
|
||||
<!-- Autocomplete Component -->
|
||||
<searchComponent name="suggest" class="solr.SpellCheckComponent">
|
||||
<lst name="spellchecker">
|
||||
<str name="name">suggest</str>
|
||||
<str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
|
||||
<str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookup</str>
|
||||
<str name="buildOnCommit">true</str>
|
||||
<str name="field">autocomplete</str>
|
||||
<str name="queryAnalyzerFieldType">autocomplete</str>
|
||||
</lst>
|
||||
</searchComponent>
|
||||
|
||||
<!--
|
||||
Update Processors
|
||||
|
||||
Chains of Update Processor Factories for dealing with Update
|
||||
Requests can be declared, and then used by name in Update
|
||||
Request Processors
|
||||
see http://wiki.apache.org/solr/UpdateRequestProcessor
|
||||
-->
|
||||
|
||||
<!--
|
||||
Query Parsers
|
||||
|
||||
Multiple QParserPlugins can be registered by name, and then
|
||||
used in either the "defType" param for the QueryComponent (used
|
||||
by SearchHandler) or in LocalParams
|
||||
see http://wiki.apache.org/solr/SolrQuerySyntax
|
||||
-->
|
||||
|
||||
<!-- Legacy config for the admin interface -->
|
||||
<admin>
|
||||
<defaultQuery>*:*</defaultQuery>
|
||||
</admin>
|
||||
|
||||
</config>
|
|
@ -0,0 +1,282 @@
|
|||
# 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.
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
#Standard english stop words
|
||||
a
|
||||
an
|
||||
and
|
||||
are
|
||||
as
|
||||
at
|
||||
be
|
||||
but
|
||||
by
|
||||
for
|
||||
if
|
||||
in
|
||||
into
|
||||
is
|
||||
it
|
||||
no
|
||||
not
|
||||
of
|
||||
on
|
||||
or
|
||||
s
|
||||
such
|
||||
t
|
||||
that
|
||||
the
|
||||
their
|
||||
then
|
||||
there
|
||||
these
|
||||
they
|
||||
this
|
||||
to
|
||||
was
|
||||
will
|
||||
with
|
||||
|
||||
#Standard german stop words
|
||||
aber
|
||||
alle
|
||||
allem
|
||||
allen
|
||||
aller
|
||||
alles
|
||||
als
|
||||
also
|
||||
am
|
||||
an
|
||||
ander
|
||||
andere
|
||||
anderem
|
||||
anderen
|
||||
anderer
|
||||
anderes
|
||||
anderm
|
||||
andern
|
||||
anderr
|
||||
anders
|
||||
auch
|
||||
auf
|
||||
aus
|
||||
bei
|
||||
bin
|
||||
bis
|
||||
bist
|
||||
da
|
||||
damit
|
||||
dann
|
||||
der
|
||||
den
|
||||
des
|
||||
dem
|
||||
die
|
||||
das
|
||||
daß
|
||||
derselbe
|
||||
derselben
|
||||
denselben
|
||||
desselben
|
||||
demselben
|
||||
dieselbe
|
||||
dieselben
|
||||
dasselbe
|
||||
dazu
|
||||
dein
|
||||
deine
|
||||
deinem
|
||||
deinen
|
||||
deiner
|
||||
deines
|
||||
denn
|
||||
derer
|
||||
dessen
|
||||
dich
|
||||
dir
|
||||
du
|
||||
dies
|
||||
diese
|
||||
diesem
|
||||
diesen
|
||||
dieser
|
||||
dieses
|
||||
doch
|
||||
dort
|
||||
durch
|
||||
ein
|
||||
eine
|
||||
einem
|
||||
einen
|
||||
einer
|
||||
eines
|
||||
einig
|
||||
einige
|
||||
einigem
|
||||
einigen
|
||||
einiger
|
||||
einiges
|
||||
einmal
|
||||
er
|
||||
ihn
|
||||
ihm
|
||||
es
|
||||
etwas
|
||||
euer
|
||||
eure
|
||||
eurem
|
||||
euren
|
||||
eurer
|
||||
eures
|
||||
für
|
||||
gegen
|
||||
gewesen
|
||||
hab
|
||||
habe
|
||||
haben
|
||||
hat
|
||||
hatte
|
||||
hatten
|
||||
hier
|
||||
hin
|
||||
hinter
|
||||
ich
|
||||
mich
|
||||
mir
|
||||
ihr
|
||||
ihre
|
||||
ihrem
|
||||
ihren
|
||||
ihrer
|
||||
ihres
|
||||
euch
|
||||
im
|
||||
in
|
||||
indem
|
||||
ins
|
||||
ist
|
||||
jede
|
||||
jedem
|
||||
jeden
|
||||
jeder
|
||||
jedes
|
||||
jene
|
||||
jenem
|
||||
jenen
|
||||
jener
|
||||
jenes
|
||||
jetzt
|
||||
kann
|
||||
kein
|
||||
keine
|
||||
keinem
|
||||
keinen
|
||||
keiner
|
||||
keines
|
||||
können
|
||||
könnte
|
||||
machen
|
||||
man
|
||||
manche
|
||||
manchem
|
||||
manchen
|
||||
mancher
|
||||
manches
|
||||
mein
|
||||
meine
|
||||
meinem
|
||||
meinen
|
||||
meiner
|
||||
meines
|
||||
mit
|
||||
muss
|
||||
musste
|
||||
nach
|
||||
nicht
|
||||
nichts
|
||||
noch
|
||||
nun
|
||||
nur
|
||||
ob
|
||||
oder
|
||||
ohne
|
||||
sehr
|
||||
sein
|
||||
seine
|
||||
seinem
|
||||
seinen
|
||||
seiner
|
||||
seines
|
||||
selbst
|
||||
sich
|
||||
sie
|
||||
ihnen
|
||||
sind
|
||||
so
|
||||
solche
|
||||
solchem
|
||||
solchen
|
||||
solcher
|
||||
solches
|
||||
soll
|
||||
sollte
|
||||
sondern
|
||||
sonst
|
||||
über
|
||||
um
|
||||
und
|
||||
uns
|
||||
unser
|
||||
unses
|
||||
unter
|
||||
viel
|
||||
vom
|
||||
von
|
||||
vor
|
||||
während
|
||||
war
|
||||
waren
|
||||
warst
|
||||
was
|
||||
weg
|
||||
weil
|
||||
weiter
|
||||
welche
|
||||
welchem
|
||||
welchen
|
||||
welcher
|
||||
welches
|
||||
wenn
|
||||
werde
|
||||
werden
|
||||
wie
|
||||
wieder
|
||||
will
|
||||
wir
|
||||
wird
|
||||
wirst
|
||||
wo
|
||||
wollen
|
||||
wollte
|
||||
würde
|
||||
würden
|
||||
zu
|
||||
zum
|
||||
zur
|
||||
zwar
|
||||
zwischen
|
|
@ -0,0 +1,18 @@
|
|||
# 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.
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# synonym mappings can be used for spelling correction too
|
||||
|
||||
|
||||
# Syntax:
|
||||
# "synonym1" => "synonym2"
|
|
@ -0,0 +1,366 @@
|
|||
<!-- Add the following lines before the closing "</web-app>" tag. -->
|
||||
<web-app>
|
||||
<!-- ... -->
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrAdmin (Cores)</web-resource-name>
|
||||
<url-pattern>/admin/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrAdmin (Core0)</web-resource-name>
|
||||
<url-pattern>/dlfCore0/admin/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrUpdate (Core0)</web-resource-name>
|
||||
<url-pattern>/dlfCore0/update/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
<role-name>dlfSolrUpdate</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrAdmin (Core1)</web-resource-name>
|
||||
<url-pattern>/dlfCore1/admin/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrUpdate (Core1)</web-resource-name>
|
||||
<url-pattern>/dlfCore1/update/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
<role-name>dlfSolrUpdate</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrAdmin (Core2)</web-resource-name>
|
||||
<url-pattern>/dlfCore2/admin/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrUpdate (Core2)</web-resource-name>
|
||||
<url-pattern>/dlfCore2/update/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
<role-name>dlfSolrUpdate</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrAdmin (Core3)</web-resource-name>
|
||||
<url-pattern>/dlfCore3/admin/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrUpdate (Core3)</web-resource-name>
|
||||
<url-pattern>/dlfCore3/update/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
<role-name>dlfSolrUpdate</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrAdmin (Core4)</web-resource-name>
|
||||
<url-pattern>/dlfCore4/admin/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrUpdate (Core4)</web-resource-name>
|
||||
<url-pattern>/dlfCore4/update/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
<role-name>dlfSolrUpdate</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrAdmin (Core5)</web-resource-name>
|
||||
<url-pattern>/dlfCore5/admin/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrUpdate (Core5)</web-resource-name>
|
||||
<url-pattern>/dlfCore5/update/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
<role-name>dlfSolrUpdate</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrAdmin (Core6)</web-resource-name>
|
||||
<url-pattern>/dlfCore6/admin/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrUpdate (Core6)</web-resource-name>
|
||||
<url-pattern>/dlfCore6/update/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
<role-name>dlfSolrUpdate</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrAdmin (Core7)</web-resource-name>
|
||||
<url-pattern>/dlfCore7/admin/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrUpdate (Core7)</web-resource-name>
|
||||
<url-pattern>/dlfCore7/update/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
<role-name>dlfSolrUpdate</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrAdmin (Core8)</web-resource-name>
|
||||
<url-pattern>/dlfCore8/admin/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrUpdate (Core8)</web-resource-name>
|
||||
<url-pattern>/dlfCore8/update/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
<role-name>dlfSolrUpdate</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrAdmin (Core9)</web-resource-name>
|
||||
<url-pattern>/dlfCore9/admin/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrUpdate (Core9)</web-resource-name>
|
||||
<url-pattern>/dlfCore9/update/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
<role-name>dlfSolrUpdate</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrAdmin (Core10)</web-resource-name>
|
||||
<url-pattern>/dlfCore10/admin/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrUpdate (Core10)</web-resource-name>
|
||||
<url-pattern>/dlfCore10/update/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
<role-name>dlfSolrUpdate</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrAdmin (Core11)</web-resource-name>
|
||||
<url-pattern>/dlfCore11/admin/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrUpdate (Core11)</web-resource-name>
|
||||
<url-pattern>/dlfCore11/update/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
<role-name>dlfSolrUpdate</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrAdmin (Core12)</web-resource-name>
|
||||
<url-pattern>/dlfCore12/admin/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrUpdate (Core12)</web-resource-name>
|
||||
<url-pattern>/dlfCore12/update/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
<role-name>dlfSolrUpdate</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrAdmin (Core13)</web-resource-name>
|
||||
<url-pattern>/dlfCore13/admin/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrUpdate (Core13)</web-resource-name>
|
||||
<url-pattern>/dlfCore13/update/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
<role-name>dlfSolrUpdate</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrAdmin (Core14)</web-resource-name>
|
||||
<url-pattern>/dlfCore14/admin/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrUpdate (Core14)</web-resource-name>
|
||||
<url-pattern>/dlfCore14/update/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
<role-name>dlfSolrUpdate</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrAdmin (Core15)</web-resource-name>
|
||||
<url-pattern>/dlfCore15/admin/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>SolrUpdate (Core15)</web-resource-name>
|
||||
<url-pattern>/dlfCore15/update/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
<role-name>dlfSolrUpdate</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<login-config>
|
||||
<auth-method>BASIC</auth-method>
|
||||
<realm-name>Goobi.Presentation Solr Backend</realm-name>
|
||||
</login-config>
|
||||
|
||||
<security-role>
|
||||
<description>Goobi.Presentation Solr Administrator</description>
|
||||
<role-name>dlfSolrAdmin</role-name>
|
||||
</security-role>
|
||||
|
||||
<security-role>
|
||||
<description>Goobi.Presentation Solr Updater</description>
|
||||
<role-name>dlfSolrUpdate</role-name>
|
||||
</security-role>
|
||||
|
||||
</web-app>
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<solr persistent="true">
|
||||
<cores adminPath="/admin/cores" defaultCoreName="dlfCore0" shareSchema="true">
|
||||
<core name="dlfCore0" instanceDir="." dataDir="dlfCore0" />
|
||||
<core name="dlfCore0_txtcoords" instanceDir="." dataDir="dlfCore0_txtcoords" schema="schema_txtcoords.xml" />
|
||||
</cores>
|
||||
</solr>
|
Loading…
Reference in New Issue