Mercurial Hosting > luan
diff src/luan/modules/lucene/LuceneIndex.java @ 1335:e0cf0d108a77
major cleanup
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 14 Feb 2019 03:10:45 -0700 |
parents | 25746915a241 |
children | 8b61c8c4e07a |
line wrap: on
line diff
--- a/src/luan/modules/lucene/LuceneIndex.java Tue Feb 12 22:53:57 2019 -0700 +++ b/src/luan/modules/lucene/LuceneIndex.java Thu Feb 14 03:10:45 2019 -0700 @@ -200,7 +200,7 @@ for( Map.Entry<String,LuanFunction> entry : map.entrySet() ) { String name = entry.getKey(); LuanFunction fn = entry.getValue(); - Object value = Luan.first(fn.call(luan,new Object[]{doc})); + Object value = Luan.first(fn.call(doc)); doc.put( name, value ); indexedOnlySet.add(name); } @@ -230,11 +230,11 @@ } } - public void update_in_transaction(Luan luan,LuanFunction fn) throws IOException, LuanException { + public void update_in_transaction(LuanFunction fn) throws IOException, LuanException { boolean commit = !writeLock.isHeldByCurrentThread(); writeLock.lock(); try { - fn.call(luan); + fn.call(); if(commit) writer.commit(); } finally { wrote(); @@ -242,13 +242,13 @@ } } - public void run_in_lock(Luan luan,LuanFunction fn) throws IOException, LuanException { + public void run_in_lock(LuanFunction fn) throws IOException, LuanException { if( writeLock.isHeldByCurrentThread() ) throw new RuntimeException(); writeLock.lock(); try { synchronized(this) { - fn.call(luan); + fn.call(); } } finally { wrote(); @@ -318,7 +318,7 @@ try { String dir = fileDir.toString(); LuanTable fileNames = new LuanTable(luan,new ArrayList(ic.getFileNames())); - return fn.call(luan,new Object[]{dir,fileNames}); + return fn.call(dir,fileNames); } finally { snapshotDeletionPolicy.release(ic); } @@ -352,13 +352,14 @@ final IndexSearcher searcher; int docID; - DocFn(IndexSearcher searcher) { + DocFn(Luan luan,IndexSearcher searcher) { + super(luan); this.searcher = searcher; } - @Override public Object call(Luan luan,Object[] args) throws LuanException { + @Override public Object call(Object[] args) throws LuanException { try { - return toTable(luan,searcher.doc(docID)); + return toTable(luan(),searcher.doc(docID)); } catch(IOException e) { throw new LuanException(e); } @@ -413,12 +414,12 @@ if( fn!=null && n==null ) { if( sortStr != null ) throw new LuanException("sort must be nil when n is nil"); - final DocFn docFn = new DocFn(searcher); + final DocFn docFn = new DocFn(luan,searcher); MyCollector col = new MyCollector() { @Override public void collect(int doc) { try { docFn.docID = docBase + doc; - fn.call(luan,new Object[]{++i,docFn}); + fn.call(++i,docFn); } catch(LuanException e) { throw new LuanRuntimeException(e); } @@ -439,10 +440,10 @@ Sort sort = sortStr==null ? null : SaneQueryParser.parseSort(mfp,sortStr); TopDocs td = sort==null ? searcher.search(query,n) : searcher.search(query,n,sort); final ScoreDoc[] scoreDocs = td.scoreDocs; - DocFn docFn = new DocFn(searcher); + DocFn docFn = new DocFn(luan,searcher); for( int i=0; i<scoreDocs.length; i++ ) { docFn.docID = scoreDocs[i].doc; - fn.call(luan,new Object[]{i+1,docFn}); + fn.call(i+1,docFn); } return td.totalHits; } finally { @@ -451,13 +452,13 @@ } } - public Object search_in_transaction(Luan luan,LuanFunction fn) throws LuanException, IOException { + public Object search_in_transaction(LuanFunction fn) throws LuanException, IOException { if( threadLocalSearcher.get() != null ) throw new LuanException("can't nest search_in_transaction calls"); IndexSearcher searcher = openSearcher(); threadLocalSearcher.set(searcher); try { - return fn.call(luan); + return fn.call(); } finally { threadLocalSearcher.set(null); close(searcher); @@ -588,14 +589,14 @@ } }; - public LuanFunction highlighter(Luan luan,String queryStr,LuanFunction formatter,final Integer fragmentSize,String dotdotdot) throws ParseException { + public LuanFunction highlighter(String queryStr,LuanFunction formatter,final Integer fragmentSize,String dotdotdot) throws ParseException { Query query = SaneQueryParser.parseQuery(mfp,queryStr); Formatter fmt = new Formatter() { public String highlightTerm(String originalText,TokenGroup tokenGroup) { if( tokenGroup.getTotalScore() <= 0 ) return originalText; try { - return (String)Luan.first(formatter.call(luan,new Object[]{originalText})); + return (String)Luan.first(formatter.call(originalText)); } catch(LuanException e) { throw new LuanRuntimeException(e); } @@ -607,8 +608,8 @@ chooser.setTextFragmenter( new SimpleSpanFragmenter(queryScorer,fragmentSize) ); final Highlighter hl = new Highlighter(fmt,queryScorer); hl.setTextFragmenter( new NullFragmenter() ); - return new LuanFunction() { - @Override public String call(Luan luan,Object[] args) throws LuanException { + return new LuanFunction(false) { // ??? + @Override public String call(Object[] args) throws LuanException { String text = (String)args[0]; try { if( chooser != null ) {