Mercurial Hosting > luan
comparison lucene/src/luan/modules/lucene/LuceneIndex.java @ 622:1a53333eb4d5
remove Lucene all_search_terms_must_match() since now query suffix "~a" handles this
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 07 Jan 2016 03:06:52 -0700 |
parents | fd15da41afca |
children | 8281a248c47e |
comparison
equal
deleted
inserted
replaced
621:fd15da41afca | 622:1a53333eb4d5 |
---|---|
83 private IndexSearcher searcher; | 83 private IndexSearcher searcher; |
84 private final ThreadLocal<IndexSearcher> threadLocalSearcher = new ThreadLocal<IndexSearcher>(); | 84 private final ThreadLocal<IndexSearcher> threadLocalSearcher = new ThreadLocal<IndexSearcher>(); |
85 private boolean isClosed = false; | 85 private boolean isClosed = false; |
86 private final MultiFieldParser mfp; | 86 private final MultiFieldParser mfp; |
87 public final LuanTable indexed_only_fields = new LuanTable(); | 87 public final LuanTable indexed_only_fields = new LuanTable(); |
88 public BooleanClause.Occur defaultOccur = BooleanClause.Occur.SHOULD; | |
89 | 88 |
90 public LuceneIndex(LuanState luan,String indexDirStr,FieldParser defaultFieldParser,String[] defaultFields) throws LuanException, IOException { | 89 public LuceneIndex(LuanState luan,String indexDirStr,FieldParser defaultFieldParser,String[] defaultFields) throws LuanException, IOException { |
91 mfp = defaultFieldParser==null ? new MultiFieldParser() : new MultiFieldParser(defaultFieldParser,defaultFields); | 90 mfp = defaultFieldParser==null ? new MultiFieldParser() : new MultiFieldParser(defaultFieldParser,defaultFields); |
92 mfp.fields.put( "type", STRING_FIELD_PARSER ); | 91 mfp.fields.put( "type", STRING_FIELD_PARSER ); |
93 mfp.fields.put( "id", NumberFieldParser.LONG ); | 92 mfp.fields.put( "id", NumberFieldParser.LONG ); |
130 NumericUtils.longToPrefixCoded(value,0,br); | 129 NumericUtils.longToPrefixCoded(value,0,br); |
131 return new Term(key,br); | 130 return new Term(key,br); |
132 } | 131 } |
133 | 132 |
134 public void delete(LuanState luan,String queryStr) throws LuanException, IOException, ParseException { | 133 public void delete(LuanState luan,String queryStr) throws LuanException, IOException, ParseException { |
135 Query query = SaneQueryParser.parseQuery(mfp,queryStr,defaultOccur); | 134 Query query = SaneQueryParser.parseQuery(mfp,queryStr); |
136 | 135 |
137 boolean commit = !writeLock.isHeldByCurrentThread(); | 136 boolean commit = !writeLock.isHeldByCurrentThread(); |
138 writeLock.lock(); | 137 writeLock.lock(); |
139 try { | 138 try { |
140 writer.deleteDocuments(query); | 139 writer.deleteDocuments(query); |
344 close(openSearcher()); | 343 close(openSearcher()); |
345 } | 344 } |
346 | 345 |
347 public int advanced_search( final LuanState luan, String queryStr, LuanFunction fn, Integer n, String sortStr ) throws LuanException, IOException, ParseException { | 346 public int advanced_search( final LuanState luan, String queryStr, LuanFunction fn, Integer n, String sortStr ) throws LuanException, IOException, ParseException { |
348 Utils.checkNotNull(luan,queryStr); | 347 Utils.checkNotNull(luan,queryStr); |
349 Query query = SaneQueryParser.parseQuery(mfp,queryStr,defaultOccur); | 348 Query query = SaneQueryParser.parseQuery(mfp,queryStr); |
350 IndexSearcher searcher = threadLocalSearcher.get(); | 349 IndexSearcher searcher = threadLocalSearcher.get(); |
351 boolean inTransaction = searcher != null; | 350 boolean inTransaction = searcher != null; |
352 if( !inTransaction ) | 351 if( !inTransaction ) |
353 searcher = openSearcher(); | 352 searcher = openSearcher(); |
354 try { | 353 try { |