Mercurial Hosting > luan
diff lucene/src/luan/modules/lucene/LuceneIndex.java @ 620:89eb02f9827f
add Lucene all_search_terms_must_match()
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 04 Jan 2016 17:27:36 -0700 |
parents | 5e495e4e560b |
children | fd15da41afca |
line wrap: on
line diff
--- a/lucene/src/luan/modules/lucene/LuceneIndex.java Sun Jan 03 02:03:54 2016 -0700 +++ b/lucene/src/luan/modules/lucene/LuceneIndex.java Mon Jan 04 17:27:36 2016 -0700 @@ -49,6 +49,7 @@ import org.apache.lucene.search.ScoreDoc; import org.apache.lucene.search.Collector; import org.apache.lucene.search.Scorer; +import org.apache.lucene.search.BooleanClause; import sane.lucene.queryparser.SaneQueryParser; import sane.lucene.queryparser.FieldParser; import sane.lucene.queryparser.MultiFieldParser; @@ -84,6 +85,7 @@ private boolean isClosed = false; private final MultiFieldParser mfp; public final LuanTable indexed_only_fields = new LuanTable(); + public BooleanClause.Occur defaultOccur = BooleanClause.Occur.SHOULD; public LuceneIndex(LuanState luan,String indexDirStr,FieldParser defaultFieldParser,String[] defaultFields) throws LuanException, IOException { mfp = defaultFieldParser==null ? new MultiFieldParser() : new MultiFieldParser(defaultFieldParser,defaultFields); @@ -130,7 +132,7 @@ } public void delete(LuanState luan,String queryStr) throws LuanException, IOException, ParseException { - Query query = SaneQueryParser.parseQuery(mfp,queryStr); + Query query = SaneQueryParser.parseQuery(mfp,queryStr,defaultOccur); boolean commit = !writeLock.isHeldByCurrentThread(); writeLock.lock(); @@ -344,7 +346,7 @@ public int advanced_search( final LuanState luan, String queryStr, LuanFunction fn, Integer n, String sortStr ) throws LuanException, IOException, ParseException { Utils.checkNotNull(luan,queryStr); - Query query = SaneQueryParser.parseQuery(mfp,queryStr); + Query query = SaneQueryParser.parseQuery(mfp,queryStr,defaultOccur); IndexSearcher searcher = threadLocalSearcher.get(); boolean inTransaction = searcher != null; if( !inTransaction )