Commit 66b878922a3c48c8298eb59d23ebf3b2af4c2344

Authored by Macartur Sousa
Committed by Sergio Oliveira
1 parent 062a49b2

Added ci/install_solr.sh, folder with solr_confs and updated .travis.yml

Signed-off-by: Macartur Sousa <macartur.sc@gmail.com>
Signed-off-by: Rodrigo Siqueira <rodrigosiqueriamelo@gmail.com>
.travis.yml
... ... @@ -10,14 +10,16 @@ install:
10 10 - pip install .
11 11 - psql -c "CREATE USER colab WITH PASSWORD 'colab' CREATEDB;" -U postgres
12 12  
  13 +before_script:
  14 + - colab-init-config > /etc/colab/settings.yaml
  15 + - colab-admin build_solr_schema > solr_confs/schema.xml
  16 + - SOLR_VERSION=4.10.3 SOLR_CONFS="solr_confs" exec `pwd`/ci/install_solr.sh
  17 + - colab-admin rebuild_index
  18 +
13 19 script:
14 20 - python setup.py test
15 21 - flake8 colab
16 22  
17   -before_script:
18   - - colab-admin build_solr_schema > schema.xml
19   - - curl -sSL https://raw.githubusercontent.com/moliware/travis-solr/master/travis-solr.sh | SOLR_VERSION=4.10.2 bash
20   -
21 23 after_success:
22 24 - coveralls
23 25 - ci/build_rpm.sh
... ...
ci/install_solr.sh 0 → 100755
... ... @@ -0,0 +1,222 @@
  1 +#!/usr/bin/env bash
  2 +
  3 +## Based on https://github.com/moliware/travis-solr/ (revision: 7975953)
  4 +
  5 +SOLR_PORT=${SOLR_PORT:-8983}
  6 +
  7 +download() {
  8 + FILE="$2.tgz"
  9 + if [ -f $FILE ];
  10 + then
  11 + echo "File $FILE exists."
  12 + tar -zxf $FILE
  13 + else
  14 + echo "Downloading solr from $1..."
  15 + curl -O $1
  16 + tar -zxf $FILE
  17 + fi
  18 + echo "Downloaded"
  19 +}
  20 +
  21 +is_solr_up(){
  22 + http_code=`echo $(curl -s -o /dev/null -w "%{http_code}" "http://localhost:$SOLR_PORT/solr/admin/ping")`
  23 + return `test $http_code = "200"`
  24 +}
  25 +
  26 +wait_for_solr(){
  27 + while ! is_solr_up; do
  28 + sleep 3
  29 + done
  30 +}
  31 +
  32 +run() {
  33 + echo "Starting solr on port ${SOLR_PORT}..."
  34 +
  35 + cd $1/example
  36 + if [ $DEBUG ]
  37 + then
  38 + java -Djetty.port=$SOLR_PORT -jar start.jar &
  39 + else
  40 + java -Djetty.port=$SOLR_PORT -jar start.jar > /dev/null 2>&1 &
  41 + fi
  42 + wait_for_solr
  43 + cd ../../
  44 + echo "Started"
  45 +}
  46 +
  47 +post_some_documents() {
  48 + java -Dtype=application/json -Durl=http://localhost:$SOLR_PORT/solr/update/json -jar $1/example/exampledocs/post.jar $2
  49 +}
  50 +
  51 +
  52 +download_and_run() {
  53 + case $1 in
  54 + 3.5.0)
  55 + url="http://archive.apache.org/dist/lucene/solr/3.5.0/apache-solr-3.5.0.tgz"
  56 + dir_name="apache-solr-3.5.0"
  57 + dir_conf="conf/"
  58 + ;;
  59 + 3.6.0)
  60 + url="http://archive.apache.org/dist/lucene/solr/3.6.0/apache-solr-3.6.0.tgz"
  61 + dir_name="apache-solr-3.6.0"
  62 + dir_conf="conf/"
  63 + ;;
  64 + 3.6.1)
  65 + url="http://archive.apache.org/dist/lucene/solr/3.6.1/apache-solr-3.6.1.tgz"
  66 + dir_name="apache-solr-3.6.1"
  67 + dir_conf="conf/"
  68 + ;;
  69 + 3.6.2)
  70 + url="http://archive.apache.org/dist/lucene/solr/3.6.2/apache-solr-3.6.2.tgz"
  71 + dir_name="apache-solr-3.6.2"
  72 + dir_conf="conf/"
  73 + ;;
  74 + 4.0.0)
  75 + url="http://archive.apache.org/dist/lucene/solr/4.0.0/apache-solr-4.0.0.tgz"
  76 + dir_name="apache-solr-4.0.0"
  77 + dir_conf="collection1/conf/"
  78 + ;;
  79 + 4.1.0)
  80 + url="http://archive.apache.org/dist/lucene/solr/4.1.0/solr-4.1.0.tgz"
  81 + dir_name="solr-4.1.0"
  82 + dir_conf="collection1/conf/"
  83 + ;;
  84 + 4.2.0)
  85 + url="http://archive.apache.org/dist/lucene/solr/4.2.0/solr-4.2.0.tgz"
  86 + dir_name="solr-4.2.0"
  87 + dir_conf="collection1/conf/"
  88 + ;;
  89 + 4.2.1)
  90 + url="http://archive.apache.org/dist/lucene/solr/4.2.1/solr-4.2.1.tgz"
  91 + dir_name="solr-4.2.1"
  92 + dir_conf="collection1/conf/"
  93 + ;;
  94 + 4.3.1)
  95 + url="http://archive.apache.org/dist/lucene/solr/4.3.1/solr-4.3.1.tgz"
  96 + dir_name="solr-4.3.1"
  97 + dir_conf="collection1/conf/"
  98 + ;;
  99 + 4.4.0)
  100 + url="http://archive.apache.org/dist/lucene/solr/4.4.0/solr-4.4.0.tgz"
  101 + dir_name="solr-4.4.0"
  102 + dir_conf="collection1/conf/"
  103 + ;;
  104 + 4.5.0)
  105 + url="http://archive.apache.org/dist/lucene/solr/4.5.0/solr-4.5.0.tgz"
  106 + dir_name="solr-4.5.0"
  107 + dir_conf="collection1/conf/"
  108 + ;;
  109 + 4.5.1)
  110 + url="http://archive.apache.org/dist/lucene/solr/4.5.1/solr-4.5.1.tgz"
  111 + dir_name="solr-4.5.1"
  112 + dir_conf="collection1/conf/"
  113 + ;;
  114 + 4.6.0)
  115 + url="http://archive.apache.org/dist/lucene/solr/4.6.0/solr-4.6.0.tgz"
  116 + dir_name="solr-4.6.0"
  117 + dir_conf="collection1/conf/"
  118 + ;;
  119 + 4.6.1)
  120 + url="http://archive.apache.org/dist/lucene/solr/4.6.1/solr-4.6.1.tgz"
  121 + dir_name="solr-4.6.1"
  122 + dir_conf="collection1/conf/"
  123 + ;;
  124 + 4.7.0)
  125 + url="http://archive.apache.org/dist/lucene/solr/4.7.0/solr-4.7.0.tgz"
  126 + dir_name="solr-4.7.0"
  127 + dir_conf="collection1/conf/"
  128 + ;;
  129 + 4.7.1)
  130 + url="http://archive.apache.org/dist/lucene/solr/4.7.1/solr-4.7.1.tgz"
  131 + dir_name="solr-4.7.1"
  132 + dir_conf="collection1/conf/"
  133 + ;;
  134 + 4.7.2)
  135 + url="http://archive.apache.org/dist/lucene/solr/4.7.2/solr-4.7.2.tgz"
  136 + dir_name="solr-4.7.2"
  137 + dir_conf="collection1/conf/"
  138 + ;;
  139 + 4.8.0)
  140 + url="http://archive.apache.org/dist/lucene/solr/4.8.0/solr-4.8.0.tgz"
  141 + dir_name="solr-4.8.0"
  142 + dir_conf="collection1/conf/"
  143 + ;;
  144 + 4.8.1)
  145 + url="http://archive.apache.org/dist/lucene/solr/4.8.1/solr-4.8.1.tgz"
  146 + dir_name="solr-4.8.1"
  147 + dir_conf="collection1/conf/"
  148 + ;;
  149 + 4.9.0)
  150 + url="http://archive.apache.org/dist/lucene/solr/4.9.0/solr-4.9.0.tgz"
  151 + dir_name="solr-4.9.0"
  152 + dir_conf="collection1/conf/"
  153 + ;;
  154 + 4.9.1)
  155 + url="http://archive.apache.org/dist/lucene/solr/4.9.1/solr-4.9.1.tgz"
  156 + dir_name="solr-4.9.1"
  157 + dir_conf="collection1/conf/"
  158 + ;;
  159 + 4.10.0)
  160 + url="http://archive.apache.org/dist/lucene/solr/4.10.0/solr-4.10.0.tgz"
  161 + dir_name="solr-4.10.0"
  162 + dir_conf="collection1/conf/"
  163 + ;;
  164 + 4.10.1)
  165 + url="http://archive.apache.org/dist/lucene/solr/4.10.1/solr-4.10.1.tgz"
  166 + dir_name="solr-4.10.1"
  167 + dir_conf="collection1/conf/"
  168 + ;;
  169 + 4.10.2)
  170 + url="http://archive.apache.org/dist/lucene/solr/4.10.2/solr-4.10.2.tgz"
  171 + dir_name="solr-4.10.2"
  172 + dir_conf="collection1/conf/"
  173 + ;;
  174 + 4.10.3)
  175 + url="http://archive.apache.org/dist/lucene/solr/4.10.3/solr-4.10.3.tgz"
  176 + dir_name="solr-4.10.3"
  177 + dir_conf="collection1/conf/"
  178 + ;;
  179 + esac
  180 +
  181 + download $url $dir_name
  182 +
  183 + # copies custom configurations
  184 + for file in $SOLR_CONFS
  185 + do
  186 + if [ -d $file ]
  187 + then
  188 + cp $file/* $dir_name/example/solr/$dir_conf
  189 + echo "Copied directory $file into solr conf directory."
  190 + elif [ -f $file ]
  191 + then
  192 + cp $file $dir_name/example/solr/$dir_conf
  193 + echo "Copied $file into solr conf directory."
  194 + fi
  195 + done
  196 +
  197 + # Run solr
  198 + run $dir_name $SOLR_PORT
  199 +
  200 + # Post documents
  201 + if [ -z "$SOLR_DOCS" ]
  202 + then
  203 + echo "$SOLR_DOCS not defined, skipping initial indexing"
  204 + else
  205 + echo "Indexing $SOLR_DOCS"
  206 + post_some_documents $dir_name $SOLR_DOCS
  207 + fi
  208 +}
  209 +
  210 +check_version() {
  211 + case $1 in
  212 + 3.5.0|3.6.0|3.6.1|3.6.2|4.0.0|4.1.0|4.2.0|4.2.1|4.3.1|4.4.0|4.5.0|4.5.1|4.6.0|4.6.1|4.7.0|4.7.1|4.7.2|4.8.0|4.8.1|4.9.0|4.9.1|4.10.0|4.10.1|4.10.2|4.10.3);;
  213 + *)
  214 + echo "Sorry, $1 is not supported or not valid version."
  215 + exit 1
  216 + ;;
  217 + esac
  218 +}
  219 +
  220 +
  221 +check_version $SOLR_VERSION
  222 +download_and_run $SOLR_VERSION
... ...
solr_confs/schema.xml 0 → 100644
... ... @@ -0,0 +1,225 @@
  1 +<?xml version="1.0" ?>
  2 +<!--
  3 + Licensed to the Apache Software Foundation (ASF) under one or more
  4 + contributor license agreements. See the NOTICE file distributed with
  5 + this work for additional information regarding copyright ownership.
  6 + The ASF licenses this file to You under the Apache License, Version 2.0
  7 + (the "License"); you may not use this file except in compliance with
  8 + the License. You may obtain a copy of the License at
  9 +
  10 + http://www.apache.org/licenses/LICENSE-2.0
  11 +
  12 + Unless required by applicable law or agreed to in writing, software
  13 + distributed under the License is distributed on an "AS IS" BASIS,
  14 + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15 + See the License for the specific language governing permissions and
  16 + limitations under the License.
  17 +-->
  18 +
  19 +<schema name="default" version="1.5">
  20 + <types>
  21 + <fieldtype name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
  22 + <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true"/>
  23 + <fieldtype name="binary" class="solr.BinaryField"/>
  24 +
  25 + <!-- Numeric field types that manipulate the value into
  26 + a string value that isn't human-readable in its internal form,
  27 + but with a lexicographic ordering the same as the numeric ordering,
  28 + so that range queries work correctly. -->
  29 + <fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" sortMissingLast="true" positionIncrementGap="0"/>
  30 + <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" omitNorms="true" sortMissingLast="true" positionIncrementGap="0"/>
  31 + <fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" sortMissingLast="true" positionIncrementGap="0"/>
  32 + <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" omitNorms="true" sortMissingLast="true" positionIncrementGap="0"/>
  33 + <fieldType name="sint" class="solr.SortableIntField" sortMissingLast="true" omitNorms="true"/>
  34 + <fieldType name="slong" class="solr.SortableLongField" sortMissingLast="true" omitNorms="true"/>
  35 + <fieldType name="sfloat" class="solr.SortableFloatField" sortMissingLast="true" omitNorms="true"/>
  36 + <fieldType name="sdouble" class="solr.SortableDoubleField" sortMissingLast="true" omitNorms="true"/>
  37 +
  38 + <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
  39 + <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
  40 + <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
  41 + <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
  42 +
  43 + <fieldType name="date" class="solr.TrieDateField" omitNorms="true" precisionStep="0" positionIncrementGap="0"/>
  44 + <!-- A Trie based date field for faster date range queries and date faceting. -->
  45 + <fieldType name="tdate" class="solr.TrieDateField" omitNorms="true" precisionStep="6" positionIncrementGap="0"/>
  46 +
  47 + <fieldType name="point" class="solr.PointType" dimension="2" subFieldSuffix="_d"/>
  48 + <fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
  49 + <fieldtype name="geohash" class="solr.GeoHashField"/>
  50 +
  51 + <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
  52 + <analyzer type="index">
  53 + <tokenizer class="solr.StandardTokenizerFactory"/>
  54 + <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
  55 + <!-- in this example, we will only use synonyms at query time
  56 + <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
  57 + -->
  58 + <filter class="solr.LowerCaseFilterFactory"/>
  59 + </analyzer>
  60 + <analyzer type="query">
  61 + <tokenizer class="solr.StandardTokenizerFactory"/>
  62 + <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
  63 + <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
  64 + <filter class="solr.LowerCaseFilterFactory"/>
  65 + </analyzer>
  66 + </fieldType>
  67 +
  68 + <fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
  69 + <analyzer type="index">
  70 + <tokenizer class="solr.StandardTokenizerFactory"/>
  71 + <filter class="solr.StopFilterFactory"
  72 + ignoreCase="true"
  73 + words="lang/stopwords_en.txt"
  74 + enablePositionIncrements="true"
  75 + />
  76 + <filter class="solr.LowerCaseFilterFactory"/>
  77 + <filter class="solr.EnglishPossessiveFilterFactory"/>
  78 + <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
  79 + <!-- Optionally you may want to use this less aggressive stemmer instead of PorterStemFilterFactory:
  80 + <filter class="solr.EnglishMinimalStemFilterFactory"/>
  81 + -->
  82 + <filter class="solr.PorterStemFilterFactory"/>
  83 + </analyzer>
  84 + <analyzer type="query">
  85 + <tokenizer class="solr.StandardTokenizerFactory"/>
  86 + <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
  87 + <filter class="solr.StopFilterFactory"
  88 + ignoreCase="true"
  89 + words="lang/stopwords_en.txt"
  90 + enablePositionIncrements="true"
  91 + />
  92 + <filter class="solr.LowerCaseFilterFactory"/>
  93 + <filter class="solr.EnglishPossessiveFilterFactory"/>
  94 + <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
  95 + <!-- Optionally you may want to use this less aggressive stemmer instead of PorterStemFilterFactory:
  96 + <filter class="solr.EnglishMinimalStemFilterFactory"/>
  97 + -->
  98 + <filter class="solr.PorterStemFilterFactory"/>
  99 + </analyzer>
  100 + </fieldType>
  101 +
  102 + <fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100">
  103 + <analyzer>
  104 + <tokenizer class="solr.WhitespaceTokenizerFactory"/>
  105 + </analyzer>
  106 + </fieldType>
  107 +
  108 + <fieldType name="ngram" class="solr.TextField" >
  109 + <analyzer type="index">
  110 + <tokenizer class="solr.KeywordTokenizerFactory"/>
  111 + <filter class="solr.LowerCaseFilterFactory"/>
  112 + <filter class="solr.NGramFilterFactory" minGramSize="3" maxGramSize="15" />
  113 + </analyzer>
  114 + <analyzer type="query">
  115 + <tokenizer class="solr.KeywordTokenizerFactory"/>
  116 + <filter class="solr.LowerCaseFilterFactory"/>
  117 + </analyzer>
  118 + </fieldType>
  119 +
  120 + <fieldType name="edge_ngram" class="solr.TextField" positionIncrementGap="1">
  121 + <analyzer type="index">
  122 + <tokenizer class="solr.WhitespaceTokenizerFactory" />
  123 + <filter class="solr.LowerCaseFilterFactory" />
  124 + <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
  125 + <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front" />
  126 + </analyzer>
  127 + <analyzer type="query">
  128 + <tokenizer class="solr.WhitespaceTokenizerFactory" />
  129 + <filter class="solr.LowerCaseFilterFactory" />
  130 + <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
  131 + </analyzer>
  132 + </fieldType>
  133 + </types>
  134 +
  135 + <fields>
  136 + <!-- general -->
  137 + <field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
  138 + <field name="django_ct" type="string" indexed="true" stored="true" multiValued="false"/>
  139 + <field name="django_id" type="string" indexed="true" stored="true" multiValued="false"/>
  140 + <field name="_version_" type="long" indexed="true" stored ="true"/>
  141 +
  142 + <dynamicField name="*_i" type="int" indexed="true" stored="true"/>
  143 + <dynamicField name="*_s" type="string" indexed="true" stored="true"/>
  144 + <dynamicField name="*_l" type="long" indexed="true" stored="true"/>
  145 + <dynamicField name="*_t" type="text_en" indexed="true" stored="true"/>
  146 + <dynamicField name="*_b" type="boolean" indexed="true" stored="true"/>
  147 + <dynamicField name="*_f" type="float" indexed="true" stored="true"/>
  148 + <dynamicField name="*_d" type="double" indexed="true" stored="true"/>
  149 + <dynamicField name="*_dt" type="date" indexed="true" stored="true"/>
  150 + <dynamicField name="*_p" type="location" indexed="true" stored="true"/>
  151 + <dynamicField name="*_coordinate" type="tdouble" indexed="true" stored="false"/>
  152 +
  153 +
  154 + <field name="username" type="text_en" indexed="true" stored="false" multiValued="false" />
  155 +
  156 + <field name="google_talk" type="text_en" indexed="true" stored="false" multiValued="false" />
  157 +
  158 + <field name="description" type="text_en" indexed="true" stored="true" multiValued="false" />
  159 +
  160 + <field name="title" type="text_en" indexed="true" stored="true" multiValued="false" />
  161 +
  162 + <field name="webpage" type="text_en" indexed="true" stored="false" multiValued="false" />
  163 +
  164 + <field name="text" type="text_en" indexed="true" stored="false" multiValued="false" />
  165 +
  166 + <field name="institution" type="text_en" indexed="true" stored="true" multiValued="false" />
  167 +
  168 + <field name="message_count" type="long" indexed="true" stored="false" multiValued="false" />
  169 +
  170 + <field name="url" type="string" indexed="false" stored="true" multiValued="false" />
  171 +
  172 + <field name="icon_name" type="text_en" indexed="true" stored="true" multiValued="false" />
  173 +
  174 + <field name="role" type="text_en" indexed="true" stored="true" multiValued="false" />
  175 +
  176 + <field name="contribution_count" type="long" indexed="true" stored="false" multiValued="false" />
  177 +
  178 + <field name="type" type="text_en" indexed="true" stored="true" multiValued="false" />
  179 +
  180 + <field name="email" type="text_en" indexed="true" stored="false" multiValued="false" />
  181 +
  182 + <field name="name" type="text_en" indexed="true" stored="true" multiValued="false" />
  183 +
  184 + <field name="fullname_and_username" type="text_en" indexed="true" stored="false" multiValued="false" />
  185 +
  186 + <field name="modified_by_url" type="text_en" indexed="true" stored="true" multiValued="false" />
  187 +
  188 + <field name="collaborators" type="text_en" indexed="true" stored="false" multiValued="false" />
  189 +
  190 + <field name="tag" type="text_en" indexed="true" stored="true" multiValued="false" />
  191 +
  192 + <field name="fullname" type="text_en" indexed="true" stored="true" multiValued="false" />
  193 +
  194 + <field name="mailinglist_url" type="string" indexed="false" stored="true" multiValued="false" />
  195 +
  196 + <field name="latest_description" type="string" indexed="false" stored="true" multiValued="false" />
  197 +
  198 + <field name="hits" type="long" indexed="true" stored="true" multiValued="false" />
  199 +
  200 + <field name="modified_by" type="text_en" indexed="true" stored="true" multiValued="false" />
  201 +
  202 + <field name="created" type="date" indexed="true" stored="true" multiValued="false" />
  203 +
  204 + <field name="modified" type="date" indexed="true" stored="true" multiValued="false" />
  205 +
  206 + <field name="latest_message_pk" type="long" indexed="false" stored="true" multiValued="false" />
  207 +
  208 + <field name="score" type="long" indexed="true" stored="true" multiValued="false" />
  209 +
  210 + <field name="author_url" type="string" indexed="false" stored="true" multiValued="false" />
  211 +
  212 + <field name="author" type="text_en" indexed="true" stored="true" multiValued="false" />
  213 +
  214 + </fields>
  215 +
  216 + <!-- field to use to determine and enforce document uniqueness. -->
  217 + <uniqueKey>id</uniqueKey>
  218 +
  219 + <!-- field for the QueryParser to use when an explicit fieldname is absent -->
  220 + <defaultSearchField>text</defaultSearchField>
  221 +
  222 + <!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
  223 + <solrQueryParser defaultOperator="AND"/>
  224 +</schema>
  225 +
... ...
solr_confs/stopwords_en.txt 0 → 100644
... ... @@ -0,0 +1,54 @@
  1 +# Licensed to the Apache Software Foundation (ASF) under one or more
  2 +# contributor license agreements. See the NOTICE file distributed with
  3 +# this work for additional information regarding copyright ownership.
  4 +# The ASF licenses this file to You under the Apache License, Version 2.0
  5 +# (the "License"); you may not use this file except in compliance with
  6 +# the License. You may obtain a copy of the License at
  7 +#
  8 +# http://www.apache.org/licenses/LICENSE-2.0
  9 +#
  10 +# Unless required by applicable law or agreed to in writing, software
  11 +# distributed under the License is distributed on an "AS IS" BASIS,
  12 +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 +# See the License for the specific language governing permissions and
  14 +# limitations under the License.
  15 +
  16 +# a couple of test stopwords to test that the words are really being
  17 +# configured from this file:
  18 +stopworda
  19 +stopwordb
  20 +
  21 +# Standard english stop words taken from Lucene's StopAnalyzer
  22 +a
  23 +an
  24 +and
  25 +are
  26 +as
  27 +at
  28 +be
  29 +but
  30 +by
  31 +for
  32 +if
  33 +in
  34 +into
  35 +is
  36 +it
  37 +no
  38 +not
  39 +of
  40 +on
  41 +or
  42 +such
  43 +that
  44 +the
  45 +their
  46 +then
  47 +there
  48 +these
  49 +they
  50 +this
  51 +to
  52 +was
  53 +will
  54 +with
... ...