Mercurial Hosting > luan
comparison src/luan/modules/lucene/LuceneIndex.java @ 1369:709f7498a363
change Lucene.index() and add Lucene.recover()
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Wed, 19 Jun 2019 00:26:10 -0600 |
parents | 643cf1c37723 |
children | 87a3738d7cc5 |
comparison
equal
deleted
inserted
replaced
1368:5225cd6ed478 | 1369:709f7498a363 |
---|---|
108 } | 108 } |
109 } | 109 } |
110 | 110 |
111 private static Map<String,LuceneIndex> indexes = new HashMap<String,LuceneIndex>(); | 111 private static Map<String,LuceneIndex> indexes = new HashMap<String,LuceneIndex>(); |
112 | 112 |
113 public static Object[] getLuceneIndex(Luan luan,String indexDirStr,FieldParser defaultFieldParser,String[] defaultFields) | 113 public static Object[] getLuceneIndex(Luan luan,File indexDir,FieldParser defaultFieldParser,String[] defaultFields) |
114 throws LuanException, IOException | 114 throws LuanException, IOException |
115 { | 115 { |
116 String key = new File(indexDirStr).getCanonicalPath(); | 116 String key = indexDir.getCanonicalPath(); |
117 synchronized(indexes) { | 117 synchronized(indexes) { |
118 LuceneIndex li = indexes.get(key); | 118 LuceneIndex li = indexes.get(key); |
119 if( li == null ) { | 119 if( li == null ) { |
120 li = new LuceneIndex(indexDirStr,defaultFieldParser,defaultFields,key); | 120 li = new LuceneIndex(indexDir,defaultFieldParser,defaultFields,key); |
121 li.openCount = 1; | 121 li.openCount = 1; |
122 indexes.put(key,li); | 122 indexes.put(key,li); |
123 } else { | 123 } else { |
124 if( defaultFieldParser != li.defaultFieldParser ) | 124 if( defaultFieldParser != li.defaultFieldParser ) |
125 throw new LuanException("default_type doesn't match previous use"); | 125 throw new LuanException("default_type doesn't match previous use"); |
155 private int openCount; | 155 private int openCount; |
156 private final String key; | 156 private final String key; |
157 private final FieldParser defaultFieldParser; | 157 private final FieldParser defaultFieldParser; |
158 private final String[] defaultFields; | 158 private final String[] defaultFields; |
159 | 159 |
160 private LuceneIndex(String indexDirStr,FieldParser defaultFieldParser,String[] defaultFields,String key) | 160 private LuceneIndex(File indexDir,FieldParser defaultFieldParser,String[] defaultFields,String key) |
161 throws LuanException, IOException | 161 throws LuanException, IOException |
162 { | 162 { |
163 this.key = key; | 163 this.key = key; |
164 this.defaultFieldParser = defaultFieldParser; | 164 this.defaultFieldParser = defaultFieldParser; |
165 this.defaultFields = defaultFields; | 165 this.defaultFields = defaultFields; |
166 mfp = defaultFieldParser==null ? new MultiFieldParser() : new MultiFieldParser(defaultFieldParser,defaultFields); | 166 mfp = defaultFieldParser==null ? new MultiFieldParser() : new MultiFieldParser(defaultFieldParser,defaultFields); |
167 mfp.fields.put( "type", STRING_FIELD_PARSER ); | 167 mfp.fields.put( "type", STRING_FIELD_PARSER ); |
168 mfp.fields.put( "id", NumberFieldParser.LONG ); | 168 mfp.fields.put( "id", NumberFieldParser.LONG ); |
169 File indexDir = new File(indexDirStr); | |
170 this.indexDir = indexDir; | 169 this.indexDir = indexDir; |
171 Analyzer analyzer = STRING_FIELD_PARSER.analyzer; | 170 Analyzer analyzer = STRING_FIELD_PARSER.analyzer; |
172 if( defaultFieldParser instanceof StringFieldParser ) { | 171 if( defaultFieldParser instanceof StringFieldParser ) { |
173 StringFieldParser sfp = (StringFieldParser)defaultFieldParser; | 172 StringFieldParser sfp = (StringFieldParser)defaultFieldParser; |
174 analyzer = sfp.analyzer; | 173 analyzer = sfp.analyzer; |