~slub.team/goobi-indexserver/3.x

« back to all changes in this revision

Viewing changes to lucene/contrib/queryparser/src/test/org/apache/lucene/queryParser/TestAttributes.java

  • Committer: Sebastian Meyer
  • Date: 2012-08-03 09:12:40 UTC
  • Revision ID: sebastian.meyer@slub-dresden.de-20120803091240-x6861b0vabq1xror
Remove Lucene and Solr source code and add patches instead
Fix Bug #985487: Auto-suggestion for the search interface

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
package org.apache.lucene.queryParser;
2
 
 
3
 
/**
4
 
 * Licensed to the Apache Software Foundation (ASF) under one or more
5
 
 * contributor license agreements.  See the NOTICE file distributed with
6
 
 * this work for additional information regarding copyright ownership.
7
 
 * The ASF licenses this file to You under the Apache License, Version 2.0
8
 
 * (the "License"); you may not use this file except in compliance with
9
 
 * the License.  You may obtain a copy of the License at
10
 
 *
11
 
 *     http://www.apache.org/licenses/LICENSE-2.0
12
 
 *
13
 
 * Unless required by applicable law or agreed to in writing, software
14
 
 * distributed under the License is distributed on an "AS IS" BASIS,
15
 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
 
 * See the License for the specific language governing permissions and
17
 
 * limitations under the License.
18
 
 */
19
 
 
20
 
import java.text.CollationKey;
21
 
import java.text.Collator;
22
 
import java.util.HashMap;
23
 
import java.util.LinkedHashMap;
24
 
import java.util.Locale;
25
 
 
26
 
import junit.framework.Assert;
27
 
 
28
 
import org.apache.lucene.analysis.Analyzer;
29
 
import org.apache.lucene.analysis.KeywordAnalyzer;
30
 
import org.apache.lucene.document.DateTools;
31
 
import org.apache.lucene.queryParser.standard.config.AllowLeadingWildcardAttribute;
32
 
import org.apache.lucene.queryParser.standard.config.AnalyzerAttribute;
33
 
import org.apache.lucene.queryParser.standard.config.BoostAttribute;
34
 
import org.apache.lucene.queryParser.standard.config.DateResolutionAttribute;
35
 
import org.apache.lucene.queryParser.standard.config.DefaultOperatorAttribute;
36
 
import org.apache.lucene.queryParser.standard.config.DefaultPhraseSlopAttribute;
37
 
import org.apache.lucene.queryParser.standard.config.FieldBoostMapAttribute;
38
 
import org.apache.lucene.queryParser.standard.config.FieldDateResolutionMapAttribute;
39
 
import org.apache.lucene.queryParser.standard.config.FuzzyAttribute;
40
 
import org.apache.lucene.queryParser.standard.config.LocaleAttribute;
41
 
import org.apache.lucene.queryParser.standard.config.LowercaseExpandedTermsAttribute;
42
 
import org.apache.lucene.queryParser.standard.config.MultiFieldAttribute;
43
 
import org.apache.lucene.queryParser.standard.config.MultiTermRewriteMethodAttribute;
44
 
import org.apache.lucene.queryParser.standard.config.PositionIncrementsAttribute;
45
 
import org.apache.lucene.queryParser.standard.config.RangeCollatorAttribute;
46
 
import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler;
47
 
import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler.ConfigurationKeys;
48
 
import org.apache.lucene.queryParser.standard.config.StandardQueryConfigHandler.Operator;
49
 
import org.apache.lucene.search.FuzzyQuery;
50
 
import org.apache.lucene.search.MultiTermQuery;
51
 
import org.apache.lucene.util.LuceneTestCase;
52
 
import org.junit.Test;
53
 
 
54
 
public class TestAttributes extends LuceneTestCase {
55
 
 
56
 
  @Test
57
 
  public void testAttributes() {
58
 
    StandardQueryConfigHandler config = new StandardQueryConfigHandler();
59
 
 
60
 
    AnalyzerAttribute analyzerAttr = config
61
 
        .addAttribute(AnalyzerAttribute.class);
62
 
 
63
 
    Assert.assertTrue(null == analyzerAttr.getAnalyzer());
64
 
    Assert.assertTrue(null == config.get(ConfigurationKeys.ANALYZER));
65
 
    Analyzer analyzer = new KeywordAnalyzer();
66
 
    analyzerAttr.setAnalyzer(analyzer);
67
 
    Assert.assertTrue(analyzer == analyzerAttr.getAnalyzer());
68
 
    Assert.assertTrue(analyzer == config.get(ConfigurationKeys.ANALYZER));
69
 
 
70
 
    DateResolutionAttribute dateResAttr = config
71
 
        .addAttribute(DateResolutionAttribute.class);
72
 
 
73
 
    Assert.assertTrue(null == dateResAttr.getDateResolution());
74
 
    Assert.assertTrue(null == config.get(ConfigurationKeys.DATE_RESOLUTION));
75
 
    DateTools.Resolution dateRes = DateTools.Resolution.HOUR;
76
 
    dateResAttr.setDateResolution(dateRes);
77
 
    Assert.assertTrue(dateRes == dateResAttr.getDateResolution());
78
 
    Assert.assertTrue(dateRes == config.get(ConfigurationKeys.DATE_RESOLUTION));
79
 
 
80
 
    DefaultPhraseSlopAttribute defaultPhraseSlopAttr = config
81
 
        .addAttribute(DefaultPhraseSlopAttribute.class);
82
 
 
83
 
    Assert.assertEquals(0, defaultPhraseSlopAttr.getDefaultPhraseSlop());
84
 
    Assert
85
 
        .assertEquals(0, config.get(ConfigurationKeys.PHRASE_SLOP).intValue());
86
 
    int phraseSlop = 1;
87
 
    defaultPhraseSlopAttr.setDefaultPhraseSlop(phraseSlop);
88
 
    Assert.assertEquals(phraseSlop, defaultPhraseSlopAttr
89
 
        .getDefaultPhraseSlop());
90
 
    Assert.assertEquals(phraseSlop, config.get(ConfigurationKeys.PHRASE_SLOP)
91
 
        .intValue());
92
 
 
93
 
    FieldBoostMapAttribute fieldBoostMapAttr = config
94
 
        .addAttribute(FieldBoostMapAttribute.class);
95
 
 
96
 
    Assert.assertEquals(new LinkedHashMap<String, Float>(), fieldBoostMapAttr
97
 
        .getFieldBoostMap());
98
 
    Assert.assertEquals(new LinkedHashMap<String, Float>(), config
99
 
        .get(ConfigurationKeys.FIELD_BOOST_MAP));
100
 
    LinkedHashMap<String, Float> fieldBoostMap = new LinkedHashMap<String, Float>();
101
 
    fieldBoostMap.put("test", 0.3f);
102
 
    fieldBoostMapAttr.setFieldBoostMap(fieldBoostMap);
103
 
    Assert.assertEquals(fieldBoostMap, fieldBoostMapAttr.getFieldBoostMap());
104
 
    Assert.assertEquals(fieldBoostMap, config
105
 
        .get(ConfigurationKeys.FIELD_BOOST_MAP));
106
 
 
107
 
    FieldDateResolutionMapAttribute fieldDateResolutionMapAttr = config
108
 
        .addAttribute(FieldDateResolutionMapAttribute.class);
109
 
 
110
 
    Assert.assertEquals(new HashMap<CharSequence, DateTools.Resolution>(),
111
 
        fieldDateResolutionMapAttr.getFieldDateResolutionMap());
112
 
    Assert.assertEquals(new HashMap<CharSequence, DateTools.Resolution>(),
113
 
        config.get(ConfigurationKeys.FIELD_DATE_RESOLUTION_MAP));
114
 
    HashMap<CharSequence, DateTools.Resolution> fieldDateResMap = new HashMap<CharSequence, DateTools.Resolution>();
115
 
    fieldDateResMap.put("test", DateTools.Resolution.HOUR);
116
 
    fieldDateResolutionMapAttr.setFieldDateResolutionMap(fieldDateResMap);
117
 
    Assert.assertEquals(fieldDateResMap, fieldDateResolutionMapAttr.getFieldDateResolutionMap());
118
 
    Assert.assertEquals(fieldDateResMap, config
119
 
        .get(ConfigurationKeys.FIELD_DATE_RESOLUTION_MAP));
120
 
 
121
 
    LocaleAttribute localeAttr = config.addAttribute(LocaleAttribute.class);
122
 
 
123
 
    Assert.assertEquals(Locale.getDefault(), localeAttr.getLocale());
124
 
    Assert.assertEquals(Locale.getDefault(), config
125
 
        .get(ConfigurationKeys.LOCALE));
126
 
    Locale locale = Locale.CHINA;
127
 
    localeAttr.setLocale(locale);
128
 
    Assert.assertEquals(locale, localeAttr.getLocale());
129
 
    Assert.assertEquals(locale, config.get(ConfigurationKeys.LOCALE));
130
 
 
131
 
    LowercaseExpandedTermsAttribute lowercaseExpandedTermsAttr = config
132
 
        .addAttribute(LowercaseExpandedTermsAttribute.class);
133
 
 
134
 
    Assert.assertEquals(true, lowercaseExpandedTermsAttr
135
 
        .isLowercaseExpandedTerms());
136
 
    Assert.assertEquals(true, config.get(
137
 
        ConfigurationKeys.LOWERCASE_EXPANDED_TERMS).booleanValue());
138
 
    boolean lowercaseEnabled = false;
139
 
    lowercaseExpandedTermsAttr.setLowercaseExpandedTerms(lowercaseEnabled);
140
 
    Assert.assertEquals(lowercaseEnabled, lowercaseExpandedTermsAttr
141
 
        .isLowercaseExpandedTerms());
142
 
    Assert.assertEquals(lowercaseEnabled, config.get(
143
 
        ConfigurationKeys.LOWERCASE_EXPANDED_TERMS).booleanValue());
144
 
 
145
 
    MultiTermRewriteMethodAttribute multiTermRewriteMethodAttr = config
146
 
        .addAttribute(MultiTermRewriteMethodAttribute.class);
147
 
 
148
 
    Assert
149
 
        .assertTrue(MultiTermQuery.CONSTANT_SCORE_AUTO_REWRITE_DEFAULT == multiTermRewriteMethodAttr
150
 
            .getMultiTermRewriteMethod());
151
 
    Assert
152
 
        .assertTrue(MultiTermQuery.CONSTANT_SCORE_AUTO_REWRITE_DEFAULT == config
153
 
            .get(ConfigurationKeys.MULTI_TERM_REWRITE_METHOD));
154
 
    MultiTermQuery.RewriteMethod rewriteMethod = MultiTermQuery.CONSTANT_SCORE_FILTER_REWRITE;
155
 
    multiTermRewriteMethodAttr.setMultiTermRewriteMethod(rewriteMethod);
156
 
    Assert.assertTrue(rewriteMethod == multiTermRewriteMethodAttr
157
 
        .getMultiTermRewriteMethod());
158
 
    Assert.assertTrue(rewriteMethod == config
159
 
        .get(ConfigurationKeys.MULTI_TERM_REWRITE_METHOD));
160
 
 
161
 
    PositionIncrementsAttribute positionIncrementsAttr = config
162
 
        .addAttribute(PositionIncrementsAttribute.class);
163
 
 
164
 
    Assert.assertEquals(false, positionIncrementsAttr
165
 
        .isPositionIncrementsEnabled());
166
 
    Assert.assertEquals(false, config.get(
167
 
        ConfigurationKeys.ENABLE_POSITION_INCREMENTS).booleanValue());
168
 
    boolean posIncrEnabled = true;
169
 
    positionIncrementsAttr.setPositionIncrementsEnabled(posIncrEnabled);
170
 
    Assert.assertEquals(posIncrEnabled, positionIncrementsAttr
171
 
        .isPositionIncrementsEnabled());
172
 
    Assert.assertEquals(posIncrEnabled, config.get(
173
 
        ConfigurationKeys.ENABLE_POSITION_INCREMENTS).booleanValue());
174
 
 
175
 
    RangeCollatorAttribute rangeCollatorAttr = config
176
 
        .addAttribute(RangeCollatorAttribute.class);
177
 
 
178
 
    Assert.assertTrue(null == rangeCollatorAttr.getRangeCollator());
179
 
    Assert.assertTrue(null == config.get(ConfigurationKeys.RANGE_COLLATOR));
180
 
    Collator collator = new Collator() {
181
 
 
182
 
      @Override
183
 
      public int compare(String arg0, String arg1) {
184
 
        return 0;
185
 
      }
186
 
 
187
 
      @Override
188
 
      public CollationKey getCollationKey(String arg0) {
189
 
        return null;
190
 
      }
191
 
 
192
 
      @Override
193
 
      public int hashCode() {
194
 
        return 0;
195
 
      }
196
 
 
197
 
    };
198
 
    rangeCollatorAttr.setDateResolution(collator);
199
 
    Assert.assertTrue(collator == rangeCollatorAttr.getRangeCollator());
200
 
    Assert.assertTrue(collator == config.get(ConfigurationKeys.RANGE_COLLATOR));
201
 
 
202
 
    BoostAttribute boostAttr = config.addAttribute(BoostAttribute.class);
203
 
 
204
 
    Assert.assertEquals(1.0f, boostAttr.getBoost());
205
 
    Assert.assertEquals(1.0f, config.get(ConfigurationKeys.BOOST).floatValue());
206
 
    float boost = 2.0f;
207
 
    boostAttr.setBoost(boost);
208
 
    Assert.assertEquals(boost, boostAttr.getBoost());
209
 
    Assert
210
 
        .assertEquals(boost, config.get(ConfigurationKeys.BOOST).floatValue());
211
 
 
212
 
    FuzzyAttribute fuzzyAttributeAttr = config
213
 
        .addAttribute(FuzzyAttribute.class);
214
 
 
215
 
    Assert.assertEquals(FuzzyQuery.defaultMinSimilarity, fuzzyAttributeAttr
216
 
        .getFuzzyMinSimilarity());
217
 
    Assert.assertEquals(FuzzyQuery.defaultPrefixLength, fuzzyAttributeAttr
218
 
        .getPrefixLength());
219
 
    Assert.assertEquals(FuzzyQuery.defaultMinSimilarity, config.get(
220
 
        ConfigurationKeys.FUZZY_CONFIG).getMinSimilarity());
221
 
    Assert.assertEquals(FuzzyQuery.defaultPrefixLength, config.get(
222
 
        ConfigurationKeys.FUZZY_CONFIG).getPrefixLength());
223
 
    int prefixLength = 232;
224
 
    float minSim = 23.923f;
225
 
    fuzzyAttributeAttr.setFuzzyMinSimilarity(minSim);
226
 
    fuzzyAttributeAttr.setPrefixLength(prefixLength);
227
 
    Assert.assertEquals(minSim, fuzzyAttributeAttr.getFuzzyMinSimilarity());
228
 
    Assert.assertEquals(prefixLength, fuzzyAttributeAttr.getPrefixLength());
229
 
    Assert.assertEquals(minSim, config.get(ConfigurationKeys.FUZZY_CONFIG)
230
 
        .getMinSimilarity());
231
 
    Assert.assertEquals(prefixLength, config
232
 
        .get(ConfigurationKeys.FUZZY_CONFIG).getPrefixLength());
233
 
 
234
 
    DefaultOperatorAttribute defaultOpAttr = config
235
 
        .addAttribute(DefaultOperatorAttribute.class);
236
 
 
237
 
    Assert.assertEquals(DefaultOperatorAttribute.Operator.OR, defaultOpAttr
238
 
        .getOperator());
239
 
    Assert.assertEquals(Operator.OR, config
240
 
        .get(ConfigurationKeys.DEFAULT_OPERATOR));
241
 
    DefaultOperatorAttribute.Operator oldOperator = DefaultOperatorAttribute.Operator.AND;
242
 
    Operator newOperator = Operator.AND;
243
 
    defaultOpAttr.setOperator(oldOperator);
244
 
    Assert.assertEquals(oldOperator, defaultOpAttr.getOperator());
245
 
    Assert.assertEquals(newOperator, config
246
 
        .get(ConfigurationKeys.DEFAULT_OPERATOR));
247
 
 
248
 
  }
249
 
 
250
 
}