1 package org.apache.maven.index.context;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.lucene.analysis.Analyzer;
23 import org.apache.lucene.analysis.AnalyzerWrapper;
24 import org.apache.lucene.analysis.util.CharTokenizer;
25 import org.apache.lucene.analysis.standard.StandardAnalyzer;
26 import org.apache.maven.index.ArtifactInfo;
27
28
29
30
31
32
33
34
35 public final class NexusLegacyAnalyzer
36 extends AnalyzerWrapper
37 {
38 private static final Analyzer DEFAULT_ANALYZER = new StandardAnalyzer();
39
40 private static final Analyzer LETTER_OR_DIGIT_ANALYZER = new Analyzer()
41 {
42 @Override
43 protected TokenStreamComponents createComponents( final String fieldName )
44 {
45 return new TokenStreamComponents( new CharTokenizer()
46 {
47 @Override
48 protected boolean isTokenChar( int c )
49 {
50 return Character.isLetterOrDigit( c );
51 }
52
53 @Override
54 protected int normalize( int c )
55 {
56 return Character.toLowerCase( c );
57 }
58 } );
59 }
60 };
61
62 public NexusLegacyAnalyzer()
63 {
64 super( PER_FIELD_REUSE_STRATEGY );
65 }
66
67 @Override
68 protected Analyzer getWrappedAnalyzer( String fieldName )
69 {
70 if ( !isTextField( fieldName ) )
71 {
72 return LETTER_OR_DIGIT_ANALYZER;
73 }
74 else
75 {
76 return DEFAULT_ANALYZER;
77 }
78 }
79
80 protected boolean isTextField( String field )
81 {
82 return ArtifactInfo.NAME.equals( field ) || ArtifactInfo.DESCRIPTION.equals( field )
83 || ArtifactInfo.NAMES.equals( field );
84 }
85 }