From 012d75d36d6da8b7e5b0fb7ab0b3f25c0952833e Mon Sep 17 00:00:00 2001 From: Kevin Risden Date: Tue, 4 Oct 2016 09:51:16 -0500 Subject: [PATCH 01/18] SOLR-9597: Add setReadOnly(String ...) to ConnectionImpl --- solr/CHANGES.txt | 2 ++ .../apache/solr/client/solrj/io/sql/ConnectionImpl.java | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 11687bb3537..3d024566ee6 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -183,6 +183,8 @@ Other Changes * SOLR-8332: Factor HttpShardHandler[Factory]'s url shuffling out into a ReplicaListTransformer class. (Christine Poerschke, Noble Paul) +* SOLR-9597: Add setReadOnly(String ...) to ConnectionImpl (Kevin Risden) + ================== 6.3.0 ================== Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release. diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/ConnectionImpl.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/ConnectionImpl.java index 5139527f181..f7feafc62ca 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/ConnectionImpl.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/ConnectionImpl.java @@ -155,6 +155,15 @@ class ConnectionImpl implements Connection { } + /* + * When using OpenLink ODBC-JDBC bridge on Windows, it runs the method ConnectionImpl.setReadOnly(String ...). + * The spec says that setReadOnly(boolean ...) is required. This causes the ODBC-JDBC bridge to fail on Windows. + * OpenLink case: http://support.openlinksw.com/support/techupdate.vsp?c=21881 + */ + public void setReadOnly(String readOnly) throws SQLException { + + } + @Override public boolean isReadOnly() throws SQLException { return true; From 6ec68ddbe07804663fef3a4b8a849e8bacf20d64 Mon Sep 17 00:00:00 2001 From: Mike McCandless Date: Wed, 16 Nov 2016 04:53:50 -0500 Subject: [PATCH 02/18] LUCENE-7562: don't throw NPE when encountering a level 2 ghost field --- lucene/CHANGES.txt | 3 ++ .../document/CompletionFieldsConsumer.java | 4 ++ .../document/TestPrefixCompletionQuery.java | 49 ++++++++++++++++--- 3 files changed, 49 insertions(+), 7 deletions(-) diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt index bdc118b95f2..4ef348c0f2c 100644 --- a/lucene/CHANGES.txt +++ b/lucene/CHANGES.txt @@ -65,6 +65,9 @@ Bug Fixes * LUCENE-7547: JapaneseTokenizerFactory was failing to close the dictionary file it opened (Markus via Mike McCandless) +* LUCENE-7562: CompletionFieldsConsumer sometimes throws + NullPointerException on ghost fields (Oliver Eilhard via Mike McCandless) + Improvements * LUCENE-6824: TermAutomatonQuery now rewrites to TermQuery, diff --git a/lucene/suggest/src/java/org/apache/lucene/search/suggest/document/CompletionFieldsConsumer.java b/lucene/suggest/src/java/org/apache/lucene/search/suggest/document/CompletionFieldsConsumer.java index 672c5824463..9df9d605197 100644 --- a/lucene/suggest/src/java/org/apache/lucene/search/suggest/document/CompletionFieldsConsumer.java +++ b/lucene/suggest/src/java/org/apache/lucene/search/suggest/document/CompletionFieldsConsumer.java @@ -86,6 +86,10 @@ final class CompletionFieldsConsumer extends FieldsConsumer { for (String field : fields) { CompletionTermWriter termWriter = new CompletionTermWriter(); Terms terms = fields.terms(field); + if (terms == null) { + // this can happen from ghost fields, where the incoming Fields iterator claims a field exists but it does not + continue; + } TermsEnum termsEnum = terms.iterator(); // write terms diff --git a/lucene/suggest/src/test/org/apache/lucene/search/suggest/document/TestPrefixCompletionQuery.java b/lucene/suggest/src/test/org/apache/lucene/search/suggest/document/TestPrefixCompletionQuery.java index 20561b3d37f..f5bacefc638 100644 --- a/lucene/suggest/src/test/org/apache/lucene/search/suggest/document/TestPrefixCompletionQuery.java +++ b/lucene/suggest/src/test/org/apache/lucene/search/suggest/document/TestPrefixCompletionQuery.java @@ -24,9 +24,12 @@ import org.apache.lucene.analysis.MockAnalyzer; import org.apache.lucene.analysis.MockTokenFilter; import org.apache.lucene.analysis.MockTokenizer; import org.apache.lucene.document.Document; +import org.apache.lucene.document.Field; import org.apache.lucene.document.NumericDocValuesField; +import org.apache.lucene.document.StringField; import org.apache.lucene.index.DirectoryReader; import org.apache.lucene.index.DocValues; +import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.LeafReaderContext; import org.apache.lucene.index.RandomIndexWriter; import org.apache.lucene.index.SortedNumericDocValues; @@ -38,7 +41,6 @@ import org.apache.lucene.util.FixedBitSet; import org.apache.lucene.util.LuceneTestCase; import org.junit.After; import org.junit.Before; -import org.junit.Test; import static org.apache.lucene.search.DocIdSetIterator.NO_MORE_DOCS; import static org.apache.lucene.search.suggest.document.TestSuggestField.Entry; @@ -112,7 +114,6 @@ public class TestPrefixCompletionQuery extends LuceneTestCase { dir.close(); } - @Test public void testSimple() throws Exception { Analyzer analyzer = new MockAnalyzer(random()); RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwcWithSuggestField(analyzer, "suggest_field")); @@ -141,7 +142,6 @@ public class TestPrefixCompletionQuery extends LuceneTestCase { iw.close(); } - @Test public void testMostlyFilteredOutDocuments() throws Exception { Analyzer analyzer = new MockAnalyzer(random()); RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwcWithSuggestField(analyzer, "suggest_field")); @@ -188,7 +188,6 @@ public class TestPrefixCompletionQuery extends LuceneTestCase { iw.close(); } - @Test public void testDocFiltering() throws Exception { Analyzer analyzer = new MockAnalyzer(random()); RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwcWithSuggestField(analyzer, "suggest_field")); @@ -230,7 +229,6 @@ public class TestPrefixCompletionQuery extends LuceneTestCase { iw.close(); } - @Test public void testAnalyzerWithoutPreservePosAndSep() throws Exception { Analyzer analyzer = new MockAnalyzer(random(), MockTokenizer.WHITESPACE, true, MockTokenFilter.ENGLISH_STOPSET); CompletionAnalyzer completionAnalyzer = new CompletionAnalyzer(analyzer, false, false); @@ -254,7 +252,6 @@ public class TestPrefixCompletionQuery extends LuceneTestCase { iw.close(); } - @Test public void testAnalyzerWithSepAndNoPreservePos() throws Exception { Analyzer analyzer = new MockAnalyzer(random(), MockTokenizer.WHITESPACE, true, MockTokenFilter.ENGLISH_STOPSET); CompletionAnalyzer completionAnalyzer = new CompletionAnalyzer(analyzer, true, false); @@ -278,7 +275,6 @@ public class TestPrefixCompletionQuery extends LuceneTestCase { iw.close(); } - @Test public void testAnalyzerWithPreservePosAndNoSep() throws Exception { Analyzer analyzer = new MockAnalyzer(random(), MockTokenizer.WHITESPACE, true, MockTokenFilter.ENGLISH_STOPSET); CompletionAnalyzer completionAnalyzer = new CompletionAnalyzer(analyzer, false, true); @@ -302,4 +298,43 @@ public class TestPrefixCompletionQuery extends LuceneTestCase { iw.close(); } + public void testGhostField() throws Exception { + Analyzer analyzer = new MockAnalyzer(random()); + IndexWriter iw = new IndexWriter(dir, iwcWithSuggestField(analyzer, "suggest_field", "suggest_field2", "suggest_field3")); + + Document document = new Document(); + document.add(new StringField("id", "0", Field.Store.NO)); + document.add(new SuggestField("suggest_field", "apples", 3)); + iw.addDocument(document); + // need another document so whole segment isn't deleted + iw.addDocument(new Document()); + iw.commit(); + + document = new Document(); + document.add(new StringField("id", "1", Field.Store.NO)); + document.add(new SuggestField("suggest_field2", "apples", 3)); + iw.addDocument(document); + iw.commit(); + + iw.deleteDocuments(new Term("id", "0")); + // first force merge is OK + iw.forceMerge(1); + + // second force merge causes MultiFields to include "suggest_field" in its iteration, yet a null Terms is returned (no documents have + // this field anymore) + iw.addDocument(new Document()); + iw.forceMerge(1); + + DirectoryReader reader = DirectoryReader.open(iw); + SuggestIndexSearcher indexSearcher = new SuggestIndexSearcher(reader); + + PrefixCompletionQuery query = new PrefixCompletionQuery(analyzer, new Term("suggest_field", "app")); + assertEquals(0, indexSearcher.suggest(query, 3).totalHits); + + query = new PrefixCompletionQuery(analyzer, new Term("suggest_field2", "app")); + assertSuggestions(indexSearcher.suggest(query, 3), new Entry("apples", 3)); + + reader.close(); + iw.close(); + } } From 24b5a624bb1c2f0767cc1e0e8c6f10ec999d4a4c Mon Sep 17 00:00:00 2001 From: Mike McCandless Date: Wed, 16 Nov 2016 05:18:39 -0500 Subject: [PATCH 03/18] LUCENE-7652: improve BasePostingsFormatTestCase with a level 2 ghost test --- .../index/BasePostingsFormatTestCase.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java b/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java index d6cf1e5e56d..1155a7365c3 100644 --- a/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java +++ b/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java @@ -40,6 +40,8 @@ import org.apache.lucene.document.StringField; import org.apache.lucene.document.TextField; import org.apache.lucene.index.TermsEnum.SeekStatus; import org.apache.lucene.search.DocIdSetIterator; +import org.apache.lucene.search.IndexSearcher; +import org.apache.lucene.search.TermQuery; import org.apache.lucene.store.Directory; import org.apache.lucene.store.IOContext; import org.apache.lucene.util.BytesRef; @@ -312,6 +314,49 @@ public abstract class BasePostingsFormatTestCase extends BaseIndexFileFormatTest dir.close(); } + // tests that level 2 ghost fields still work + public void testLevel2Ghosts() throws Exception { + Directory dir = newDirectory(); + + Analyzer analyzer = new MockAnalyzer(random()); + IndexWriterConfig iwc = newIndexWriterConfig(null); + iwc.setCodec(getCodec()); + iwc.setMergePolicy(newLogMergePolicy()); + IndexWriter iw = new IndexWriter(dir, iwc); + + Document document = new Document(); + document.add(new StringField("id", "0", Field.Store.NO)); + document.add(new StringField("suggest_field", "apples", Field.Store.NO)); + iw.addDocument(document); + // need another document so whole segment isn't deleted + iw.addDocument(new Document()); + iw.commit(); + + document = new Document(); + document.add(new StringField("id", "1", Field.Store.NO)); + document.add(new StringField("suggest_field2", "apples", Field.Store.NO)); + iw.addDocument(document); + iw.commit(); + + iw.deleteDocuments(new Term("id", "0")); + // first force merge creates a level 1 ghost field + iw.forceMerge(1); + + // second force merge creates a level 2 ghost field, causing MultiFields to include "suggest_field" in its iteration, yet a null Terms is returned (no documents have + // this field anymore) + iw.addDocument(new Document()); + iw.forceMerge(1); + + DirectoryReader reader = DirectoryReader.open(iw); + IndexSearcher indexSearcher = new IndexSearcher(reader); + + assertEquals(1, indexSearcher.count(new TermQuery(new Term("id", "1")))); + + reader.close(); + iw.close(); + dir.close(); + } + private static class TermFreqs { long totalTermFreq; int docFreq; From d675518da418af68645c48a5254d70b081d76c3d Mon Sep 17 00:00:00 2001 From: Mike McCandless Date: Wed, 16 Nov 2016 06:10:25 -0500 Subject: [PATCH 04/18] LUCENE-7560: make QueryBuilder.createFieldQuery not final anymore --- lucene/CHANGES.txt | 5 +++++ .../core/src/java/org/apache/lucene/util/QueryBuilder.java | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt index 4ef348c0f2c..28ec5f0aa2e 100644 --- a/lucene/CHANGES.txt +++ b/lucene/CHANGES.txt @@ -96,6 +96,11 @@ Improvements * LUCENE-7537: Index time sorting now supports multi-valued sorts using selectors (MIN, MAX, etc.) (Jim Ferenczi via Mike McCandless) +* LUCENE-7560: QueryBuilder.createFieldQuery is no longer final, + giving custom query parsers subclassing QueryBuilder more freedom to + control how text is analyzed and converted into a query (Matt Weber + via Mike McCandless) + Other * LUCENE-7546: Fixed references to benchmark wikipedia data and the Jenkins line-docs file diff --git a/lucene/core/src/java/org/apache/lucene/util/QueryBuilder.java b/lucene/core/src/java/org/apache/lucene/util/QueryBuilder.java index 309150e2600..977af5387e6 100644 --- a/lucene/core/src/java/org/apache/lucene/util/QueryBuilder.java +++ b/lucene/core/src/java/org/apache/lucene/util/QueryBuilder.java @@ -196,7 +196,7 @@ public class QueryBuilder { * @param quoted true if phrases should be generated when terms occur at more than one position * @param phraseSlop slop factor for phrase/multiphrase queries */ - protected final Query createFieldQuery(Analyzer analyzer, BooleanClause.Occur operator, String field, String queryText, boolean quoted, int phraseSlop) { + protected Query createFieldQuery(Analyzer analyzer, BooleanClause.Occur operator, String field, String queryText, boolean quoted, int phraseSlop) { assert operator == BooleanClause.Occur.SHOULD || operator == BooleanClause.Occur.MUST; // Use the analyzer to get all the tokens, and then build an appropriate From 53a0748f4345b540da598c25500f4fc402dbbf38 Mon Sep 17 00:00:00 2001 From: markrmiller Date: Wed, 16 Nov 2016 10:11:41 -0500 Subject: [PATCH 05/18] SOLR-9284: Reduce off heap cache size. --- .../org/apache/solr/store/blockcache/BlockDirectoryTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solr/core/src/test/org/apache/solr/store/blockcache/BlockDirectoryTest.java b/solr/core/src/test/org/apache/solr/store/blockcache/BlockDirectoryTest.java index 5e4f1c59a23..4272c248b8c 100644 --- a/solr/core/src/test/org/apache/solr/store/blockcache/BlockDirectoryTest.java +++ b/solr/core/src/test/org/apache/solr/store/blockcache/BlockDirectoryTest.java @@ -114,7 +114,7 @@ public class BlockDirectoryTest extends SolrTestCaseJ4 { if (random().nextBoolean()) { Metrics metrics = new Metrics(); int blockSize = 8192; - int slabSize = blockSize * 32768; + int slabSize = blockSize * 16384; long totalMemory = 1 * slabSize; BlockCache blockCache = new BlockCache(metrics, true, totalMemory, slabSize, blockSize); BlockDirectoryCache cache = new BlockDirectoryCache(blockCache, "/collection1", metrics, true); From 774e31b6dd7184fb6d43fca83e32fcb46da32e20 Mon Sep 17 00:00:00 2001 From: Mike McCandless Date: Wed, 16 Nov 2016 11:54:22 -0500 Subject: [PATCH 06/18] add basic sorted index bwc test --- .../index/TestBackwardsCompatibility.java | 82 ++++++++++++++++++ .../org/apache/lucene/index/sorted.6.2.0.zip | Bin 0 -> 157007 bytes .../org/apache/lucene/index/sorted.6.2.1.zip | Bin 0 -> 100974 bytes .../org/apache/lucene/index/sorted.6.3.0.zip | Bin 0 -> 71090 bytes 4 files changed, 82 insertions(+) create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/index/sorted.6.2.0.zip create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/index/sorted.6.2.1.zip create mode 100644 lucene/backward-codecs/src/test/org/apache/lucene/index/sorted.6.3.0.zip diff --git a/lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java b/lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java index d77f84bf24f..d924238fd88 100644 --- a/lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java +++ b/lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java @@ -25,13 +25,18 @@ import java.lang.reflect.Modifier; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.text.ParsePosition; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.Date; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Random; +import java.util.TimeZone; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -62,6 +67,8 @@ import org.apache.lucene.legacy.LegacyNumericUtils; import org.apache.lucene.search.DocIdSetIterator; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.ScoreDoc; +import org.apache.lucene.search.Sort; +import org.apache.lucene.search.SortField; import org.apache.lucene.search.TermQuery; import org.apache.lucene.store.BaseDirectoryWrapper; import org.apache.lucene.store.Directory; @@ -165,6 +172,57 @@ public class TestBackwardsCompatibility extends LuceneTestCase { // a test option to not remove temp dir...): Thread.sleep(100000); } + + // ant test -Dtestcase=TestBackwardsCompatibility -Dtestmethod=testCreateSortedIndex -Dtests.codec=default -Dtests.useSecurityManager=false -Dtests.bwcdir=/tmp/sorted + public void testCreateSortedIndex() throws Exception { + + Path indexDir = getIndexDir().resolve("sorted"); + Files.deleteIfExists(indexDir); + Directory dir = newFSDirectory(indexDir); + + LogByteSizeMergePolicy mp = new LogByteSizeMergePolicy(); + mp.setNoCFSRatio(1.0); + mp.setMaxCFSSegmentSizeMB(Double.POSITIVE_INFINITY); + MockAnalyzer analyzer = new MockAnalyzer(random()); + analyzer.setMaxTokenLength(TestUtil.nextInt(random(), 1, IndexWriter.MAX_TERM_LENGTH)); + + // TODO: remove randomness + IndexWriterConfig conf = new IndexWriterConfig(analyzer); + conf.setMergePolicy(mp); + conf.setUseCompoundFile(false); + conf.setIndexSort(new Sort(new SortField("dateDV", SortField.Type.LONG, true))); + IndexWriter writer = new IndexWriter(dir, conf); + LineFileDocs docs = new LineFileDocs(random()); + SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd", Locale.ROOT); + parser.setTimeZone(TimeZone.getTimeZone("UTC")); + ParsePosition position = new ParsePosition(0); + Field dateDVField = null; + for(int i=0;i<50;i++) { + Document doc = docs.nextDoc(); + String dateString = doc.get("date"); + + position.setIndex(0); + Date date = parser.parse(dateString, position); + if (position.getErrorIndex() != -1) { + throw new AssertionError("failed to parse \"" + dateString + "\" as date"); + } + if (position.getIndex() != dateString.length()) { + throw new AssertionError("failed to parse \"" + dateString + "\" as date"); + } + if (dateDVField == null) { + dateDVField = new NumericDocValuesField("dateDV", 0l); + doc.add(dateDVField); + } + dateDVField.setLongValue(date.getTime()); + if (i == 250) { + writer.commit(); + } + writer.addDocument(doc); + } + writer.forceMerge(1); + writer.close(); + dir.close(); + } private void updateNumeric(IndexWriter writer, String id, String f, String cf, long value) throws IOException { writer.updateNumericDocValue(new Term("id", id), f, value); @@ -1483,6 +1541,30 @@ public class TestBackwardsCompatibility extends LuceneTestCase { dir.close(); } } + + public void testSortedIndex() throws Exception { + String[] versions = new String[] {"6.2.0", "6.2.1", "6.3.0"}; + for(String version : versions) { + Path path = createTempDir("sorted"); + InputStream resource = TestBackwardsCompatibility.class.getResourceAsStream("sorted." + version + ".zip"); + assertNotNull("Sorted index index " + version + " not found", resource); + TestUtil.unzip(resource, path); + + // TODO: more tests + Directory dir = newFSDirectory(path); + + DirectoryReader reader = DirectoryReader.open(dir); + assertEquals(1, reader.leaves().size()); + Sort sort = reader.leaves().get(0).reader().getIndexSort(); + assertNotNull(sort); + assertEquals("!", sort.toString()); + reader.close(); + + // this will confirm the docs really are sorted: + TestUtil.checkIndex(dir); + dir.close(); + } + } static long getValue(BinaryDocValues bdv) throws IOException { BytesRef term = bdv.binaryValue(); diff --git a/lucene/backward-codecs/src/test/org/apache/lucene/index/sorted.6.2.0.zip b/lucene/backward-codecs/src/test/org/apache/lucene/index/sorted.6.2.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..b595d9b4106a683fa24acc6f0fcc35f62f954beb GIT binary patch literal 157007 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�Ya2Nk>*_|E~@^8PRR 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 literal 0 HcmV?d00001 diff --git a/lucene/backward-codecs/src/test/org/apache/lucene/index/sorted.6.3.0.zip b/lucene/backward-codecs/src/test/org/apache/lucene/index/sorted.6.3.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..6d89d781ef29075d6140702e5dd2c80e3c15a5f6 GIT binary patch literal 71090 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%0AMQVRa#{c5++KXrOqTsm8S9hX zw!J4iPj^;+er2kR4`;q?r3_QaH z|0jF!)8PLJd{vHdhCR6YVM}^_vfF|`=y3nhlWVj7pZ5L(K91_@8^_O`vc1f%R=wR-msPy0 zX4%H}%H6ohl@1zdN77i^yt6AKks{lel2B|)NFX6L0YWnd8ygHJc38-hgdjs834|2W zk~~QWGASe>3IB6vcO}`7(BPA`J79Ry(|Gi0+-FTV%-;6oj!JgqF`W(= zJsj1k>?uYM>7mBAf7*Unr>n!`PqFtkvTxU6^AEGZMj}Yl)5AIJ`(d5tj$~gvpHX|7 zYM;WhuEOC*8e{EX&q4~vqioiUA8@9RJcTVe#9EtsINcg->wcVInfpnH^|rH@*1NDV z=P>J0{P76uC;e3)&i#aAtV8sp*Xj*Az$TbIedGo_^7zRe3#Uk0 z+5AS)nS@Bv1jp<99IyW(oJp3MAJa$psp}>W^89p?KKH8z>k&38`rz*%k6SYw0DEhP zF}?pd|HSyCuA?}vN7>6}Ch?JzkC8D$c&_x8jp;);hIqa`dxYKb22c9iVSLgP?Eb7pjd-)8I%hbbpLo>F7|#J5 z)JJjexc=M2*}aq3nV)2hVHesb_i(B;8;%XQZKjJIeZ!ZJn8KlYMzCP0iNy_R;ZgoV;FS({-0Y|7wx1p%tv)$@Kk!}bfUptcj2@iPmkWi>CUmUiGFpKLs^fH zGfu{&#SR|F&vRU#b4)@WA7_JsgVLOP=D`e4`h=qof6`GlMpm}}(D-9ILp-j_E*$5{ zz2j!~0{a<9DIwAn4m-Q+8@_CQ8@t#wT`+LmwAnY+ul%BYCIg!$C$E)siMk(Ka4^ks zi_#(%-}>6|LwXah(-|QWiYN2a8C_P8Ie2#8JZjT_IF8+kZ|-1UkgC!E;L*(2G)6eN z!>*6W0iCVyYLv3ykV#(4n&i+A9M$iIed|eo#c8s0N{;7d4ql~80VV@*a2g9Hj~>n( zeKb8j79C))Y5lOk?rh5l2BeRZ*SgZ&8(Wse4lZo=Q@RYvjAWBz`jL~@dDvIHU~G!< zpWGp^*Ky*5AHtqImS!Z)7M<~rvBpTO;Y{x87hv1c2ac!Tj^PP|-h(^b`er8%(;+q{ zOekd!9oBIVYt=)J%pumO{gW4EdPL`kHht&Xbo(6o2<*&```O7c{)Medhbo4T9}nJX zzOH0C!SQFXd+w8FH+R;re0l~Or=L4{Gq%(5SCJokN_216X#?pjZ*uSCj``E}oAh^n zQYX%*(}$W1rv2XR*om8~#ve9dFS>U!;$;BQqJxhb{WCLY8A{iGdEB9Yjz6t`JFb62 zqIc_CM#~-PJ)~@%(OjuRq5WwN&hDDQua9RZR~|c-o(VgecVdef3_7g0`)KA$)*3_! z*^x|3$cmjhl**72yZa3NNE**Dyv|VE_|xoKowOg$ybV65WT!rpGV-9gihVtt7OH8w zYsB}tHhopuPKImn$HQq+)iw<{OfmT>rvHghw|k%YKT33fKt49=liXZ56D)A1DULs# z#p_2_f5m9MGQ%;jGjg*py-Odq1L>i#rjP2AV`?9}{K^cMKc0bQX?oysR78Dj*(b_d zrg7}RqsK*kj75EfjaO!Gu1{n(&QH50_jR6uH#1+U&#p0cE#vD(hNyAmjf_R$D7tp( z;B33ztGc9i?n-Md$bhb4=2tN= zXuV3utU3m8UCp40{=6&G8i1GG`SD4b7)vuie9|O3F4fP-Dl>ZPj!uI)SEscJeAo0I zLVW8rIu<^_5Db4U_K{9QI+rA9%>pYh%s$#li_qfp`9=I_Y35s6 z+B?sjf77voC980LVn?pObY79(8EJ#_WX3>_D+E%iJJ%82a^rNSGl82x&+Vb_r1Ss! zvj*$5dvc! zeE7)`KC&m4_sP=B8;ue@;kKT{g)7zD*r0!!bXSOiIe+H(=-pfR*e@@1Y)#g(B?yaN zFy6K`DF@?G2{$2@9M^+8k%aEpC3*&^V@z}%Z&&lvS~z-<8(ximKsu6dgp`^N_x@<5+kW2 zdFkEMku6HZ!@PjmBC;GYj6{<&rjN9-AQL;54x%%h*&Fk3F+P}6q%SknWmadaa7@ef zHFK6p*W?0{cbxo1G?>#%O;k5`r!y>YGq2=5qxxDK3tq?@WeGOqP_G;rDwww4Xc}d{ zOQY(Rh%lOTk0$%rLO`_HGMWr3Vb5rC0B^zUl!nn{82`s9{%5u02Uz|zwQnd_CB+hPyMon zAHT1PKRM;DH=)g9{{Zf&=Ve11ng-jEX6UAh0}P zOhGKZh4Uak)L+FvJH5+#+0S-ov5sk(o!P~A?VQ}5JOMkWCB4gDZWi0^)X&vVn5}nh zYi1Wu@MU&qVFyg@`i;nkCpg>W`yqwp?>GCw2Q#4=nxGLHn8jA8go?$_5mwNe^CM%& z&lb+#%K6(ke>>;z;QX^Ve<$akOZTPjFYwO_J zW^rwuT-$8YPCCde(n)4ZXE(un*xZ1F$-1W&N4^rNfQJgCgA$~Kd>md++vkfqSufMn zJ#mfp>Q#i8({Vq`1sGIl6YYw`kg2d0O)3v(&R{+v$RoN|EZ#s>nhXxB>2+V-TOgv? zx_ViDv9P{qSktBFTBY6iBgO5eIPx;OI+Ndk)&&(-(4zjLMVay?_ft7_e>}>ZN|G$T zmnsR04PYLHkv{wup~%hTkTQqHqR8Ts5rw7~X;41USSYDcg*idUcy3)VbwA#`{(!J3 z8V=*LOZgx5`zkjD9(euTn(+99ul(S_g@qE22 zCf|9|ABd)7@bK!5_MU-Ns^4)2|=H%NYG^Qxk)R<9t}6 zFL2(=APrrgx+gf39n@#cfU4<7`_tKnwIR8;f&JL4ga*$30ZA{LKRz2#-LP0y=y~UD zqH364nAG&DfrAJHXjn~PBja>QT!#WI{=%DXMLL;2UG)jcm`0Z~=X6AK37p$>i%f@- z;aE(LByo}sA)&~6R-I5tW>I)aJ@JqJm7U7m(v+d-U_#CuOUPQ3ZP}UW39sTk@GGmn zK2_19fFnO&_Ge^1>% z5TCj_CXZ;06(NJs>%PQv0?J!Cf^8j1BoWKfx`>h-jv`{MU%85DyLAW=>gEvYYGl}yO#87|Xk`nAG3{Umfx%bZoI zyOBX7SKhcqNg$?0rKxT;>u79kbb5{f=ej9WT<`791Rt{d#WInMI4g9zWOcgg zoBzofQ@g3Xbn5hiZbnutidLgRnc`a^Lt)yL)SVn;k;8~3>98z^)S`bbN86bk^`SH* zC^0#dkQFG*yePzKP>cyE$oweas!_T&pcEBR%mK>KO8@7*%59`>WaI3Gwkh$UQCSYN(5Xn?MjX>nYClRoIucY_C|8&f+eY2lQ;W$V z9Qh>nFit#GkK)uj6;+A5nS;;}DiUg%ZsS{`%!5c}L!Q0}XF?PwBXcT}DXXQ6^H3eu z0}#&`kdlqbcqHA|ab;>WBAT)#T5sBz@uahERzgU(NNVw*Wpgx}OG?CDMaySUoi@_t zN<5B?CmUbu-KHOJqUS1%h#9Y9tVXY5z*rG;wbh9|NxNALH|s*0_N%xb)dq@8ld=hv zpsD+r%x0Ao;&J4fD1@<>w;-LVv`xP?TZ2&;DYrJ)`Rfh(bDQ@OeY*r1C!1}^5)#cvF$$LdpyBJ)tNA@H-9&AAnHPp&G$k8S zM29n;JM8V)mqb#hf~g@yp~3V_=H#f4?l5y?PPZw+93a!l!`K1VMty?nUt)S_aB^7Z za7lI~p}V!}(Zb9PI>SJbI}WFPqt)~+n)G|5ziP@5K2krRHL)Lc>Xfx~&P!}dNR1A$ zyoeE+Wmas8=u8x;nDvLoJk#`E9m?iOjL^D;sDAi-?KAPU+v;`3K9xH1zkGQ|=JHr{ zaEpwrxp{`(-^*A6G{lE-=G#W~TFG=Vo5Be7f;t&15$|RCsVi`1WGNTfAj)S39kQg0 z0+W5!rIdoN$mlp-?f{|L7Tq;C$cA&{Ac}yXJVIM$(Q{>1oN=W2o-}zf>=IEfM|R4P zkgDl7Ok)Ig;Lx9+xi+jQtbF*#TAIC8-NHDl zGaJ$xX-kWK$Cg&Qn#GK=>C|4|EbFaA-J32(tzDJlQ5skEQYX{qu%g3{?yR(lrl+wI zZOl$uBq~HX(P1T+dWiZv5!bN9ce?Ot4oyDcT!c*7a6~ztZtV2ZJ=$c)r|w|@Ar?z8 zw;x2~_zihQZ(J`_ige6+oBhIQ(BHwpqn3WyE^hK^t5~u>mKikNdX|U}86g9-G{mev z>6QEeP*?y9-Xj#H8bUu7>w#FFwSfVdG?2?) z+K6+29YTPG2f{KAkPb}rhu|I8E?TYcM(LzIXYFJ!tj?s9V-jHVl$Rk@hY--kqe=`} z=N1}`QI?2khyjL9U6u`EKd)znZuROiUni3{T*D$purVx}p2kx5=p(9^LP!_O)wL{| zx;vhxayApAVXEg5!U2vV;SEi_8Y&=+A*Gc*b{-;3rUE9?g%$ME!z_QokP?p|B3Y=g zUnxuJPxawLVUy@p^q>npRIz$|PiFNmYkPkROjsMbrmy6-|2--9YX-+CJl)@hotDXZFu zeX*vbBI?SXc~Y4)Wto)YOhuAcgPN#IM(J$$F6v;I6??Qz$J3%NLF{J$XO7h*%4+s{ z6?8+IhRlGXlPKkIdlW%Lg-*U@B%m4;?)*_a_)>ooPtkQNdG;|CnR z;G}M4SEkp<)KlEC4~2b1&FT3W?F(}(C4Zb#G>&DoOY>PyRqSWrHj*@Dv5ql=r|f4a z2bsJa#%cZWaTnZ=xl_a1l=)EEOnrTT1*91zJlM}{_m@{U?kae0GX_-=N&68kLV735LR`YK8#NsQHD-_dH=Vt$|c**=~8P77; zi#l!Zr@DK*0~g?3F@+ZQX~Xq{#P z;E{QlvRZ?A(&8ZMCJ6JSUS`b5CCij*U_S$enVT4 z+&rxyWnPvAG-b*R=4R3i8>R)g8L~Cq4Emy3MRxpL`r?31&*{hte$4-nchvPx$EVq^ z9g|-r`&S94uoR?W&9h3sc2;-;)|(KcOSGoic9B zcifkjUnBCtgAQK#(CVHvo0^y{)PRsQZ<=MWV7ir1>d(OAx=#X&o++KcmPYAPR+lI_ z6A!v4Evcq~a8&b5*=sEWOy?^YoNg^V+x}-lXv|8G>*^ni>0l*3h6I(Bu*{ogw)RZ3 zo2zG;_41}!DLhlkPk}nkyjP@7w{{DvmZwfxj96{+@Zzbt^soO48Bz2}83&Zt&3`WA zGULdi*^2eCOGi?>^qG`SyjcsGy1wa18;icrf_sG=UAU*qjI)@IyllWCrxOFh0qLCQ z1#XMXZ;=N~TQZt0w?(mTVY*MBuKS3(rN*#D*NqHmON%LMY03En8-wFa!>wg#(n@NX z;)B*{_5k}C8iQrZ@MW2@23v=w45yYUOF=r-C9|D!ICVpxU|}{-E(UO+sK6rd3?bbB z>O4zZbAMcGw1g&g%yam&!=^rQhE7HLPCtI(+vcy8i^g>PV4gmD=}+6V!XEx?UN4U> z(9&Eqm$~K{_0voAd7DmQT#%i~uEp>0hO{^RKEJ+wM zmIYBapYW(8n!*`X(v&r};n9RCoLPpmOsxYM!)enCA5lWqX=WjT8A1f69~&aN7D=K! zYIt0<-+qQ&*_g36nJ0}|>HHq%Nll!K#zb9Xx1X_^Wz5+17XK55_{ji+Oa@93VVawq z@>}!sY*)dFLGpTuLaZBqZ}EtmLp>`aAb@- z7JcE+kuf}nqSn)CAwn2+GyC>H!EgCa$xwWjB%c5I8Ec!ZwExmr}o-_zbS<8tnz0SDizabj4 ziqmvIHge|P@ZZc|rFmJUD4m|SHp?3GvTCO*lV^`h&sJ}?W?Y&v=Vmm3+^kGZgVBo2 zS1wH{dZ8bLtn40K+pU5jy%1xaX7@K{)~+mx$t8u{Pc(qI5@#{fBd2)T$Hhuj|Ot57JQzEmT;5^GRZJsobyFRwm&!OUx zj0Ew&A|~0&zGccJbO!4Ac%6<<{=4=g^EhqDGD(_cmPKfPBr@( z##K>Yd@0i1P(RUZW|^{WxyO&4Z8j_V=SH!-PqwI8rYvffDT^Hc=Ge`P|0#z)>#zNv z{vv|1%kq0#nI2p&J)Zg5JeWDzOoVA>+^8R~(MiOX4H~!GA&ZpLwG=Xed(-~m5s~|$ zWZ(IMfp2|Wi0(3u{>b`v@n1bH9PzRj5u5ni|6*uqA(kn(Cku{h#_5W0F~0Q=18MsT zkEakHnGG$*+paN^^@ob_!2hx@&Ht=Xll+=1eEngQvF&j~@NwIgJ3Qe#ies;P6MwHC z-sk%%e-Gcnoux#xo&o*O&3`#jck{0x^XHCpzEZ#7N1^=ORmnbN2kmW(qkWs%ij}rl zPRQ(xO~Vg|o_+hsI~9L+HV%KU{e&fZ=4HPB)z127en->Yj{a+2NB;+%j{dL9(f@Th z`fs=#{Xh0N`hVnb^w0f`{@dCzx6fxf6vwEzvF52Zyb&Oi+)C*>}K@8 z(aY%HI2nC{kI{eC#pvI982$GgjQ*K_(b?`r|Hc#OUpfMPvLDd@q#Mw`@&d{_0ZsD( znsNcsJ%Ij+1JM6V{y%B=pZ~vi{`tSIKmVhyKmT>lpZ~*-KmVU_`}sfa_47aJ^z(mR zeo*QE-|X@8{}F$m|B}1U|EOZ@-)U%SxwV!XTe|V0#c!7eTHiir(H-Y}?ZHm|;+CCt zGoN{GM#V_=GxcSsQ-!iz;N9qwzHgRRlCi}AoAdWwnD@qaO5cZugU9{P{K-Ft%5Od| z`t7-b+gDoIP}5jfJ)^00KguY> z3NI}$D=jH5DlEv)%k|{AU6Rvbw^=P_{9`g24WhuR;o+a@n*0~Uzx;@4@`V}w+}Djl zff31h3^T^@+rQH0eV6&JfOkn{Q{l3k$(oQTK(uak#BLlSrMA2pcZ)@ImAgM6Im@i> zYly9a*0){p>6RH>&IMMkx}bJH5ocNi-eIr^20=8qjfJ+-`6VSY9afveG{abJ8m3~s zxzsMX9fcPc=heDgt(RPSe#Pdp*;3cl#8&OeugMc!OT_YxcAr$(Xcju#BHeifO|t`+ z8J8OKh-ukU8dw^%&8ajMl`g0zv30dQztda2@%)RzPZ4j`C7wl>UcAWSGI|P? z(1Odzs&2Q(kvnu9$@z5ohVl~UX30^qHZbdp#GZfA^<;x_=26mEL`tO|Y@@^Nf#RyU z&YAPgdAwh8Rh`F+rXq7yo~5X%NGSFgd8g2BwwJi9^A;87F`TUMq{*5tuTr+@{2F5mwaX? z-*T>(T#{Gm7in{Do7E5t^CE2>xW?t4=a&E3O$Gw~{tFxDva5?q@ zFy@=ZMyqRftxK%s_zKPff`R8PCbKoi=Hcg=oJikh!D8pF9B;7~`3+{#Y;s7eOm3bx zS$W%Rv#rGBG#ISJoXZI|v&EKQo$nR%%pC@c$FuE5Qcz&aIK&Gpxq78DDX8H+aZ{$jUawFoBBY_k;E^UJ!dUnZ{BwgRD=EU2qI zOq_LAqfp`y@Fl(ag1T-Lov7){Ckx&ds-W z<}239+SYtq0Z&ac*ZQkF3uk|xlr8Y*EdQ)nq87SsT%oOI4mUR}pTqamcZdaDx#f-` zldafhsj}1>X1H_h#!j)Ive=o^(7M=O!6MN`%i^5Sg7O?wnWglK73B*hbAxqp-i(@} zFB6k5$9zuL`IoM=Ra7=vY|9Mge8CFK;!?`5<=s}XpksNNxyKsVOJ;4#bI(s)B>Q#| zYx8AQC5FP%Vuv^?*{tnFbMh>W0Hqh!d1sL-zMH_gwq282N%nS2uV%<_Jcm7QzH{T&OT0HAl+vHuO%IY$x zxn7sq+_8|fmKxjgTN>Ssh38qT&RKL5nd8ZIG@Gf@v&maAw~X&>bodRXf}&i5rJ>4` z>#ewo6!xrM(QI`X>TI0S*;DS}jmB2qZd=}*JG&6X79S~JGT+z~=`^%1q%E80 z(T1wI2H@6KoWnUii@G;7NydtKxuzn~+~uq{n7I6fiDiPZtDz##w$9Klh#f_If7~Oi z?Q1Psvdq%r$up3W&YBAMs(F??IwOC!RFvyjve-J~{K_#hi(ApsSJqn*u4$M**IhUN z@=de2+~q}^@)s{&ls}`qWp!X?KN)UrY2?iY+h;hBkh9tIX^+!deSU2(vS&VEx6N#I zIA*Rv0c>US%#Zt}UM<6y=$O0=pxbzn5@% ztE(J>QM7v?SCDceMDX)!FS6?1cQEe`6lcx^>B?A| zLF6g9z*^(7HuIOxIrkE8ZcSe6tddzZ6-9i7Xz-fmiVp9pMeD;tk>qfT_Ck{cyiF?2 zv!hf6hgFnX9Jw9~Us1r@>^biGRv*+$hIKq|HW^HXm5nuydM;qk@%Sn^u4(q=?V>Nv z*E#18)i*6JY|potMX{y2!dzz*xEy~q*RpiBwWimVx5VS|R*w<0xTvK5;<6cmWdplO z+5Dw-?e-#zado}<1X*r171R|JR@TpT(4sl#AbTd<98;;Kqc+cA%j2Q1VFi4FEHRhJ zri%@Z;sR5bq04UIHf&qyB8KMt{5*48fvuxrU@0xH_ExWMUT1dIFDoGhoN;D(OVQ#v z#jb)T$SEt_w%Wzn3@c!+;IuzW>Pr1x+@dniDlja%g?L4T3f=k3ayp$Csm?vgNeVRAo0Y2r)w6w`C%r3}VFW~Rz_^ghK_Bv~Rj@4@M z2(~tpw20L9S>_q*XSs8Y`4(%V!Qolws=UIUCzTmyH?*(zUQn=U);#Rn#Y3)H#&gUU zE-bGs^t9w|HP%SI7kmBniTjBKu?Ufxx=anNt};))mlPXGt+A7=S!t~{^Uj;etm{bi zQls^vc}{01NafN>=x8c8RDi3CD=29)uA6)5eEaR>;)|r7e0N#ik_9uoYie>X+4LMS zwdFL-n6acJzM?MBbPn+AgtdZ?EZfv}3vn$Ube+>bcgQ%SzVL#@{__1KZ)Tmr+Of5@ z#n-pALU0!BBt=(~W>=E9MlM?~v~FlCDzH}7oSWlZ#h+snJIszUU$@Iw(!{SSH7)Nc zIe(GA7;>Cd#kLEbxiuD-=*(@*$<}xfmUTNe zI?idbTuV&CCC>b|Do^1?@iVsWM3r$rIj7@kVl6GJG%dLBOXNOMI@jqC+KUSEg-tt% zseZB7697p-w!f{9)fe0ECUaKT7PZb@;Cq~i+UOp#nKqa`?v1nR<``C!TdMMc zjTWb)d4%LPp1Ul^0SV*W+{?Qf zd|?+UZXQm~m{mH*JlF0vHw&eu4dTqLO?Fp~W$D~@OJSR}xjdD@(XgSn#zQ7A73-Wmp4bCT=gugfqr_SedZ>s@!Soj z-l0C5w^EuBsA|qFTo~wZ&#o@BF7BQwmYOd$d&&zPL_F_;PP5~JQqw%2&+QOxbIf$! zCFhuY^JY1U$wIEKve@O$t+g$y5Oe2=+(o%F8v81qARa?`PF2Bjr>R4-OHNm1Gn5Kz zb2gevH*B%5b{pCXH#&2j7Zt8AXf&DfZSAnmS(WFON*t@~A$jYlUwSmrSlg^Xlr3ypggQt+moZPq4%bP;Q+g&JI|3em5aCj&tfo7hh16 zL)0ag&2K90u;!Sd;x01hT+hm7=Wnp&Zz|-!O>$kIu50*+SR3sXd&!FLlb?~dNZU@b zo45trHunbUDNfzs@J;`!gt6o$#T;Jq-4h+^yW7$qr(Ffc$}!UBy*u^R~_Z9GQKB{GEK294DQ3 zknjPrgEM}a|3SRGv7o=k zQPu5?H?%r$B;{9;Q>0FMhcr|^N0R*f&vEe^xg5(62;9Q)Pm<3(ON1_y!@Ss7S=B^} zy(Wa`;yR<1H(ChqwuvIiv56+L!$f!&v04Rim*7M!D6(5531;R9;IOzr;LSyX-NcE! zO>~sn?1Ib8i&hgM1~+Fo2WBrem_(B!rx-ldu!`eJg~dh$8{zQ;fioC^!+B4DxCt${ zh`0wF7>q7nu$zsX(PAVbFYpG@WGyfdjyMIg&13>%4)Dv?2u8cWIq`RkgYe4<7&wEC zxCjwBpF@}d1`pWH&?Mk91-r!{m^cULa9Tx!ljjVjR*{1uRGf|AAhR6#0J#Rv2E|f^ zO%mO_k>dm+)Nx`y=i)ev=q$HzMpKS~BRN)+$QjL6&SEl}Jw}1Yl}^arRL54q(b0={A1sr0$QMw95qCStspkX~NAnJ7<57eSPkd{8!laTfhHZ zC)OxExJMtsSY`u1?Ak8R(4G5H6!eXHj_{W-rhzZ=rGSIpkXw!b=jNq}wt^W4Mw zbKWg&($D|n?vl6J_AlF-zs$CO-S_hZ+y3LDz8D)_66|baTdt+!7JYl|Gmo$>-}z%U zs>C?+vd7rg{9)^TY-=eGH0s;lmRH%s!D}Q%Cdv8LYFK6#bybjk-CP(2(*8R@u1XeWv`U@F>mHacZ z&3MmzoNC9$2*)x5+3MbEy7c|mD&LeU54Qbi&lPjm-;;N9N8$Ect4=?k8~C8$<@xm| z{$w%zvxE&+n3#XYN~-j{ut8t1r_5V}t@_GZlqximI;7#p*V4f# z!$!T_tp}v&m*F&vG3-;Lv|mnrU8dMlw$`dqw$L*W|2jzW*I^yrJrcbLB&`_wSZQJ^ ze*wSz16uo{;d5bvgw)}<(#RYXSOPh!odW0UP(~bt4$DTeS1%(TRN_q$50RpTd^2@D zD>^_UN|^S!U_;l2C0%P!V_ZlK3&>m96m>M3OvIyyfqW0vu@Vzo6oAz*0RybwVSE7{ z|FWKIx{Zj($lhk!MC+EUsi$4L$Z2CFf!)Ar8B^@IC7NETv}tt*w)t7|Vn6n$9GAn5 zY^CD_NMR9P!V}p_V|u0LA_91L@Esy4KLo=s$yPbs%j$uba(5_tb*J9A{1KU0)m*@} zcGOMtR5Se-GcQTM7tg~!jO&XatWK`JoF*qSZZ=z@@n-l#uc~|A^vlD{|0&v!_X~~C z0hLv|p-VO~ryga5CZhOnTSQB{yhMkw+x$Ks_2GXtGAQ>VMKGV2ZLAgt5*SkMCdKawMSS`pq0j`0u81vH7Sb^cTiEKOL*bc&jb8=$Ikfc4eRcx7cDv|`QTnTwaKrpw~dWUPYUzGhWDT|u?M*C7y6hm;4% zR*jX2q`luJG&0o1?O7eC8}vG`zXSL&As<4lFNzO}%g=EyHq+$_9mE+L#5Ui>ox(w6 z)i^WDp1^UpyIEE{)4$5n^#!nfP!DUI-*cI$|O9B)?vFJ;OeTCq(R=!(yH`OVl1PuEC*LaXl~ml=I2K z;P*uG8=icdpCEE5M8hMrpRG`CqhaN4o&>}JNd^d7| zO_3tQjy@c!Q6-|i&HF~8$+i5xOtEyjHo_Ua%J2(AmgAvG6V+V ziZYWUa|E~-;`oJm`MoS6mt6xcI#=wGDYER)^+fm$05z_UBHaw1Z}4GT{)qe~%4+Ip zAK@crZ~+z|Im6fx?e8JN1*9eso!~x8HN9^10x0Q4?wL^fET)(e8CJ1VehAK`P|_V# z`jyB=lMg3PkIDK&-nj-!gj*oUq8;VP6-35yNye4)2=_YzFPh*za(B8keF5ihdrv&w z%+gbu{#SjN&4`Ck^8c%a+7&QSGJTy^`jIgH^|P}t;}z-ZF|-bLk3UVv^(s4~@aFjA zbbPX03jGT3S3rQJ1JA?Flj9E^gsqwE;+@dSo&eI}n*dN8=mj2r4bqNgu$}^X@`i1& z`QGup<9mJr{;S6K{{mX@JCVcAA*BpQw0gG z0dfTy(`ymX@h6`o`~u)N66XRC+{aTux;g3C<%r+LkA8;)SQ_y2IS7J8|AGHkkS>;$ zdIx}obnEH5zl%q9o!q&MgAWL}2)_oPlt>T%0=o6W9OrRYvbr1vT-&VIxQRTL+|=~% zlEjt4X*kPs(+SW3yC>Z?J)#ePPKi!Rp0N)j7K48py z=`#-ap)k>sb}(zir)T}Gm^%bz$$)9%%zCjjFNeL)~f~ZqfW3gnI6#>OFn&H%tUeuTlr>o$74k!)(1Wv^9 zeN`n9Wj=1RoxW(Ku^Ptky(1{>Mo{xR3dTneNSz{ne8mdl#{roG+m%@AZkAv91yl?T z2eY+Y5vUrhdoxLHO?9gSuzS*Tw2UKHz-jSgexuUM{CUI^`G`ECZeiYK3ieLoTlU?k zBB*jCoE%!o1tKzyUrbIrR4o~io9Rm3oooxfc)GGZMR^^STYy|kxL*-D#)dOt;<|BM zY12N=tI2x_cnFjM{Mpb$6Re8qIv5+y6y!U}5kDa8?IB;Astx}mm@vvThJBwzkhW4z zXgIFeg9+tYoA5A!I`Sf`S4yLJuOxQF`CL!hBljaicS1#s6XS$ma8l?Ihp?7&B~^rA zvYfa{dY*ZNp?IQrUv(1^Je&^+_X7yv$Y?(RIL-M~P5m1Ok8@)*kuH6_oV*yqK}=-p zsy@zp6Y{`9+OSjy> z!Odi>k@nRhG16<`P(O-08mdhu)X**VQ)wscYz^pE(=BP=_lP`v(1wgAj_;Vj{>0h* zP4|`fLpX}^^fkMW29xhvWPHYBA;m!?^;IFjyk1A)5mv~X`62hqYK{nttP_IDJc^s? z1{L)Id_$bqk>VVmMhB=dV2U9^T=m}Jg&UnLS<31kAub^@|hivPg15&3UR%Un+K&E;a5+?1Q#N2WQAFXdsM zd7|{c>Mbt4!ml9W1nG-Lf{0C$(E(I-`{D|p(~Yn&k=$UQA>|Ta1RqKEIRa6thW_*rxGb0Lh^RQ6xp|H3QP7|3G4v13!EL5RtsWSXE7lNEVi?ddy ze@E69++k;4in%f57^r^A3+=H?dHVi5nmYIbhuUAXPYL3YgiQ`Jm&5)(13V7mO5#$# zlRH5|x<8^yQ}?0T7LCPzmpdWEK^lG^c1Mz^6ysnj5de`V zKjYy2+=9^SFp4or( z$?aEKw`R&vY&5$LUvHKkecwtRxA+jHeaTF&vXWhvs*~6K(M(z(=c!x3|K!Q*-nGCT z;A*r0`M^SMviK0q?X!;QWeVx|(>DM=ZiXrwSqpooYJPncp~8u08ojGoqS(C$Ig1WnI(wS5NLLfi6~N<}*!@)C%#LPm7_P$8amEJX+cCvDfKP0Xj=GmOr5RSVVq?5f?>8f48wc2tX zKSW%Qeq@)98VN#7C0%y$6(E}-|8bn7_uII=#E1Rqa==vxogT2k3uK*MxalDxJ)Q#) zaBvMARC5S*z`=Fvh4TJr!``n3=p)i~4|3A@OB~t2wLUa{$Y5XhD0bd0^KGOMgs%|j zgPwHtkN`(+BCwmR(@S$*N62LyJxVt@;6dVh=;Zd_aERT3K#yJ8A#tt)qX;m+?Qk8t zo45{IIq@SKzXU)a-jmneXOnjPfDna;zjDG20L#GK4P+0v9=qLPFgf5yytsrD|41qh zjvsK4{k)rgig4Y)+mvBuZRQ&UZ);h4{UQ-7|F+ zO$6*h*Dl2JYY6!QF>fGT5DL{=?(P&O=?)>3VXe zMD`OBcII7uqa&yJJ&xpX{u@s2D9w*CBOLjdcweG>dtfF6)`mWbqcdRY-w6M65MFahyLJO?0D>BWzvbIpfYrcjcfo0a42dKnNsaFj*V7LGcgO`_HoyhM z@}EvH5ZC@U0J_{@H9#AO0|!q_?p?>gcYOTG3*5+J;VoW1c|8)@?RRnD5b%|6*k~Z9 zUDD$VdD!NX9^ENGg6CfV=kI}VBjCFphm+$9Bo}>|gWE)=gB^{E+%hA%20$a+H#l-c za2;>vz2i@<<-|)lcn7!(cyb*Fi#Yg_k^BN&V;8%mqr?p>In+#0Lu;HPNKc(I2q^ zU9OX>a^Q~!(#EyUo?ZPX0;1^#Xh zaOMvhq{EE{_xPs;fz>Scz-kblc3U3BI~-&toN<$x{E~+rlkd>@Lycxi$5$DoCl-n1t2}C+hdAlVM+9l-QGwiR zg8P9i6>vbFK#~6)j%?&|pDs0V4~wXvdw4j&gO_t1K4|RLt9fn$@`8ZM68Br)dvyFU zGwe0Ej&Jd}k2aaGHGWoR4xfz7KG#sN|FgNA)dXMSU5`G_lO=}ArOnkSF-?|HDtWn4TW0_@cGp#s6U;z&ileB$D9^5U!22Oh1M@S{< zNf&$zbEMS7Z(wN&Sn2VaT=-L-c!>yGi8;qCHJwXxjvp31kJ^N`@x$Y?3Em+{ioe7D zA<}_Hw%P>yd3ce7HsaceN~Z(3KVz3&_g!#3{fgCxy8EjJ=&(vV@&(u7>+)PjFB0L2 zeCc{>Bp+D0_B;p!JRx!q8eC0Vi4XbgMY-f|3;7!_{N8N!iNF)nX)}ips^;UF>Qze! z&P3@^hoyDb__2J^b^J@5VS$;Ci}b4T`vIN-*KuC~Nf=yL{(!(kX4iNt&pE+zh!+=g z@GSD~fYG&mqZuj;5GBw-AYviQ1xOnA(D6*E#5Ev3hblhy=6+}4tP%SJoR#Z(v0I7- z++I1{=o#W~LkaR2Y8V^+G1)?!E z{2wkFq0OEEYAGQ@4yw2BdjKrPucCqhed$<~|+6RPZ}I3K~I*w$f{sYabxQ4rW`mw-Dg)KOXc>n3rtQ1HZKjOj`a;DSd5~AcjzBQm1+>R@5S)Uay8Vi z4JaWNFgq8d(HjVY(vT8qrYl%HM(PM&_ge`y4Adx=M-h-Omy?>^g&G)Y(Q!2rQR1i@ z2W9OqmA*JV?^|Y=SJA_Yr_+e1G!|6C^ule*VD4!`&&$?cr+TTOpOpvbpxpZ)kj3yu zEES^8CGO{C=3=BXn63AF9z|y+rsnH4@G{f&HEOD)tgSO0LY?wxv*2Anc=nATo=4iTL9}%2|NLT)Um|q4${31^{v5Zf$&wB;L;WB8*xZ8)tz4B$PL6hAnzwJx)Bv$P5X6~ ztk7UQI=BoZ z994r40jlQ;YT}UvW!y!zw4>?LTK_DQe3+jQKPhzW^Epr|z!RQ5lW}Xa3Vczj_ zwDJ8~DIO40(*xEja|q<#)GQqkQ0q>_pUvsP>-v(R>qYpE$B)YI?@$5PqJB?|1$l*$ zJ$NK#w%vz{n#n`HQ}YNjzeLn#ip=PC2*l!Q7{}<`f(lJ3g$=0NQ~CWI{&J5i`XuZ? z-3t}tu>7B%H)AZQi!Gs2EgDL8c^+Xp8tU&#JfVIOvDAh{T-JJ%@d37a9!1rSYRf&O zxg>$-^@WmJ0jUVd&ob08hHCMEs)gj4oTy_!PKs?!$D`^EYq|k>2GpT%v@Ni6U4PKiI zbE(HmC=@}Zl<8QN6ZgFVnpS3NCu z416lsaI>x>mnwAGw!%@r=mee%L)382n44B!9nj zXErSO9Ag&?2|kt!-z|XVqRNrME&)1fd8MFR55io_jb&pnORId$xFO&PyTGdjivUK5mWjSB6zE~G9|FVpIDg5hxHhDQ z^ccaIG9+JK5TGbOe_iNP;sc*A*n?BQKXp%>Mvod!;C?SQfevF6l=2ClB?UKN9i%uzVnI_{X#ror^ zdm^tD`{Hu2!~!2Soj`Gha#QVPk%|u$BNGU-5Xbva1`Q>smRM8gl^Z_*2mzEc8$4|( zk*EY?8oqG|8#EV8e$s=FLn+lwNIBt_gDbHN9vO;8hLS7_SsU6l1CHuULpvz!NnjJ? za6%3Kk>9Qj>5-L99pFzUhQDa!pD|PGW6{#c3%Z7%O_@I(_lstm-BXy64gAqyY zG)VGh;){jkFK{t@*>E(W<#W(%im_<%etGC<(Wy8N+C4#qstglpR}}4*6Ucmm(V^sM zDR~>D$fe|wFm~p!8bo+RXAroi1b)H!22yuFS+kDK(ayhE0<5xKyumf2gLf^n(*TRr zK4x@<4;rP#J|o#@gk0+cC=svp8n;BF1Il26M(#HTu#ItpA8gjHrP0tpktG(Vo0WL# z$fHInVKl=xjqqvH?v=<7hFGQ(2id&>1zrfdUtMSB>P`ODN@Rn@)o3=s#l&!x6&Z`y zjPh0OzZ2*-Wee! zrLYux)Bi=%o&2P^?K8j-)(6d1uLR2q3Z zY(?>gf?mBET=KIVTm`P^{r>KR+?R+hE)NVKxLObJrU`a{tMB*VjYbrxqp?2#*#(9V zph&v{NEbNo1p{0|4XrH!YIAfvG?1WysCD(4)MUZ z{qU@zC4qErcw}0j{L2mgXgu-#W}pDSY<8zk!p_!SYw3=0XF)gU}+24@X-&<{6y>j#z2nUDY!Y8N-R_9?;Q zX0IGlKsZjmM*E}8N1`biOZokX0Djce-H(u7v-2-8cLN!xo1Xfmtbtf9luUm0L)GlZHx;zA=Rfclkf2=GTV zDi1{G5+Gk{qDrtHkYR?u>2MAG%;JjYRl_k~zOo&v)X41s6E5y;UTQyRTIX*y?c(0y zyY&ctgEhbc^slRwLc49gcqDpX8{Xb)mDI1a1z2qU`&Kwa;6ggVeJnEn?=&a6(mG-K zCsFy^tH-iI`3G$@5?$0JDXZPSzG&FuhM)0W%z5#0gN|-8U7B|5 zBzZ0v#yPmCLrUfVjm00Z?U{_ef65Bq1>f35tM3y2K&FS@OOKE>J78flqV~N5-bOlN z@7DT}^BgDSCpO>KWb|CKH!gd8K9zG%$oo`9a7(7H?{y(^m-sKdAWX64IGm8n2o!&-E;`LkQ1~X5T*8I#xB3l zblG=Fx1QVLkRYd1Tcp}66?&}$F6QAwUVM>V0#bFI^3Vp8bC;qyq@E(;K@Tg`QA*a_xcVgxPyb$c2{GeK)&8VdTnsWOs1Kk zMwZz26FYy*;n9WxM%z)LrODqSn$$ua+r!Zz)cE4c&zzLt!{(Ul>CrvN%U(rE_WG3KMp*TSD>lXA}8@$xFkvv*3z0mvY>cGrHH^6OD}G zJG@1@L&~rkdBXH2!q5H$^7~LC9vvF`00hMl*DJ!BzOESH&+zE9Gz*v5$bFWcbc%)7 zExwSdwY%X1Gx>}GMmzzQTw#XAm(b|vEY(BNAMn12MxD9vuobSa>q%!+=yV{J%ctBh z6ME9=6c)P!ESo|Zz;RS&Kb}nCvv3-krI*MCIgIp<7a+K{!4V6k$;)kIv0c)B=Ydyh z5#!g`rNm`+KMKEBt?-f67Y)ZB09 z$f{<)tZEy84r%MGT`Y;tV&I%0X$Ogmx`1j;JqR21+&SSHQt%l|7t5SuCVQvy=G5k* z2uFbVYa6B76Zw+5n{?|bZ+?m$F_|#uGX~mLe*u`TZE!At+?W zk<=0Gr-i8fwl;RLghYc)fmkvcdeI6u&qg*==%H?8*^$AKX7IIBHC!)}`NWTt>*vkT zQ~)<{@G^9>#6Xd|>H^ryVP9c)L{4bxHw%1;g#3NzVmSnhL88|eb_W&Y996TskubI> zvuF0KO5HuEHhmTX%){am2e-LUYI{cP^7~EOo)NFiX0|Fa!T~3&w~2*DUoc5+M$&KK zzM4x@_m}eUiy5%k5@0#3{@%zN%%|b3{8bkLm`sxLk!7czyGq(EjKbLJXhc($WZVaV z?s)3{a#MFC(MY%C=S#`eNHlGYV<`8-sRzQ!w;FcGqLCn?uhibR3{u?I*c%F^?i)x- zo`8nJ{fY+iO&h#xldzjya;$SX%bD{%BtEZGigW^egZL0*ejkw3_RR68?i(%u_&|WG za>=WHluSyFiW;iPZhtJ|NH8AxxlMjNu!g5}vpTq`of$yq3Ez(x=2D`w84E zqDI{f?P?@(7X*TMTXX&xqKjs_B1DUbuQwW54DhSDJxU0l+jon{iz}cth`5how+s}P_X2-L$%-pAnsw>1t z_QH4PE_$lf{2TLTA@SWs*T{eSqAK1vHqm67UO`d%JilRNn58AnW-(&P2oaAm|J@;^ z-NZ;-50ubSPYfiKa@fcG+uZO+(-U%iNl*qLJwZNT#(`J=X8EWiJ{%A$#E{8pbTGMyoR%`Vt(dg|8x`zjPT|<|8e+x> z?#+k05S+7+4`eO#0S9y$NcXtN?nE{{;?sl_fRuckoCdjBH?p8|$^tc%Ss*o9$Qa#% z$F!m3edIKUkP~?y%EGY91Y0zGGcaq@u-d0Q4{z()8u8>|)HZ|4=gGbh^KN0Ddhu>J zIIx9z>oUuhtO2|Y@E*9-6igUc?j#MLH-|1*iaPM&uS(7-jR&7XV%X*aI}A&gF)+p^;Ef9e58IN)BP4&LlA$ z=1_m?ZbEugmXDKm5SvK&8$nv~Ws)n)1g_)O#h7iWoAfaY&lY75bRicB+X(qS^swwt zar$R~cZhQ}*u~|?`7D@_a9=>Rhq^KG};G>~dr$%?f zRweGmx!QS@n-E*{{K`Jl^vbiV$Z6BZ^Fm52Gh{yOp^;~vq^&KDv>8sDkZZ|!P2KV) z->i1uOrO7gP65}}b}8Z^KT|1vEv8H%;Pd%|(~@&a@PYU2)SS{ohKIj$61f@F#gH+?ZRLZrx!- z6-|w8tk6frFskjlHRdYDEYM*wfGTbHB#?`NL+qv`SafB%7h9LfB$7mtu*OV!SjyzMY9X{w{j34L2;x4N zum)?p21CejBaO5x*xSf-@ga@Y&<(LtBE>%>69nf;gjuDPUHk&r(-lIt+lc(? zH{_AN!6;kO!Uo1#hz}nc!(%L|D)w(kZu}#GIzueN@=t2ocOlS7<=%@?xhKW~c!?Rz z*L)s(9AT#m*L9nV!@pp{DSzSed@P3cViX1rK^$opG7tc zzlXT)Oc-Zr8@&ajBg9V-7Q@wQnyTFGG@Y29O85H$RfkRDi`hiF((C+cm2eeu_y*%v zy+%&F(J7LpCaMfwPF(RN+a}Cn)pAD&DWJgOHi83Yh+Da(8CK6ijp=bdia?V)Eg) zHgGkCLGYRo(A;AX;Cc|QL)kUL@(j;6J%e-@#y0mdYvy6#mYYB|RVITr*u5#D=cuDi ze-&ZO1aTrMr#TcE_lDMR+%a&Wg3FD=j$}|{F>8_QO|XNjh|?nIK~hzRqWev-lEw2O z8Pg@3YBidAVkjE9Nu)!{CgK~?5?>O!HH7QK?~uLN3E1_iC$=Ou0&}Nqn_bMwvzSox zK4zFG`d4|1rT2_WG#pfoIhE&$6VNv(Cy~LZ3SFl3%Y(%@ikb_MyE-NebTmoX;#-(* zLaWEKX&WM9wyuK{gk_y(fkf#AKYdAbXf^C+ zi>`>46QenBn#ayslT3`_WOYZ0Yl8dO9$d8 zG(+==9HhzcX!6_4X>HHuDDvbZ2_;gCh>4izL2l!duytvYC14CM=UntHVRxKmRK$@T zUT^5ZZeJQwW)tI&5C!Ap?G)bUBXpyRc!;Hz9Z-6aYte7P6OAlLHpmuA>19aWml9}& zgOh2?75XRgqMqlPE{P=i5i0Zg!pB}crXNgxE_#@|Qrb}u>9}0&~KBs#=8Dk-Y$dLQ$`A4yjHzN;atLp2> zZcR>%qRiQ*E;H^8;~=P!Q8h+8IZ{mEUP9jCq~vxxrEyv z4DkMts;_CEV4)%qn`_bA!bjSKc#An!$2&I@hsO-p#5hS=P0)MdH7j zW1XEXGkw1LznWbgYa!snOV`2#H(3~6`nz$JjM~EOrT|NdewZV-+YrGp6hP}BfZ~OI zXxyvk36@#B@Em&}l883`Mp&Ih|tX`@Ze^hQ)3?cQkQCCe>L*2uv@MY|BhJ5XU&2a>wdEjXWV=X_YdfbtFm?-csE625bFvi z<%kkr4i%y3J*IA!fjasJ^Y##3C`bCDbX0UH_mI6TDlx8mYu{nf!)^zn?<1a0M*4o} zv|OSKTP?@}Ir|hkf*?8>GI!&!KN`IfxY@8y9*oB2ohX-|0qprT-0#iE0&qSvpXDSA z;f*LLX63jVy@jk(v_1s#Y}t+$lJokLiDY~ki8C8_OilCxyowsilM%J=6cD2*$rEOL zpQv^W5Zfj9#iN<1#}+bSL`D%-5^ObD4)w{A zQJLjv4IKtjC!7kW_Fb-qqbz4Os%Gmr?}!`)__Y%ixCR@yfEABH`npfrP4(pXNjY?o z1Y|lO*V??P{RdFNh%3QlpZWm6Dhu7$_Yr{y%sUi{1f|5IZ2-Rm(u3za^D2{S~&rf#flw^d;Qf1W#E+eH>pP$Xw%@ z<@F{Kh{>t_i>y9mJJ%p@wQWUWWL3Y~x%asx%n>~rZl;@%Poty?9ROFb!Rq)ca5oUR z+fFVul6S?~5jpq`0v|ezcOx9r<~#D#uW-8CzpqHp5E-|bx)xRO-FmHo=K$vOC#F{# zSZ$afXIC0n!cTD7N(0i%WDWC6SM#{NY{j3l@aNzi76f%FQo;ZWC6}2~zoN2o0|{2_ zVV>;-f-RJUy1&0%WZR9Z4U6TDtJeaOpW25=qbtag4=`W)E*=JK+)M}z56hvgJo&4@ zwZnE6!^FaD{{y;$>ZoewsS-Q~PDP?Dz!R0=-jF&FT?t(XVUu6f)fVk%99ipvc~){O zY+#E`{(3S|i|DGwXUhBJ#O~7h|0M1A4YnScvS=pG1~*w3v#_KRfMyolm5wDssT4w4 zuAu6wtORN3+kl$ZoC4Ci9eL9%lRs=F*Kjm-?*`~emr=+C*p8TJK%HSF%{F1k)+60v zSQ<~Buz(x7k#)wKxAEAIbtWm&OuX^Nr2yZszCo8NDiS&h{{a*lH(OzidrXgfh>Q%r zM5M-*0Jqxq(0*A<3`Rr27jwFC1m*sjJV_XPLaBQP29(da{Wvn$@H9>@Hlwh9)!K@; z`oP5f-9@gkl5=wL2kP-DG_}FQU1!A??8>1uypnrS4h=`+A?D~44aYf~E8gdUeI6*u z?M9y8A6*3gWPkssVSPkNL}OnBcjQtt_ZQm)t1yYsOJ#ZX2NJYDG=gF^SZ;FD^>(sD z=!qew9MJBzL3{2?Y+XM%j0$B40gTb^k1GQ~=1v%m^v^a2kh#!Pxjjg9ay;>E5A@ot z5-}dcR@hu>CBGLnTvW7T;nWk)11h;|P%U>@U5RIGrx>(LATQ8M&d76e{dj7Z9iBz7 z$VifI`xBe<@NI7uwj!(1Vj+2F?jsa&IKDwl9vXVV zEd@1)6nQys5yC?ncfej)hD4os8v^RIN^lF(pqaY>NI8dKDs?aFG_4M1mW(73)ql^HtGvrr|ALkIy7$c& z?I=5avkp1;%*$30;Y`T6_Dz)#dDR5ZSfJM}h5jtUY0mU_Q@8Xmzb1N*(H(Bfbw`!~ z{K?g=mznsqV<++r8JTi&u9-%)T+xqO+!ACeA-X8aT%MxMEDc6#-*Q2U{2&JmImqj% z#|A$nEan~2@Hbp8?Ln8MeO81G=ALK-6{jF7GaHn816iL7Ev6op`XUxR1Y-lt1Efz5 z?KeONF_r=CRd*VR*U^R3BX|wKlScTySqfbX5CB(bp&6k>BA#UBa~uFmJyfF$aZ-eo z;ne+C7`<}u7Ez+3M&G$g|9p?6{21Wt9%*DH>{%A=MX(ZyHdcbKFDX}&)4&43S%?;M zd_uf@r`e@=StbW%_+5h(?c}*Ia^KJ^4&e@XqbrPzD~=!#Wi0KxombUh6ouB)q&w0l z#|M4}dr^z%tYbB&W&^jc#cz_*H7tH+oiOVqETpbA%%e-8OBvcjrC^o3);wWb7LAOi z_Jx#Dn%W*3M%FvJTv3t5E|-&=^L(pQ`))RWeM1zFYxsb61@`$&<(X<2uL0ad;1_ul z!n9Ht(vxHzB8tQl(1W}$r1ow!$NJPbK3T2+NjXAX+B{)z99g@@qLo6=8(iuZkCZqF z`w$X@nF*(FaFuDFruHSVF(_i3h}6|2&I4l)f`{Q~wR_sC5UU57^OuJB5*2R|Hj4;@~8} zIpU=&nhR+{y++tEoH`OhhDfWOQtGeLZbj8yaZ_Ji$>!gQg6puWGKRxEo`@(n24u6FiR&~0)&(h1@h z0b1P!vv^ul-YdQh#DBSYsG!sne*q!%atMkiNE_AZGJr0$N4V%HvZ z@`d0_Y?EL2a90zs8OZnYx)v*u$QY5feTzVk6}*z9RPm%!f-7>0w3~q(b3+_K{)UA7 zKG%aIp3tH{&y^CNBhcyQ=5wGGIiElf_(fv*22?2Yxtw*_!*S}6;C46s-qn?i$i1b- zWRB!&403RF4%rFYk*GALai4Oz!fiM)Mvw+BrxzJb`%v$VnRQeYTD!()=#mC$kd_7q z29RzTq+=*06&N}s1%{B8kQ8Y+42^Vmca0$3(v76};kk9rx9&Nhi&n# z2tq)*kjT@>>;=Ye-90aoZe5WRNDsp_h!&ep^Dy(59JQEsiApLI;GLZ57S#OI$hlB_ z|CLJ0z0p6&Lfm1a6(;~G^z>R~_2`KS4erU;3YsV(8?}0o3ucHOk$s*KGatEZi#^H> zbel<@HV5qPpQ7+dW4uQ*+j_eA^`cd%W}gkJt)z=s6ga%9Qos7uqx@F#pL~k(>J;tP zpPhE%iis?bx+01Mr}9q`FT16qndmGMO}Tgu->yg!G@Y!a1P;npQ1@rjb_#Q#0u{l7 z6|6n5VD;x7Rn6)MvpoFeZ3>7_brJuxYIz_9L_K7#yBPm4hEFKDsPWB#Mh1akXHJ;EpQCDVq(u56)Uu^irUKsqO9f2VjE!1K6jDjn$O zR=Hic>_Ve3$|N^QNZGa$B_tu_sPY@&Y_I`|)>a>B7K$wBO)L+1{+{EfKOy~(Zz#!- z`$U)`1u~W5!>~nr8?2!4U7M>!C$Z_1+Gs_=Yx2oxK5>d)2{tV+UmajD{i3s4*ONgZJ2 zZ5Ru&8-qJ@#>c66rT&>&RF`IbgAB;q$GX9ZK~52+zF980Hr}m)y{B|rmBP%+4wSh; z!%U1+;hUJp7oO1II1NP6|gEzPA4)JwovU|I0cBC*dXT!Wge z=at=L(rP@*1oz;$pb$Gl1+}qD;bK}Wn6UQV<=Fw1UMTVUTS=i~Y+kpydZvwcO00yb ztg(w#8-&WDsJbZ6c9mh%KH?odi=Ig2LYy(oAS9!G1csYbb-9 zj~U>XcE{R7tw7O~#k28W)MTN=Mz#R2sw!2S7h!63tcm53$CW*4b3@4u)4d)m1n!ToawY8&l zlhEsdmTWf=!zBA0l=Y)@BxLKZ<;2?7pO=$?jHa@(FW3*~IH`-al{9bT3?rT|mJM({ z1|BraRgyRo3<+K*Ge5=#q!`{J?oTMs$@yFjZ$i*W1>EQrm7W30JiN&MUXdpvxV zavG{A#*V)7;{f`FcSZmS7MEwSGnX%QENTZC5>NBKdiI%Ub_p7{l(hzj9N9=L2jaFd_I@7tvaC;SN#1NHKzK1DO zETCIx4L-fNnpV^t6!GvSSakd1$=4X|#S<0Wr(vX^xjE@f!TO-&xC|`UEgbEDsyr49Fbc4* ztHFeYx;*|on5?SDY}*Q{`OL5NRR#pTbe$iO)y{L6*767B6`EMHIl$*RGPL4P6dD^- z%QO=hT0c`J#w2d?G%Vp?ILSn^8Z6YJn$|PNTqDdf<7C+q29tjZQ(3>zGxUGHK|a~is?CM!G#)HT72m>#k3<(@bFma zwJTqvg=nNuGrYr1yn-b0%N4q?gR)9ELNI}&b-mtX8^kIVVIKowXYZ&!G`8qRW>bMY zVc#U?O7$^M>&6aim9t+nU`F}`B2ZaxFJ~>uvjjgaz%Yy9dHehIRN3jZQj+HB==l{n zpe(%i33aDG!==4=J$3EHi%gMAO-x9_TrN_K9uYG&jJ3kR!#15(ka#l-smuHEgaA*mW@bn!BZLb; zuM#j6Q9t#S%6E)7)5UA;14ej;lguo-2XcIR1{Mu>5?HuO;8yrJOrUq|N@hbg^!+6k zxy?|4@p#DY)1RMNvTO$W=P`t#Rpb{&_TpF@6iU(h6yDa=>R+eR9xY|%P%+zAk+Gr6 zd?pHhbZ%PtbVttpjPbY};`_xO}M-18L2;9CCWBy@sKFL7r* z9Uq=dmy<`$Pb*O!nAqPRt+gvJoGXSwUsc9t9s_lTbO$OwY-VbHO^9Aao27Z7)$lP$ zC6d!myuF3-R~c$60ry@aoNf!rJAjcPHUT&glR?PWx_FBpzc;A}HXHpOy?hR?85SbT z+XI0~2X;6{>K^+_<|x%+K{Q>rX(=h7P!Mn~mL{htsS&J3banpo+l$1j^mx*H@>8He z3brKKtl^HThb2o1ebxl9vEUD%0A#8UB9^AIo}`T@w)5J{lsW#h5nE5PzBV_1fk>vr z_;_R;e&2?3?!Z@e`6KJ|M>YfcEpSU_;VVrWwL94G6ON^{D9_kWw02+Cp7k8p8sYf& zk(pkHejt-Bjl>_%4EGZS`8Jug&;i`TQInF}>76Vws;9-P3$a@D_9ykoyY>|7tAc4b zgXPRZ7u0{DFi@-_%@M#^boiB%z`dr#bbZr>)u?S#)2;2jX$lf*@g!b0d}!APvGDLS z2nLa;viKNG$XTW%%Jyr$wbhN)vj{V=i~9%HxPCze>c4g}yX-E(F(JNlgg?hpvr-r0 z9_2+g1kuXGE5*~;NRNtJq zkjFK@?{&H|RHN(Sh}E4c2tqJ2&<}D^Yt`KuC zGpwig%~ihX+MRvh+MywEfyCNTdzYxN;fMr4Ollu7genbrpPFQoZBM`BO@l6>41JEL)V;kG(+kxD^ZBp6xxuk3*jPW*nmq`W(|s%UeRGQ;OzNy zv4*ffcw4u<2HT~UC~*1cRA|H59VkZR@%RqEMN}5xl10e>XrVe#v9(*(D_-e0qd4po z;)t^clb)Y*2&)G9ujKcejOawRyn!1$>sK{3Gi#|cxbs|MHGkgIP`wz^z`48cRS73*$A2k*oFpLF+EEY zn$Bi?^TZB8Ey;{`up`R#&AS06-|Ffl{~xR`lki^QkgOIJN2@d(ue3C4In?h^`jv>y zyUbcQ-m93`9|fFPvfLWpB^E3`kD(x-S?fu5td4oyN$KBxw9s8JD)Dw7_pa8a4{w>0 zVQncUs_RXr$630sfY0!~*23{A1KZsVI7x2xQ!_6Mt$(<|Awf8}DDZgJCw@zOeR8vt zR{!Lr(BiD;C>ZP4l27k!^;s~OG1&iH)&g{kw})g}Ti5*1b|DS1JZU>6JJR*JvDEBs?F8I{D z=ow7UHBFsYC$~^eeA=Pi3-44VDOrw+WRs=2zCTO4@09texmgPnjI-MF+;@&#d$9~G zAL7r?2{yh+;@?hhmXbu~ER0@wolM)jfo?5!UyzSBJ#|#qy0MwQc?lJp<~^457!1jf z@n)^Te&4n*8q|X$Q7~redD-U+SxRL~xhk(F>XKX%Kp_;~D_E1=3qScZFR@y{xZJvW z)5g|Z-WPF%<#RY|?jvUH**s$HedXT$G{ki7@|}d9L*qeTvzBe+J-u(mboH50v$5zN z-HFi}_1bdxxyFgf)SFqyKL0!Y9|?i`!)7FQRSxS@_woa%KqBcw=sb10UVo`Y_|fIB z{itxC)es*&wO_4=$aS`Re+>vK8Yut(zyfRU74|U)>s~r0U>&?iv@O z=ATAXrlOd+Z|MT*yK=wNig}-|J=Qp8@&v*5UMjsj6>Dx2Yi=2{E*DY3inb{@n4--6 z(im2-Fz%k#D(CpBd^xl&di{LSs0?J386T%VUt;fM6Wu9nphNE*A+53=5Sb2xE6Wj# zHl(=1b^F&1&2S6pt+3SK&*1oW8v?f;9QFj(4ekVsrR=yDM^M@ol!5_7$^@jjUIj{| z_sQuaBmmv3f)7{J8f+24toOtyW@hG9*=+4bIK%XyHFBTMJg1(|Oui~2)gFz|$*>GM??6I;u6nX(C z0eYht_aoi(1Q_q8@GEkDKA+-CQdF1h@s5sJI=dqHy9G5t95?z8hJ-y7&VvQ6R&VUB z9Nb)A@&79ys@gJ`Mm0Zw%1Ha9uQlA>-cD{<%k#beqrG~f-|=2TI=^_ob${>d7CTvI?LYOkrP@kJ@KiBT@IVK&2^v5P*L-pm*ajpT$fDQ5!now=|pwA%H*A z@#pZL?YA@!7aKP#9y>=1*q_o$AL8-5{wX3F5FiR2>i=Y{YB;KC|AEr>kTDDZ#eYMq z;lIa+#96$y($zu#kI4N$tUq#VL?MJg0Q4j9pIBTE^gmgy|1RtA+5fAqIwIhI-GqNn x*55t+D@v3E_%}!Y74QFA{9k#<2i{+8c;Nl77NBGNUM~8>33^xzCFw&0`~!Y6K4<^{ literal 0 HcmV?d00001 From e402a304bf97ead8c2a7f00a745e837fe0c6d449 Mon Sep 17 00:00:00 2001 From: Erick Erickson Date: Wed, 16 Nov 2016 13:33:18 -0800 Subject: [PATCH 07/18] SOLR-9606: Change hard-coded keysize from 512 to 1024 --- solr/CHANGES.txt | 2 ++ solr/core/src/java/org/apache/solr/util/CryptoKeys.java | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 3d024566ee6..00c0669a9f3 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -185,6 +185,8 @@ Other Changes * SOLR-9597: Add setReadOnly(String ...) to ConnectionImpl (Kevin Risden) +* SOLR-9609: Change hard-coded keysize from 512 to 1024 (Jeremy Martini via Erick Erickson) + ================== 6.3.0 ================== Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release. diff --git a/solr/core/src/java/org/apache/solr/util/CryptoKeys.java b/solr/core/src/java/org/apache/solr/util/CryptoKeys.java index c110aebcf45..1122860e73b 100644 --- a/solr/core/src/java/org/apache/solr/util/CryptoKeys.java +++ b/solr/core/src/java/org/apache/solr/util/CryptoKeys.java @@ -285,6 +285,10 @@ public final class CryptoKeys { private final PrivateKey privateKey; private final SecureRandom random = new SecureRandom(); + // If this ever comes back to haunt us see the discussion at + // SOLR-9609 for background and code allowing this to go + // into security.json + private static final int DEFAULT_KEYPAIR_LENGTH = 1024; public RSAKeyPair() { KeyPairGenerator keyGen = null; @@ -293,7 +297,7 @@ public final class CryptoKeys { } catch (NoSuchAlgorithmException e) { throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, e); } - keyGen.initialize(512); + keyGen.initialize(DEFAULT_KEYPAIR_LENGTH); java.security.KeyPair keyPair = keyGen.genKeyPair(); privateKey = keyPair.getPrivate(); publicKey = keyPair.getPublic(); From f9a0693bf98a4000b6568e7c63f3e303118470bd Mon Sep 17 00:00:00 2001 From: Steve Rowe Date: Wed, 16 Nov 2016 18:03:51 -0500 Subject: [PATCH 08/18] LUCENE-7564: AnalyzingInfixSuggester should close its IndexWriter by default at the end of build() --- lucene/CHANGES.txt | 3 + .../analyzing/AnalyzingInfixSuggester.java | 82 ++++++++++--- .../AnalyzingInfixSuggesterTest.java | 111 ++++++++++++++++++ 3 files changed, 181 insertions(+), 15 deletions(-) diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt index 28ec5f0aa2e..27d6cc9ad05 100644 --- a/lucene/CHANGES.txt +++ b/lucene/CHANGES.txt @@ -87,6 +87,9 @@ Improvements * LUCENE-7524: Added more detailed explanation of how IDF is computed in ClassicSimilarity and BM25Similarity. (Adrien Grand) + +* LUCENE-7564: AnalyzingInfixSuggester should close its IndexWriter by default + at the end of build(). (Steve Rowe) * LUCENE-7526: Enhanced UnifiedHighlighter's passage relevancy for queries with wildcards and sometimes just terms. Added shouldPreferPassageRelevancyOverSpeed() diff --git a/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggester.java b/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggester.java index aa602373f5a..b8c2dbdafb3 100644 --- a/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggester.java +++ b/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggester.java @@ -129,9 +129,10 @@ public class AnalyzingInfixSuggester extends Lookup implements Closeable { private final boolean highlight; private final boolean commitOnBuild; + private final boolean closeIndexWriterOnBuild; /** Used for ongoing NRT additions/updates. */ - private IndexWriter writer; + protected IndexWriter writer; /** {@link IndexSearcher} used for lookups. */ protected SearcherManager searcherMgr; @@ -146,6 +147,9 @@ public class AnalyzingInfixSuggester extends Lookup implements Closeable { /** Default higlighting option. */ public static final boolean DEFAULT_HIGHLIGHT = true; + /** Default option to close the IndexWriter once the index has been built. */ + protected final static boolean DEFAULT_CLOSE_INDEXWRITER_ON_BUILD = true; + /** How we sort the postings and search results. */ private static final Sort SORT = new Sort(new SortField("weight", SortField.Type.LONG, true)); @@ -198,8 +202,34 @@ public class AnalyzingInfixSuggester extends Lookup implements Closeable { * */ public AnalyzingInfixSuggester(Directory dir, Analyzer indexAnalyzer, Analyzer queryAnalyzer, int minPrefixChars, - boolean commitOnBuild, + boolean commitOnBuild, boolean allTermsRequired, boolean highlight) throws IOException { + this(dir, indexAnalyzer, queryAnalyzer, minPrefixChars, commitOnBuild, allTermsRequired, highlight, + DEFAULT_CLOSE_INDEXWRITER_ON_BUILD); + } + + /** Create a new instance, loading from a previously built + * AnalyzingInfixSuggester directory, if it exists. This directory must be + * private to the infix suggester (i.e., not an external + * Lucene index). Note that {@link #close} + * will also close the provided directory. + * + * @param minPrefixChars Minimum number of leading characters + * before PrefixQuery is used (default 4). + * Prefixes shorter than this are indexed as character + * ngrams (increasing index size but making lookups + * faster). + * + * @param commitOnBuild Call commit after the index has finished building. This would persist the + * suggester index to disk and future instances of this suggester can use this pre-built dictionary. + * + * @param allTermsRequired All terms in the suggest query must be matched. + * @param highlight Highlight suggest query in suggestions. + * @param closeIndexWriterOnBuild If true, the IndexWriter will be closed after the index has finished building. + */ + public AnalyzingInfixSuggester(Directory dir, Analyzer indexAnalyzer, Analyzer queryAnalyzer, int minPrefixChars, + boolean commitOnBuild, boolean allTermsRequired, + boolean highlight, boolean closeIndexWriterOnBuild) throws IOException { if (minPrefixChars < 0) { throw new IllegalArgumentException("minPrefixChars must be >= 0; got: " + minPrefixChars); @@ -212,6 +242,7 @@ public class AnalyzingInfixSuggester extends Lookup implements Closeable { this.commitOnBuild = commitOnBuild; this.allTermsRequired = allTermsRequired; this.highlight = highlight; + this.closeIndexWriterOnBuild = closeIndexWriterOnBuild; if (DirectoryReader.indexExists(dir)) { // Already built; open it: @@ -276,15 +307,22 @@ public class AnalyzingInfixSuggester extends Lookup implements Closeable { } //System.out.println("initial indexing time: " + ((System.nanoTime()-t0)/1000000) + " msec"); - if (commitOnBuild) { + if (commitOnBuild || closeIndexWriterOnBuild) { commit(); } searcherMgr = new SearcherManager(writer, null); success = true; } finally { - if (success == false && writer != null) { - writer.rollback(); - writer = null; + if (success) { + if (closeIndexWriterOnBuild) { + writer.close(); + writer = null; + } + } else { // failure + if (writer != null) { + writer.rollback(); + writer = null; + } } } } @@ -294,9 +332,13 @@ public class AnalyzingInfixSuggester extends Lookup implements Closeable { * @see IndexWriter#commit */ public void commit() throws IOException { if (writer == null) { - throw new IllegalStateException("Cannot commit on an closed writer. Add documents first"); + if (searcherMgr == null || closeIndexWriterOnBuild == false) { + throw new IllegalStateException("Cannot commit on an closed writer. Add documents first"); + } + // else no-op: writer was committed and closed after the index was built, so commit is unnecessary + } else { + writer.commit(); } - writer.commit(); } private Analyzer getGramAnalyzer() { @@ -321,13 +363,17 @@ public class AnalyzingInfixSuggester extends Lookup implements Closeable { private synchronized void ensureOpen() throws IOException { if (writer == null) { - if (searcherMgr != null) { - searcherMgr.close(); - searcherMgr = null; + if (DirectoryReader.indexExists(dir)) { + // Already built; open it: + writer = new IndexWriter(dir, getIndexWriterConfig(getGramAnalyzer(), IndexWriterConfig.OpenMode.APPEND)); + } else { + writer = new IndexWriter(dir, getIndexWriterConfig(getGramAnalyzer(), IndexWriterConfig.OpenMode.CREATE)); } - writer = new IndexWriter(dir, - getIndexWriterConfig(getGramAnalyzer(), IndexWriterConfig.OpenMode.CREATE)); + SearcherManager oldSearcherMgr = searcherMgr; searcherMgr = new SearcherManager(writer, null); + if (oldSearcherMgr != null) { + oldSearcherMgr.close(); + } } } @@ -382,7 +428,11 @@ public class AnalyzingInfixSuggester extends Lookup implements Closeable { if (searcherMgr == null) { throw new IllegalStateException("suggester was not built"); } - searcherMgr.maybeRefreshBlocking(); + if (writer != null) { + searcherMgr.maybeRefreshBlocking(); + } + // else no-op: writer was committed and closed after the index was built + // and before searchMgr was constructed, so refresh is unnecessary } /** @@ -791,9 +841,11 @@ public class AnalyzingInfixSuggester extends Lookup implements Closeable { } if (writer != null) { writer.close(); - dir.close(); writer = null; } + if (dir != null) { + dir.close(); + } } @Override diff --git a/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggesterTest.java b/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggesterTest.java index d98d0523f56..fc5e2b7bd96 100644 --- a/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggesterTest.java +++ b/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggesterTest.java @@ -35,11 +35,14 @@ import org.apache.lucene.analysis.StopFilter; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; import org.apache.lucene.analysis.tokenattributes.OffsetAttribute; +import org.apache.lucene.index.IndexWriter; import org.apache.lucene.search.BooleanClause; import org.apache.lucene.search.BooleanQuery; +import org.apache.lucene.search.SearcherManager; import org.apache.lucene.search.suggest.Input; import org.apache.lucene.search.suggest.InputArrayIterator; import org.apache.lucene.search.suggest.Lookup.LookupResult; +import org.apache.lucene.store.AlreadyClosedException; import org.apache.lucene.store.Directory; import org.apache.lucene.util.BytesRef; import org.apache.lucene.util.IOUtils; @@ -1334,4 +1337,112 @@ public class AnalyzingInfixSuggesterTest extends LuceneTestCase { suggester.close(); } + + public void testCloseIndexWriterOnBuild() throws Exception { + class MyAnalyzingInfixSuggester extends AnalyzingInfixSuggester { + public MyAnalyzingInfixSuggester(Directory dir, Analyzer indexAnalyzer, Analyzer queryAnalyzer, + int minPrefixChars, boolean commitOnBuild, boolean allTermsRequired, + boolean highlight, boolean closeIndexWriterOnBuild) throws IOException { + super(dir, indexAnalyzer, queryAnalyzer, minPrefixChars, commitOnBuild, + allTermsRequired, highlight, closeIndexWriterOnBuild); + } + public IndexWriter getIndexWriter() { + return writer; + } + public SearcherManager getSearcherManager() { + return searcherMgr; + } + } + + // After build(), when closeIndexWriterOnBuild = true: + // * The IndexWriter should be null + // * The SearcherManager should be non-null + // * SearcherManager's IndexWriter reference should be closed + // (as evidenced by maybeRefreshBlocking() throwing AlreadyClosedException) + Analyzer a = new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false); + MyAnalyzingInfixSuggester suggester = new MyAnalyzingInfixSuggester(newDirectory(), a, a, 3, false, + AnalyzingInfixSuggester.DEFAULT_ALL_TERMS_REQUIRED, AnalyzingInfixSuggester.DEFAULT_HIGHLIGHT, true); + suggester.build(new InputArrayIterator(sharedInputs)); + assertNull(suggester.getIndexWriter()); + assertNotNull(suggester.getSearcherManager()); + expectThrows(AlreadyClosedException.class, () -> suggester.getSearcherManager().maybeRefreshBlocking()); + + suggester.close(); + a.close(); + } + + public void testCommitAfterBuild() throws Exception { + performOperationWithAllOptionCombinations(suggester -> { + suggester.build(new InputArrayIterator(sharedInputs)); + suggester.commit(); + }); + } + + public void testRefreshAfterBuild() throws Exception { + performOperationWithAllOptionCombinations(suggester -> { + suggester.build(new InputArrayIterator(sharedInputs)); + suggester.refresh(); + }); + } + + public void testDisallowCommitBeforeBuild() throws Exception { + performOperationWithAllOptionCombinations + (suggester -> expectThrows(IllegalStateException.class, suggester::commit)); + } + + public void testDisallowRefreshBeforeBuild() throws Exception { + performOperationWithAllOptionCombinations + (suggester -> expectThrows(IllegalStateException.class, suggester::refresh)); + } + + private Input sharedInputs[] = new Input[] { + new Input("lend me your ear", 8, new BytesRef("foobar")), + new Input("a penny saved is a penny earned", 10, new BytesRef("foobaz")), + }; + + private interface SuggesterOperation { + void operate(AnalyzingInfixSuggester suggester) throws Exception; + } + + /** + * Perform the given operation on suggesters constructed with all combinations of options + * commitOnBuild and closeIndexWriterOnBuild, including defaults. + */ + private void performOperationWithAllOptionCombinations(SuggesterOperation operation) throws Exception { + Analyzer a = new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false); + + AnalyzingInfixSuggester suggester = new AnalyzingInfixSuggester(newDirectory(), a); + operation.operate(suggester); + suggester.close(); + + suggester = new AnalyzingInfixSuggester(newDirectory(), a, a, 3, false); + operation.operate(suggester); + suggester.close(); + + suggester = new AnalyzingInfixSuggester(newDirectory(), a, a, 3, true); + operation.operate(suggester); + suggester.close(); + + suggester = new AnalyzingInfixSuggester(newDirectory(), a, a, 3, true, + AnalyzingInfixSuggester.DEFAULT_ALL_TERMS_REQUIRED, AnalyzingInfixSuggester.DEFAULT_HIGHLIGHT, true); + operation.operate(suggester); + suggester.close(); + + suggester = new AnalyzingInfixSuggester(newDirectory(), a, a, 3, true, + AnalyzingInfixSuggester.DEFAULT_ALL_TERMS_REQUIRED, AnalyzingInfixSuggester.DEFAULT_HIGHLIGHT, false); + operation.operate(suggester); + suggester.close(); + + suggester = new AnalyzingInfixSuggester(newDirectory(), a, a, 3, false, + AnalyzingInfixSuggester.DEFAULT_ALL_TERMS_REQUIRED, AnalyzingInfixSuggester.DEFAULT_HIGHLIGHT, true); + operation.operate(suggester); + suggester.close(); + + suggester = new AnalyzingInfixSuggester(newDirectory(), a, a, 3, false, + AnalyzingInfixSuggester.DEFAULT_ALL_TERMS_REQUIRED, AnalyzingInfixSuggester.DEFAULT_HIGHLIGHT, false); + operation.operate(suggester); + suggester.close(); + + a.close(); + } } From 738198ef34b694a2a3ff8d48d5ae8a50ca34c803 Mon Sep 17 00:00:00 2001 From: yonik Date: Thu, 17 Nov 2016 10:56:37 -0500 Subject: [PATCH 09/18] SOLR-9772: reuse comparator when deriving fieldSortValues --- solr/CHANGES.txt | 3 +++ .../apache/solr/handler/component/QueryComponent.java | 10 +++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 00c0669a9f3..56c491cfd2a 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -128,6 +128,9 @@ Optimizations * SOLR-9726: Reduce number of lookupOrd calls made by the DocValuesFacets.getCounts method. (Jonny Marks via Christine Poerschke) +* SOLR-9772: Deriving distributed sort values (fieldSortValues) should reuse + comparator and only invalidate leafComparator. (John Call via yonik) + Bug Fixes ---------------------- * SOLR-9701: NPE in export handler when "fl" parameter is omitted. diff --git a/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java b/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java index c0484eca0dc..9823f3d1274 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java +++ b/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java @@ -616,7 +616,7 @@ public class QueryComponent extends SearchComponent // :TODO: would be simpler to always serialize every position of SortField[] if (type==SortField.Type.SCORE || type==SortField.Type.DOC) continue; - FieldComparator comparator = null; + FieldComparator comparator = sortField.getComparator(1,0); LeafFieldComparator leafComparator = null; Object[] vals = new Object[nDocs]; @@ -633,13 +633,13 @@ public class QueryComponent extends SearchComponent idx = ReaderUtil.subIndex(doc, leaves); currentLeaf = leaves.get(idx); if (idx != lastIdx) { - // we switched segments. invalidate comparator. - comparator = null; + // we switched segments. invalidate leafComparator. + lastIdx = idx; + leafComparator = null; } } - if (comparator == null) { - comparator = sortField.getComparator(1,0); + if (leafComparator == null) { leafComparator = comparator.getLeafComparator(currentLeaf); } From c51e89014ac74f164e3b6962abc5f0db56ee99bb Mon Sep 17 00:00:00 2001 From: David Smiley Date: Thu, 17 Nov 2016 11:19:54 -0500 Subject: [PATCH 10/18] LUCENE-7559: UnifiedHighlighter: Increase Passage visibility --- lucene/CHANGES.txt | 3 ++ .../uhighlight/AnalysisOffsetStrategy.java | 3 ++ .../uhighlight/DefaultPassageFormatter.java | 14 +++---- .../search/uhighlight/FieldHighlighter.java | 30 +++++++-------- .../lucene/search/uhighlight/OffsetsEnum.java | 8 ++-- .../lucene/search/uhighlight/Passage.java | 38 ++++++++++++++----- .../uhighlight/TokenStreamOffsetStrategy.java | 7 ++-- .../uhighlight/TestUnifiedHighlighterMTQ.java | 14 +++---- 8 files changed, 70 insertions(+), 47 deletions(-) diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt index 27d6cc9ad05..f5dfd446a2d 100644 --- a/lucene/CHANGES.txt +++ b/lucene/CHANGES.txt @@ -111,6 +111,9 @@ Other * LUCENE-7534: fix smokeTestRelease.py to run on Cygwin (Mikhail Khludnev) +* LUCENE-7559: UnifiedHighlighter: Make Passage more exposed to allow passage creation to + be customized. (David Smiley) + Build * LUCENE-7387: fix defaultCodec in build.xml to account for the line ending (hossman) diff --git a/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/AnalysisOffsetStrategy.java b/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/AnalysisOffsetStrategy.java index e9db77cab11..162d2700394 100644 --- a/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/AnalysisOffsetStrategy.java +++ b/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/AnalysisOffsetStrategy.java @@ -75,6 +75,9 @@ public abstract class AnalysisOffsetStrategy extends FieldOffsetStrategy { * * @lucene.internal */ + // TODO we could make this go away. MemoryIndexOffsetStrategy could simply split and analyze each value into the + // MemoryIndex. TokenStreamOffsetStrategy's hack TokenStreamPostingsEnum could incorporate this logic, + // albeit with less code, less hack. private static final class MultiValueTokenStream extends TokenFilter { private final String fieldName; diff --git a/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/DefaultPassageFormatter.java b/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/DefaultPassageFormatter.java index 77612a711bb..bc27a435a47 100644 --- a/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/DefaultPassageFormatter.java +++ b/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/DefaultPassageFormatter.java @@ -63,13 +63,13 @@ public class DefaultPassageFormatter extends PassageFormatter { int pos = 0; for (Passage passage : passages) { // don't add ellipsis if its the first one, or if its connected. - if (passage.startOffset > pos && pos > 0) { + if (passage.getStartOffset() > pos && pos > 0) { sb.append(ellipsis); } - pos = passage.startOffset; - for (int i = 0; i < passage.numMatches; i++) { - int start = passage.matchStarts[i]; - int end = passage.matchEnds[i]; + pos = passage.getStartOffset(); + for (int i = 0; i < passage.getNumMatches(); i++) { + int start = passage.getMatchStarts()[i]; + int end = passage.getMatchEnds()[i]; // its possible to have overlapping terms if (start > pos) { append(sb, content, pos, start); @@ -82,8 +82,8 @@ public class DefaultPassageFormatter extends PassageFormatter { } } // its possible a "term" from the analyzer could span a sentence boundary. - append(sb, content, pos, Math.max(pos, passage.endOffset)); - pos = passage.endOffset; + append(sb, content, pos, Math.max(pos, passage.getEndOffset())); + pos = passage.getEndOffset(); } return sb.toString(); } diff --git a/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/FieldHighlighter.java b/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/FieldHighlighter.java index 7c8f048d171..1caa7398623 100644 --- a/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/FieldHighlighter.java +++ b/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/FieldHighlighter.java @@ -117,9 +117,9 @@ public class FieldHighlighter { break; } Passage passage = new Passage(); - passage.score = Float.NaN; - passage.startOffset = pos; - passage.endOffset = next; + passage.setScore(Float.NaN); + passage.setStartOffset(pos); + passage.setEndOffset(next); passages.add(passage); pos = next; } @@ -145,12 +145,12 @@ public class FieldHighlighter { offsetsEnumQueue.add(new OffsetsEnum(null, EMPTY)); // a sentinel for termination PriorityQueue passageQueue = new PriorityQueue<>(Math.min(64, maxPassages + 1), (left, right) -> { - if (left.score < right.score) { + if (left.getScore() < right.getScore()) { return -1; - } else if (left.score > right.score) { + } else if (left.getScore() > right.getScore()) { return 1; } else { - return left.startOffset - right.startOffset; + return left.getStartOffset() - right.getStartOffset(); } }); Passage passage = new Passage(); // the current passage in-progress. Will either get reset or added to queue. @@ -170,12 +170,12 @@ public class FieldHighlighter { continue; } // See if this term should be part of a new passage. - if (start >= passage.endOffset) { - if (passage.startOffset >= 0) { // true if this passage has terms; otherwise couldn't find any (yet) + if (start >= passage.getEndOffset()) { + if (passage.getStartOffset() >= 0) { // true if this passage has terms; otherwise couldn't find any (yet) // finalize passage - passage.score *= scorer.norm(passage.startOffset); + passage.setScore(passage.getScore() * scorer.norm(passage.getStartOffset())); // new sentence: first add 'passage' to queue - if (passageQueue.size() == maxPassages && passage.score < passageQueue.peek().score) { + if (passageQueue.size() == maxPassages && passage.getScore() < passageQueue.peek().getScore()) { passage.reset(); // can't compete, just reset it } else { passageQueue.offer(passage); @@ -192,8 +192,8 @@ public class FieldHighlighter { break; } // advance breakIterator - passage.startOffset = Math.max(breakIterator.preceding(start + 1), 0); - passage.endOffset = Math.min(breakIterator.following(start), contentLength); + passage.setStartOffset(Math.max(breakIterator.preceding(start + 1), 0)); + passage.setEndOffset(Math.min(breakIterator.following(start), contentLength)); } // Add this term to the passage. int tf = 0; @@ -209,12 +209,12 @@ public class FieldHighlighter { off.nextPosition(); start = off.startOffset(); end = off.endOffset(); - if (start >= passage.endOffset || end > contentLength) { // it's beyond this passage + if (start >= passage.getEndOffset() || end > contentLength) { // it's beyond this passage offsetsEnumQueue.offer(off); break; } } - passage.score += off.weight * scorer.tf(tf, passage.endOffset - passage.startOffset); + passage.setScore(passage.getScore() + off.weight * scorer.tf(tf, passage.getEndOffset() - passage.getStartOffset())); } Passage[] passages = passageQueue.toArray(new Passage[passageQueue.size()]); @@ -222,7 +222,7 @@ public class FieldHighlighter { p.sort(); } // sort in ascending order - Arrays.sort(passages, (left, right) -> left.startOffset - right.startOffset); + Arrays.sort(passages, (left, right) -> left.getStartOffset() - right.getStartOffset()); return passages; } diff --git a/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/OffsetsEnum.java b/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/OffsetsEnum.java index cbaeb90621f..db1ea1ff83c 100644 --- a/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/OffsetsEnum.java +++ b/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/OffsetsEnum.java @@ -66,9 +66,8 @@ public class OffsetsEnum implements Comparable, Closeable { } BytesRef getTerm() throws IOException { - // the dp.getPayload thing is a hack -- see MultiTermHighlighting - return term != null ? term : postingsEnum.getPayload(); - // We don't deepcopy() because in this hack we know we don't have to. + // TODO TokenStreamOffsetStrategy could override OffsetsEnum; then remove this hack here + return term != null ? term : postingsEnum.getPayload(); // abusing payload like this is a total hack! } boolean hasMorePositions() throws IOException { @@ -91,7 +90,8 @@ public class OffsetsEnum implements Comparable, Closeable { @Override public void close() throws IOException { - if (postingsEnum instanceof Closeable) { // the one in MultiTermHighlighting is. + // TODO TokenStreamOffsetStrategy could override OffsetsEnum; then this base impl would be no-op. + if (postingsEnum instanceof Closeable) { ((Closeable) postingsEnum).close(); } } diff --git a/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/Passage.java b/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/Passage.java index de37d5da3a3..a131d86d81f 100644 --- a/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/Passage.java +++ b/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/Passage.java @@ -30,16 +30,17 @@ import org.apache.lucene.util.RamUsageEstimator; * * @lucene.experimental */ -public final class Passage { - int startOffset = -1; - int endOffset = -1; - float score = 0.0f; +public class Passage { + private int startOffset = -1; + private int endOffset = -1; + private float score = 0.0f; - int matchStarts[] = new int[8]; - int matchEnds[] = new int[8]; - BytesRef matchTerms[] = new BytesRef[8]; - int numMatches = 0; + private int[] matchStarts = new int[8]; + private int[] matchEnds = new int[8]; + private BytesRef[] matchTerms = new BytesRef[8]; + private int numMatches = 0; + /** @lucene.internal */ public void addMatch(int startOffset, int endOffset, BytesRef term) { assert startOffset >= this.startOffset && startOffset <= this.endOffset; if (numMatches == matchStarts.length) { @@ -61,7 +62,8 @@ public final class Passage { numMatches++; } - void sort() { + /** @lucene.internal */ + public void sort() { final int starts[] = matchStarts; final int ends[] = matchEnds; final BytesRef terms[] = matchTerms; @@ -89,7 +91,8 @@ public final class Passage { }.sort(0, numMatches); } - void reset() { + /** @lucene.internal */ + public void reset() { startOffset = endOffset = -1; score = 0.0f; numMatches = 0; @@ -158,4 +161,19 @@ public final class Passage { public BytesRef[] getMatchTerms() { return matchTerms; } + + /** @lucene.internal */ + public void setStartOffset(int startOffset) { + this.startOffset = startOffset; + } + + /** @lucene.internal */ + public void setEndOffset(int endOffset) { + this.endOffset = endOffset; + } + + /** @lucene.internal */ + public void setScore(float score) { + this.score = score; + } } diff --git a/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/TokenStreamOffsetStrategy.java b/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/TokenStreamOffsetStrategy.java index 966eeef9116..28eb6b1a613 100644 --- a/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/TokenStreamOffsetStrategy.java +++ b/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/TokenStreamOffsetStrategy.java @@ -69,10 +69,8 @@ public class TokenStreamOffsetStrategy extends AnalysisOffsetStrategy { return Collections.singletonList(new OffsetsEnum(null, mtqPostingsEnum)); } - // but this would have a performance cost for likely little gain in the user experience, it - // would only serve to make this method less bogus. - // instead, we always return freq() = Integer.MAX_VALUE and let the highlighter terminate based on offset... - // TODO: DWS perhaps instead OffsetsEnum could become abstract and this would be an impl? + // See class javadocs. + // TODO: DWS perhaps instead OffsetsEnum could become abstract and this would be an impl? See TODOs in OffsetsEnum. private static class TokenStreamPostingsEnum extends PostingsEnum implements Closeable { TokenStream stream; // becomes null when closed final CharacterRunAutomaton[] matchers; @@ -134,6 +132,7 @@ public class TokenStreamOffsetStrategy extends AnalysisOffsetStrategy { return currentEndOffset; } + // TOTAL HACK; used in OffsetsEnum.getTerm() @Override public BytesRef getPayload() throws IOException { if (matchDescriptions[currentMatch] == null) { diff --git a/lucene/highlighter/src/test/org/apache/lucene/search/uhighlight/TestUnifiedHighlighterMTQ.java b/lucene/highlighter/src/test/org/apache/lucene/search/uhighlight/TestUnifiedHighlighterMTQ.java index be0ff1b4948..10f36a74e8f 100644 --- a/lucene/highlighter/src/test/org/apache/lucene/search/uhighlight/TestUnifiedHighlighterMTQ.java +++ b/lucene/highlighter/src/test/org/apache/lucene/search/uhighlight/TestUnifiedHighlighterMTQ.java @@ -697,13 +697,13 @@ public class TestUnifiedHighlighterMTQ extends LuceneTestCase { int pos = 0; for (Passage passage : passages) { // don't add ellipsis if its the first one, or if its connected. - if (passage.startOffset > pos && pos > 0) { + if (passage.getStartOffset() > pos && pos > 0) { sb.append("... "); } - pos = passage.startOffset; - for (int i = 0; i < passage.numMatches; i++) { - int start = passage.matchStarts[i]; - int end = passage.matchEnds[i]; + pos = passage.getStartOffset(); + for (int i = 0; i < passage.getNumMatches(); i++) { + int start = passage.getMatchStarts()[i]; + int end = passage.getMatchEnds()[i]; // its possible to have overlapping terms if (start > pos) { sb.append(content, pos, start); @@ -719,8 +719,8 @@ public class TestUnifiedHighlighterMTQ extends LuceneTestCase { } } // its possible a "term" from the analyzer could span a sentence boundary. - sb.append(content, pos, Math.max(pos, passage.endOffset)); - pos = passage.endOffset; + sb.append(content, pos, Math.max(pos, passage.getEndOffset())); + pos = passage.getEndOffset(); } return sb.toString(); } From cbc83929e70e78d84e15013aa9e60cc81a4a7a6d Mon Sep 17 00:00:00 2001 From: David Smiley Date: Thu, 17 Nov 2016 11:23:40 -0500 Subject: [PATCH 11/18] LUCENE-7559: fix indentation of entire file --- .../uhighlight/DefaultPassageFormatter.java | 204 +++++++------- .../lucene/search/uhighlight/Passage.java | 256 +++++++++--------- 2 files changed, 232 insertions(+), 228 deletions(-) diff --git a/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/DefaultPassageFormatter.java b/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/DefaultPassageFormatter.java index bc27a435a47..62d58df70f0 100644 --- a/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/DefaultPassageFormatter.java +++ b/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/DefaultPassageFormatter.java @@ -24,115 +24,117 @@ package org.apache.lucene.search.uhighlight; * ellipses between unconnected passages. */ public class DefaultPassageFormatter extends PassageFormatter { - /** text that will appear before highlighted terms */ - protected final String preTag; - /** text that will appear after highlighted terms */ - protected final String postTag; - /** text that will appear between two unconnected passages */ - protected final String ellipsis; - /** true if we should escape for html */ - protected final boolean escape; + /** text that will appear before highlighted terms */ + protected final String preTag; + /** text that will appear after highlighted terms */ + protected final String postTag; + /** text that will appear between two unconnected passages */ + protected final String ellipsis; + /** true if we should escape for html */ + protected final boolean escape; - /** - * Creates a new DefaultPassageFormatter with the default tags. - */ - public DefaultPassageFormatter() { - this("", "", "... ", false); + /** + * Creates a new DefaultPassageFormatter with the default tags. + */ + public DefaultPassageFormatter() { + this("", "", "... ", false); + } + + /** + * Creates a new DefaultPassageFormatter with custom tags. + * + * @param preTag text which should appear before a highlighted term. + * @param postTag text which should appear after a highlighted term. + * @param ellipsis text which should be used to connect two unconnected passages. + * @param escape true if text should be html-escaped + */ + public DefaultPassageFormatter(String preTag, String postTag, String ellipsis, boolean escape) { + if (preTag == null || postTag == null || ellipsis == null) { + throw new NullPointerException(); } + this.preTag = preTag; + this.postTag = postTag; + this.ellipsis = ellipsis; + this.escape = escape; + } - /** - * Creates a new DefaultPassageFormatter with custom tags. - * @param preTag text which should appear before a highlighted term. - * @param postTag text which should appear after a highlighted term. - * @param ellipsis text which should be used to connect two unconnected passages. - * @param escape true if text should be html-escaped - */ - public DefaultPassageFormatter(String preTag, String postTag, String ellipsis, boolean escape) { - if (preTag == null || postTag == null || ellipsis == null) { - throw new NullPointerException(); + @Override + public String format(Passage passages[], String content) { + StringBuilder sb = new StringBuilder(); + int pos = 0; + for (Passage passage : passages) { + // don't add ellipsis if its the first one, or if its connected. + if (passage.getStartOffset() > pos && pos > 0) { + sb.append(ellipsis); + } + pos = passage.getStartOffset(); + for (int i = 0; i < passage.getNumMatches(); i++) { + int start = passage.getMatchStarts()[i]; + int end = passage.getMatchEnds()[i]; + // its possible to have overlapping terms + if (start > pos) { + append(sb, content, pos, start); } - this.preTag = preTag; - this.postTag = postTag; - this.ellipsis = ellipsis; - this.escape = escape; - } - - @Override - public String format(Passage passages[], String content) { - StringBuilder sb = new StringBuilder(); - int pos = 0; - for (Passage passage : passages) { - // don't add ellipsis if its the first one, or if its connected. - if (passage.getStartOffset() > pos && pos > 0) { - sb.append(ellipsis); - } - pos = passage.getStartOffset(); - for (int i = 0; i < passage.getNumMatches(); i++) { - int start = passage.getMatchStarts()[i]; - int end = passage.getMatchEnds()[i]; - // its possible to have overlapping terms - if (start > pos) { - append(sb, content, pos, start); - } - if (end > pos) { - sb.append(preTag); - append(sb, content, Math.max(pos, start), end); - sb.append(postTag); - pos = end; - } - } - // its possible a "term" from the analyzer could span a sentence boundary. - append(sb, content, pos, Math.max(pos, passage.getEndOffset())); - pos = passage.getEndOffset(); + if (end > pos) { + sb.append(preTag); + append(sb, content, Math.max(pos, start), end); + sb.append(postTag); + pos = end; } - return sb.toString(); + } + // its possible a "term" from the analyzer could span a sentence boundary. + append(sb, content, pos, Math.max(pos, passage.getEndOffset())); + pos = passage.getEndOffset(); } + return sb.toString(); + } - /** - * Appends original text to the response. - * @param dest resulting text, possibly transformed or encoded - * @param content original text content - * @param start index of the first character in content - * @param end index of the character following the last character in content - */ - protected void append(StringBuilder dest, String content, int start, int end) { - if (escape) { - // note: these are the rules from owasp.org - for (int i = start; i < end; i++) { - char ch = content.charAt(i); - switch(ch) { - case '&': - dest.append("&"); - break; - case '<': - dest.append("<"); - break; - case '>': - dest.append(">"); - break; - case '"': - dest.append("""); - break; - case '\'': - dest.append("'"); - break; - case '/': - dest.append("/"); - break; - default: - if (ch >= 0x30 && ch <= 0x39 || ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A) { - dest.append(ch); - } else if (ch < 0xff) { - dest.append("&#"); - dest.append((int)ch); - dest.append(";"); - } else { - dest.append(ch); - } - } + /** + * Appends original text to the response. + * + * @param dest resulting text, possibly transformed or encoded + * @param content original text content + * @param start index of the first character in content + * @param end index of the character following the last character in content + */ + protected void append(StringBuilder dest, String content, int start, int end) { + if (escape) { + // note: these are the rules from owasp.org + for (int i = start; i < end; i++) { + char ch = content.charAt(i); + switch (ch) { + case '&': + dest.append("&"); + break; + case '<': + dest.append("<"); + break; + case '>': + dest.append(">"); + break; + case '"': + dest.append("""); + break; + case '\'': + dest.append("'"); + break; + case '/': + dest.append("/"); + break; + default: + if (ch >= 0x30 && ch <= 0x39 || ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A) { + dest.append(ch); + } else if (ch < 0xff) { + dest.append("&#"); + dest.append((int) ch); + dest.append(";"); + } else { + dest.append(ch); } - } else { - dest.append(content, start, end); } + } + } else { + dest.append(content, start, end); } + } } diff --git a/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/Passage.java b/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/Passage.java index a131d86d81f..d64b96e5e8a 100644 --- a/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/Passage.java +++ b/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/Passage.java @@ -23,7 +23,7 @@ import org.apache.lucene.util.InPlaceMergeSorter; import org.apache.lucene.util.RamUsageEstimator; /** - * Represents a passage (typically a sentence of the document). + * Represents a passage (typically a sentence of the document). *

* A passage contains {@link #getNumMatches} highlights from the query, * and the offsets and query terms that correspond with each match. @@ -31,149 +31,151 @@ import org.apache.lucene.util.RamUsageEstimator; * @lucene.experimental */ public class Passage { - private int startOffset = -1; - private int endOffset = -1; - private float score = 0.0f; + private int startOffset = -1; + private int endOffset = -1; + private float score = 0.0f; - private int[] matchStarts = new int[8]; - private int[] matchEnds = new int[8]; - private BytesRef[] matchTerms = new BytesRef[8]; - private int numMatches = 0; + private int[] matchStarts = new int[8]; + private int[] matchEnds = new int[8]; + private BytesRef[] matchTerms = new BytesRef[8]; + private int numMatches = 0; - /** @lucene.internal */ - public void addMatch(int startOffset, int endOffset, BytesRef term) { - assert startOffset >= this.startOffset && startOffset <= this.endOffset; - if (numMatches == matchStarts.length) { - int newLength = ArrayUtil.oversize(numMatches+1, RamUsageEstimator.NUM_BYTES_OBJECT_REF); - int newMatchStarts[] = new int[newLength]; - int newMatchEnds[] = new int[newLength]; - BytesRef newMatchTerms[] = new BytesRef[newLength]; - System.arraycopy(matchStarts, 0, newMatchStarts, 0, numMatches); - System.arraycopy(matchEnds, 0, newMatchEnds, 0, numMatches); - System.arraycopy(matchTerms, 0, newMatchTerms, 0, numMatches); - matchStarts = newMatchStarts; - matchEnds = newMatchEnds; - matchTerms = newMatchTerms; - } - assert matchStarts.length == matchEnds.length && matchEnds.length == matchTerms.length; - matchStarts[numMatches] = startOffset; - matchEnds[numMatches] = endOffset; - matchTerms[numMatches] = term; - numMatches++; + /** @lucene.internal */ + public void addMatch(int startOffset, int endOffset, BytesRef term) { + assert startOffset >= this.startOffset && startOffset <= this.endOffset; + if (numMatches == matchStarts.length) { + int newLength = ArrayUtil.oversize(numMatches + 1, RamUsageEstimator.NUM_BYTES_OBJECT_REF); + int newMatchStarts[] = new int[newLength]; + int newMatchEnds[] = new int[newLength]; + BytesRef newMatchTerms[] = new BytesRef[newLength]; + System.arraycopy(matchStarts, 0, newMatchStarts, 0, numMatches); + System.arraycopy(matchEnds, 0, newMatchEnds, 0, numMatches); + System.arraycopy(matchTerms, 0, newMatchTerms, 0, numMatches); + matchStarts = newMatchStarts; + matchEnds = newMatchEnds; + matchTerms = newMatchTerms; } + assert matchStarts.length == matchEnds.length && matchEnds.length == matchTerms.length; + matchStarts[numMatches] = startOffset; + matchEnds[numMatches] = endOffset; + matchTerms[numMatches] = term; + numMatches++; + } - /** @lucene.internal */ - public void sort() { - final int starts[] = matchStarts; - final int ends[] = matchEnds; - final BytesRef terms[] = matchTerms; - new InPlaceMergeSorter() { - @Override - protected void swap(int i, int j) { - int temp = starts[i]; - starts[i] = starts[j]; - starts[j] = temp; + /** @lucene.internal */ + public void sort() { + final int starts[] = matchStarts; + final int ends[] = matchEnds; + final BytesRef terms[] = matchTerms; + new InPlaceMergeSorter() { + @Override + protected void swap(int i, int j) { + int temp = starts[i]; + starts[i] = starts[j]; + starts[j] = temp; - temp = ends[i]; - ends[i] = ends[j]; - ends[j] = temp; + temp = ends[i]; + ends[i] = ends[j]; + ends[j] = temp; - BytesRef tempTerm = terms[i]; - terms[i] = terms[j]; - terms[j] = tempTerm; - } + BytesRef tempTerm = terms[i]; + terms[i] = terms[j]; + terms[j] = tempTerm; + } - @Override - protected int compare(int i, int j) { - return Integer.compare(starts[i], starts[j]); - } + @Override + protected int compare(int i, int j) { + return Integer.compare(starts[i], starts[j]); + } - }.sort(0, numMatches); - } + }.sort(0, numMatches); + } - /** @lucene.internal */ - public void reset() { - startOffset = endOffset = -1; - score = 0.0f; - numMatches = 0; - } + /** @lucene.internal */ + public void reset() { + startOffset = endOffset = -1; + score = 0.0f; + numMatches = 0; + } - /** - * Start offset of this passage. - * @return start index (inclusive) of the passage in the - * original content: always >= 0. - */ - public int getStartOffset() { - return startOffset; - } + /** + * Start offset of this passage. + * + * @return start index (inclusive) of the passage in the + * original content: always >= 0. + */ + public int getStartOffset() { + return startOffset; + } - /** - * End offset of this passage. - * @return end index (exclusive) of the passage in the - * original content: always >= {@link #getStartOffset()} - */ - public int getEndOffset() { - return endOffset; - } + /** + * End offset of this passage. + * + * @return end index (exclusive) of the passage in the + * original content: always >= {@link #getStartOffset()} + */ + public int getEndOffset() { + return endOffset; + } - /** - * Passage's score. - */ - public float getScore() { - return score; - } + /** + * Passage's score. + */ + public float getScore() { + return score; + } - /** - * Number of term matches available in - * {@link #getMatchStarts}, {@link #getMatchEnds}, - * {@link #getMatchTerms} - */ - public int getNumMatches() { - return numMatches; - } + /** + * Number of term matches available in + * {@link #getMatchStarts}, {@link #getMatchEnds}, + * {@link #getMatchTerms} + */ + public int getNumMatches() { + return numMatches; + } - /** - * Start offsets of the term matches, in increasing order. - *

- * Only {@link #getNumMatches} are valid. Note that these - * offsets are absolute (not relative to {@link #getStartOffset()}). - */ - public int[] getMatchStarts() { - return matchStarts; - } + /** + * Start offsets of the term matches, in increasing order. + *

+ * Only {@link #getNumMatches} are valid. Note that these + * offsets are absolute (not relative to {@link #getStartOffset()}). + */ + public int[] getMatchStarts() { + return matchStarts; + } - /** - * End offsets of the term matches, corresponding with {@link #getMatchStarts}. - *

- * Only {@link #getNumMatches} are valid. Note that its possible that an end offset - * could exceed beyond the bounds of the passage ({@link #getEndOffset()}), if the - * Analyzer produced a term which spans a passage boundary. - */ - public int[] getMatchEnds() { - return matchEnds; - } + /** + * End offsets of the term matches, corresponding with {@link #getMatchStarts}. + *

+ * Only {@link #getNumMatches} are valid. Note that its possible that an end offset + * could exceed beyond the bounds of the passage ({@link #getEndOffset()}), if the + * Analyzer produced a term which spans a passage boundary. + */ + public int[] getMatchEnds() { + return matchEnds; + } - /** - * BytesRef (term text) of the matches, corresponding with {@link #getMatchStarts()}. - *

- * Only {@link #getNumMatches()} are valid. - */ - public BytesRef[] getMatchTerms() { - return matchTerms; - } + /** + * BytesRef (term text) of the matches, corresponding with {@link #getMatchStarts()}. + *

+ * Only {@link #getNumMatches()} are valid. + */ + public BytesRef[] getMatchTerms() { + return matchTerms; + } - /** @lucene.internal */ - public void setStartOffset(int startOffset) { - this.startOffset = startOffset; - } + /** @lucene.internal */ + public void setStartOffset(int startOffset) { + this.startOffset = startOffset; + } - /** @lucene.internal */ - public void setEndOffset(int endOffset) { - this.endOffset = endOffset; - } + /** @lucene.internal */ + public void setEndOffset(int endOffset) { + this.endOffset = endOffset; + } - /** @lucene.internal */ - public void setScore(float score) { - this.score = score; - } + /** @lucene.internal */ + public void setScore(float score) { + this.score = score; + } } From 7d7e362d6f6d99152fe6cb6c38c955f6043b7081 Mon Sep 17 00:00:00 2001 From: Steve Rowe Date: Thu, 17 Nov 2016 12:54:33 -0500 Subject: [PATCH 12/18] LUCENE-7542: Release smoker should fail when CHANGES.txt has a release section for a future release --- dev-tools/scripts/smokeTestRelease.py | 28 ++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/dev-tools/scripts/smokeTestRelease.py b/dev-tools/scripts/smokeTestRelease.py index 2e38e9b4144..2b1ff193e4d 100644 --- a/dev-tools/scripts/smokeTestRelease.py +++ b/dev-tools/scripts/smokeTestRelease.py @@ -431,6 +431,7 @@ reChangesSectionHREF = re.compile('(.*?)', re.IGNORECASE) reUnderbarNotDashHTML = re.compile(r'

  • (\s*(LUCENE|SOLR)_\d\d\d\d+)') reUnderbarNotDashTXT = re.compile(r'\s+((LUCENE|SOLR)_\d\d\d\d+)', re.MULTILINE) def checkChangesContent(s, version, name, project, isHTML): + currentVersionTuple = versionToTuple(version, name) if isHTML and s.find('Release %s' % version) == -1: raise RuntimeError('did not see "Release %s" in %s' % (version, name)) @@ -459,7 +460,8 @@ def checkChangesContent(s, version, name, project, isHTML): raise RuntimeError('did not see "%s" in %s' % (sub, name)) if isHTML: - # Make sure a section only appears once under each release: + # Make sure that a section only appears once under each release, + # and that each release is not greater than the current version seenIDs = set() seenText = set() @@ -468,6 +470,9 @@ def checkChangesContent(s, version, name, project, isHTML): if text.lower().startswith('release '): release = text[8:].strip() seenText.clear() + releaseTuple = versionToTuple(release, name) + if releaseTuple > currentVersionTuple: + raise RuntimeError('Future release %s is greater than %s in %s' % (release, version, name)) if id in seenIDs: raise RuntimeError('%s has duplicate section "%s" under release "%s"' % (name, text, release)) seenIDs.add(id) @@ -475,6 +480,27 @@ def checkChangesContent(s, version, name, project, isHTML): raise RuntimeError('%s has duplicate section "%s" under release "%s"' % (name, text, release)) seenText.add(text) + +reVersion = re.compile(r'(\d+)\.(\d+)(?:\.(\d+))?\s*(-alpha|-beta|final|RC\d+)?\s*(?:\[.*\])?', re.IGNORECASE) +def versionToTuple(version, name): + versionMatch = reVersion.match(version) + if versionMatch is None: + raise RuntimeError('Version %s in %s cannot be parsed' % (version, name)) + versionTuple = versionMatch.groups() + while versionTuple[-1] is None or versionTuple[-1] == '': + versionTuple = versionTuple[:-1] + if versionTuple[-1].lower() == '-alpha': + versionTuple = versionTuple[:-1] + ('0',) + elif versionTuple[-1].lower() == '-beta': + versionTuple = versionTuple[:-1] + ('1',) + elif versionTuple[-1].lower() == 'final': + versionTuple = versionTuple[:-2] + ('100',) + elif versionTuple[-1].lower()[:2] == 'rc': + versionTuple = versionTuple[:-2] + (versionTuple[-1][2:],) + print('%s: %s' % (version, versionTuple)) + return versionTuple + + reUnixPath = re.compile(r'\b[a-zA-Z_]+=(?:"(?:\\"|[^"])*"' + '|(?:\\\\.|[^"\'\\s])*' + r"|'(?:\\'|[^'])*')" \ + r'|(/(?:\\.|[^"\'\s])*)' \ + r'|("/(?:\\.|[^"])*")' \ From 46ce87c70070448149deedab52c0e4749db818d2 Mon Sep 17 00:00:00 2001 From: yonik Date: Thu, 17 Nov 2016 16:46:57 -0500 Subject: [PATCH 13/18] SOLR-9324: move changes entry to 6.4 --- solr/CHANGES.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 56c491cfd2a..9ba9eb8abbd 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -120,6 +120,9 @@ New Features * SOLR-9077: Streaming expressions should support collection alias (Kevin Risden) +* SOLR-9324: Support Secure Impersonation / Proxy User for solr authentication + (Gregory Chanan, Hrishikesh Gadre via yonik) + Optimizations ---------------------- * SOLR-9704: Facet Module / JSON Facet API: Optimize blockChildren facets that have @@ -622,9 +625,6 @@ New Features * SOLR-9279: New boolean comparison function queries comparing numeric arguments: gt, gte, lt, lte, eq (Doug Turnbull, David Smiley) -* SOLR-9324: Support Secure Impersonation / Proxy User for solr authentication - (Gregory Chanan) - * SOLR-9252: Feature selection and logistic regression on text (Cao Manh Dat, Joel Bernstein) * SOLR-6465: CDCR: fall back to whole-index replication when tlogs are insufficient. From 8938c9f3d0608544ba6f16832bad7421d4080b7b Mon Sep 17 00:00:00 2001 From: Steve Rowe Date: Thu, 17 Nov 2016 18:50:58 -0500 Subject: [PATCH 14/18] LUCENE-7533: Classic query parser: disallow autoGeneratePhraseQueries=true when splitOnWhitespace=false (and vice-versa). --- lucene/CHANGES.txt | 8 ++ .../queryparser/classic/QueryParser.java | 78 +++++++++++++------ .../lucene/queryparser/classic/QueryParser.jj | 28 +++++++ .../queryparser/classic/QueryParserBase.java | 2 +- .../queryparser/classic/TestQueryParser.java | 14 ++++ .../queryparser/util/QueryParserTestBase.java | 4 + 6 files changed, 108 insertions(+), 26 deletions(-) diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt index f5dfd446a2d..051c326ab81 100644 --- a/lucene/CHANGES.txt +++ b/lucene/CHANGES.txt @@ -56,6 +56,11 @@ Other ======================= Lucene 6.4.0 ======================= +API Changes + +* LUCENE-7533: Classic query parser no longer allows autoGeneratePhraseQueries + to be set to true when splitOnWhitespace is false (and vice-versa). + New features * LUCENE-5867: Added BooleanSimilarity. (Robert Muir, Adrien Grand) @@ -67,6 +72,9 @@ Bug Fixes * LUCENE-7562: CompletionFieldsConsumer sometimes throws NullPointerException on ghost fields (Oliver Eilhard via Mike McCandless) + +* LUCENE-7533: Classic query parser: disallow autoGeneratePhraseQueries=true + when splitOnWhitespace=false (and vice-versa). (Steve Rowe) Improvements diff --git a/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParser.java b/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParser.java index dc43ab14592..5e5d57bf294 100644 --- a/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParser.java +++ b/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParser.java @@ -96,6 +96,27 @@ public class QueryParser extends QueryParserBase implements QueryParserConstants init(f, a); } + /** + * Set to true if phrase queries will be automatically generated + * when the analyzer returns more than one term from whitespace + * delimited text. + * NOTE: this behavior may not be suitable for all languages. + *

    + * Set to false if phrase queries should only be generated when + * surrounded by double quotes. + *

    + * The combination splitOnWhitespace=false and autoGeneratePhraseQueries=true + * is disallowed. See LUCENE-7533. + */ + @Override + public void setAutoGeneratePhraseQueries(boolean value) { + if (splitOnWhitespace == false && value == true) { + throw new IllegalArgumentException + ("setAutoGeneratePhraseQueries(true) is disallowed when getSplitOnWhitespace() == false"); + } + this.autoGeneratePhraseQueries = value; + } + /** * @see #setSplitOnWhitespace(boolean) */ @@ -106,8 +127,15 @@ public class QueryParser extends QueryParserBase implements QueryParserConstants /** * Whether query text should be split on whitespace prior to analysis. * Default is {@value #DEFAULT_SPLIT_ON_WHITESPACE}. + *

    + * The combination splitOnWhitespace=false and autoGeneratePhraseQueries=true + * is disallowed. See LUCENE-7533. */ public void setSplitOnWhitespace(boolean splitOnWhitespace) { + if (splitOnWhitespace == false && getAutoGeneratePhraseQueries() == true) { + throw new IllegalArgumentException + ("setSplitOnWhitespace(false) is disallowed when getAutoGeneratePhraseQueries() == true"); + } this.splitOnWhitespace = splitOnWhitespace; } @@ -635,6 +663,31 @@ public class QueryParser extends QueryParserBase implements QueryParserConstants finally { jj_save(2, xla); } } + private boolean jj_3R_3() { + if (jj_scan_token(TERM)) return true; + jj_lookingAhead = true; + jj_semLA = getToken(1).kind == TERM && allowedPostMultiTerm(getToken(2).kind); + jj_lookingAhead = false; + if (!jj_semLA || jj_3R_6()) return true; + Token xsp; + if (jj_3R_7()) return true; + while (true) { + xsp = jj_scanpos; + if (jj_3R_7()) { jj_scanpos = xsp; break; } + } + return false; + } + + private boolean jj_3R_6() { + return false; + } + + private boolean jj_3R_5() { + if (jj_scan_token(STAR)) return true; + if (jj_scan_token(COLON)) return true; + return false; + } + private boolean jj_3R_4() { if (jj_scan_token(TERM)) return true; if (jj_scan_token(COLON)) return true; @@ -666,31 +719,6 @@ public class QueryParser extends QueryParserBase implements QueryParserConstants return false; } - private boolean jj_3R_3() { - if (jj_scan_token(TERM)) return true; - jj_lookingAhead = true; - jj_semLA = getToken(1).kind == TERM && allowedPostMultiTerm(getToken(2).kind); - jj_lookingAhead = false; - if (!jj_semLA || jj_3R_6()) return true; - Token xsp; - if (jj_3R_7()) return true; - while (true) { - xsp = jj_scanpos; - if (jj_3R_7()) { jj_scanpos = xsp; break; } - } - return false; - } - - private boolean jj_3R_6() { - return false; - } - - private boolean jj_3R_5() { - if (jj_scan_token(STAR)) return true; - if (jj_scan_token(COLON)) return true; - return false; - } - /** Generated Token Manager. */ public QueryParserTokenManager token_source; /** Current token. */ diff --git a/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParser.jj b/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParser.jj index ea185881464..35cbe1a1977 100644 --- a/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParser.jj +++ b/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParser.jj @@ -120,6 +120,27 @@ public class QueryParser extends QueryParserBase { init(f, a); } + /** + * Set to true if phrase queries will be automatically generated + * when the analyzer returns more than one term from whitespace + * delimited text. + * NOTE: this behavior may not be suitable for all languages. + *

    + * Set to false if phrase queries should only be generated when + * surrounded by double quotes. + *

    + * The combination splitOnWhitespace=false and autoGeneratePhraseQueries=true + * is disallowed. See LUCENE-7533. + */ + @Override + public void setAutoGeneratePhraseQueries(boolean value) { + if (splitOnWhitespace == false && value == true) { + throw new IllegalArgumentException + ("setAutoGeneratePhraseQueries(true) is disallowed when getSplitOnWhitespace() == false"); + } + this.autoGeneratePhraseQueries = value; + } + /** * @see #setSplitOnWhitespace(boolean) */ @@ -130,8 +151,15 @@ public class QueryParser extends QueryParserBase { /** * Whether query text should be split on whitespace prior to analysis. * Default is {@value #DEFAULT_SPLIT_ON_WHITESPACE}. + *

    + * The combination splitOnWhitespace=false and autoGeneratePhraseQueries=true + * is disallowed. See LUCENE-7533. */ public void setSplitOnWhitespace(boolean splitOnWhitespace) { + if (splitOnWhitespace == false && getAutoGeneratePhraseQueries() == true) { + throw new IllegalArgumentException + ("setSplitOnWhitespace(false) is disallowed when getAutoGeneratePhraseQueries() == true"); + } this.splitOnWhitespace = splitOnWhitespace; } diff --git a/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParserBase.java b/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParserBase.java index fbe08a90770..41d3764f0ac 100644 --- a/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParserBase.java +++ b/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParserBase.java @@ -144,7 +144,7 @@ public abstract class QueryParserBase extends QueryBuilder implements CommonQuer * Set to false if phrase queries should only be generated when * surrounded by double quotes. */ - public final void setAutoGeneratePhraseQueries(boolean value) { + public void setAutoGeneratePhraseQueries(boolean value) { this.autoGeneratePhraseQueries = value; } diff --git a/lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestQueryParser.java b/lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestQueryParser.java index de90e29affe..bb976249bf6 100644 --- a/lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestQueryParser.java +++ b/lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestQueryParser.java @@ -840,6 +840,20 @@ public class TestQueryParser extends QueryParserTestBase { assertTrue(isAHit(qp.parse("เ??"), s, analyzer)); } + // LUCENE-7533 + public void test_splitOnWhitespace_with_autoGeneratePhraseQueries() { + final QueryParser qp = new QueryParser(FIELD, new MockAnalyzer(random())); + expectThrows(IllegalArgumentException.class, () -> { + qp.setSplitOnWhitespace(false); + qp.setAutoGeneratePhraseQueries(true); + }); + final QueryParser qp2 = new QueryParser(FIELD, new MockAnalyzer(random())); + expectThrows(IllegalArgumentException.class, () -> { + qp2.setSplitOnWhitespace(true); + qp2.setAutoGeneratePhraseQueries(true); + qp2.setSplitOnWhitespace(false); + }); + } private boolean isAHit(Query q, String content, Analyzer analyzer) throws IOException{ Directory ramDir = newDirectory(); diff --git a/lucene/queryparser/src/test/org/apache/lucene/queryparser/util/QueryParserTestBase.java b/lucene/queryparser/src/test/org/apache/lucene/queryparser/util/QueryParserTestBase.java index 217019350b7..004110634e1 100644 --- a/lucene/queryparser/src/test/org/apache/lucene/queryparser/util/QueryParserTestBase.java +++ b/lucene/queryparser/src/test/org/apache/lucene/queryparser/util/QueryParserTestBase.java @@ -38,6 +38,7 @@ import org.apache.lucene.index.Term; //import org.apache.lucene.queryparser.classic.ParseException; //import org.apache.lucene.queryparser.classic.QueryParser; //import org.apache.lucene.queryparser.classic.QueryParserBase; +import org.apache.lucene.queryparser.classic.QueryParser; import org.apache.lucene.queryparser.classic.QueryParserBase; //import org.apache.lucene.queryparser.classic.QueryParserTokenManager; import org.apache.lucene.queryparser.flexible.standard.CommonQueryParserConfiguration; @@ -328,6 +329,9 @@ public abstract class QueryParserTestBase extends LuceneTestCase { PhraseQuery expected = new PhraseQuery("field", "中", "国"); CommonQueryParserConfiguration qp = getParserConfig(analyzer); + if (qp instanceof QueryParser) { // Always true, since TestStandardQP overrides this method + ((QueryParser)qp).setSplitOnWhitespace(true); // LUCENE-7533 + } setAutoGeneratePhraseQueries(qp, true); assertEquals(expected, getQuery("中国",qp)); } From 6d540b9d7a1a9b944bacb348c7ea681705e462e4 Mon Sep 17 00:00:00 2001 From: Adrien Grand Date: Fri, 18 Nov 2016 10:06:16 +0100 Subject: [PATCH 15/18] LUCENE-7536: ASCIIFoldingFilterFactory.getMultiTermComponent can emit two tokens. --- lucene/CHANGES.txt | 3 ++ .../ASCIIFoldingFilterFactory.java | 17 +++++- .../TestAsciiFoldingFilterFactory.java | 54 +++++++++++++++++++ 3 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestAsciiFoldingFilterFactory.java diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt index 051c326ab81..dfbf3182307 100644 --- a/lucene/CHANGES.txt +++ b/lucene/CHANGES.txt @@ -76,6 +76,9 @@ Bug Fixes * LUCENE-7533: Classic query parser: disallow autoGeneratePhraseQueries=true when splitOnWhitespace=false (and vice-versa). (Steve Rowe) +* LUCENE-7536: ASCIIFoldingFilterFactory used to return an illegal multi-term + component when preserveOriginal was set to true. (Adrien Grand) + Improvements * LUCENE-6824: TermAutomatonQuery now rewrites to TermQuery, diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ASCIIFoldingFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ASCIIFoldingFilterFactory.java index 60dddff6bd2..4e64abe3c22 100644 --- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ASCIIFoldingFilterFactory.java +++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ASCIIFoldingFilterFactory.java @@ -17,6 +17,7 @@ package org.apache.lucene.analysis.miscellaneous; +import java.util.HashMap; import java.util.Map; import org.apache.lucene.analysis.util.AbstractAnalysisFactory; @@ -36,12 +37,14 @@ import org.apache.lucene.analysis.TokenStream; * </fieldType> */ public class ASCIIFoldingFilterFactory extends TokenFilterFactory implements MultiTermAwareComponent { + private static final String PRESERVE_ORIGINAL = "preserveOriginal"; + private final boolean preserveOriginal; /** Creates a new ASCIIFoldingFilterFactory */ public ASCIIFoldingFilterFactory(Map args) { super(args); - preserveOriginal = getBoolean(args, "preserveOriginal", false); + preserveOriginal = getBoolean(args, PRESERVE_ORIGINAL, false); if (!args.isEmpty()) { throw new IllegalArgumentException("Unknown parameters: " + args); } @@ -54,7 +57,17 @@ public class ASCIIFoldingFilterFactory extends TokenFilterFactory implements Mul @Override public AbstractAnalysisFactory getMultiTermComponent() { - return this; + if (preserveOriginal) { + // The main use-case for using preserveOriginal is to match regardless of + // case but to give better scores to exact matches. Since most multi-term + // queries return constant scores anyway, the multi-term component only + // emits the folded token + Map args = new HashMap<>(getOriginalArgs()); + args.remove(PRESERVE_ORIGINAL); + return new ASCIIFoldingFilterFactory(args); + } else { + return this; + } } } diff --git a/lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestAsciiFoldingFilterFactory.java b/lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestAsciiFoldingFilterFactory.java new file mode 100644 index 00000000000..87d87607c2d --- /dev/null +++ b/lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestAsciiFoldingFilterFactory.java @@ -0,0 +1,54 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.lucene.analysis.miscellaneous; + +import java.io.IOException; +import java.util.Collections; +import java.util.HashMap; + +import org.apache.lucene.analysis.CannedTokenStream; +import org.apache.lucene.analysis.Token; +import org.apache.lucene.analysis.TokenStream; +import org.apache.lucene.analysis.util.BaseTokenStreamFactoryTestCase; +import org.apache.lucene.analysis.util.MultiTermAwareComponent; +import org.apache.lucene.analysis.util.TokenFilterFactory; + +public class TestAsciiFoldingFilterFactory extends BaseTokenStreamFactoryTestCase { + + public void testMultiTermAnalysis() throws IOException { + TokenFilterFactory factory = new ASCIIFoldingFilterFactory(Collections.emptyMap()); + TokenStream stream = new CannedTokenStream(new Token("Été", 0, 3)); + stream = factory.create(stream); + assertTokenStreamContents(stream, new String[] { "Ete" }); + + factory = (TokenFilterFactory) ((MultiTermAwareComponent) factory).getMultiTermComponent(); + stream = new CannedTokenStream(new Token("Été", 0, 3)); + stream = factory.create(stream); + assertTokenStreamContents(stream, new String[] { "Ete" }); + + factory = new ASCIIFoldingFilterFactory(new HashMap<>(Collections.singletonMap("preserveOriginal", "true"))); + stream = new CannedTokenStream(new Token("Été", 0, 3)); + stream = factory.create(stream); + assertTokenStreamContents(stream, new String[] { "Ete", "Été" }); + + factory = (TokenFilterFactory) ((MultiTermAwareComponent) factory).getMultiTermComponent(); + stream = new CannedTokenStream(new Token("Été", 0, 3)); + stream = factory.create(stream); + assertTokenStreamContents(stream, new String[] { "Ete" }); + } + +} From 5e062d209aa87dd26406a098cca1159e00d11bd4 Mon Sep 17 00:00:00 2001 From: Mike McCandless Date: Fri, 18 Nov 2016 06:22:30 -0500 Subject: [PATCH 16/18] make PrimaryNode's IndexWriter protected --- .../src/java/org/apache/lucene/replicator/nrt/PrimaryNode.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lucene/replicator/src/java/org/apache/lucene/replicator/nrt/PrimaryNode.java b/lucene/replicator/src/java/org/apache/lucene/replicator/nrt/PrimaryNode.java index 8a3f07e4820..ee770cba51a 100644 --- a/lucene/replicator/src/java/org/apache/lucene/replicator/nrt/PrimaryNode.java +++ b/lucene/replicator/src/java/org/apache/lucene/replicator/nrt/PrimaryNode.java @@ -56,7 +56,7 @@ public abstract class PrimaryNode extends Node { // Current NRT segment infos, incRef'd with IndexWriter.deleter: private SegmentInfos curInfos; - final IndexWriter writer; + protected final IndexWriter writer; // IncRef'd state of the last published NRT point; when a replica comes asking, we give it this as the current NRT point: private CopyState copyState; From 157c0bca92c744a06e03ea09dd232a3aa8c19c5c Mon Sep 17 00:00:00 2001 From: Alan Woodward Date: Fri, 18 Nov 2016 13:45:29 +0000 Subject: [PATCH 17/18] Log root cause error when directories can't be deleted on core unload --- solr/core/src/java/org/apache/solr/core/SolrCore.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/solr/core/src/java/org/apache/solr/core/SolrCore.java b/solr/core/src/java/org/apache/solr/core/SolrCore.java index 8195a64504c..e5bc53da9bd 100644 --- a/solr/core/src/java/org/apache/solr/core/SolrCore.java +++ b/solr/core/src/java/org/apache/solr/core/SolrCore.java @@ -2645,16 +2645,14 @@ public final class SolrCore implements SolrInfoMBean, Closeable { try { FileUtils.deleteDirectory(dataDir); } catch (IOException e) { - SolrException.log(log, "Failed to delete data dir for unloaded core:" + cd.getName() - + " dir:" + dataDir.getAbsolutePath()); + log.error("Failed to delete data dir for unloaded core: {} dir: {}", cd.getName(), dataDir.getAbsolutePath(), e); } } if (deleteInstanceDir) { try { FileUtils.deleteDirectory(cd.getInstanceDir().toFile()); } catch (IOException e) { - SolrException.log(log, "Failed to delete instance dir for unloaded core:" + cd.getName() - + " dir:" + cd.getInstanceDir()); + log.error("Failed to delete instance dir for unloaded core: {} dir: {}", cd.getName(), cd.getInstanceDir(), e); } } } From 0ec660a113b6992f0e58966d7949bf8749e0cee3 Mon Sep 17 00:00:00 2001 From: Noble Paul Date: Fri, 18 Nov 2016 20:29:09 +0530 Subject: [PATCH 18/18] Wrong casting of CharSequence to String --- .../src/java/org/apache/solr/common/util/JavaBinCodec.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solr/solrj/src/java/org/apache/solr/common/util/JavaBinCodec.java b/solr/solrj/src/java/org/apache/solr/common/util/JavaBinCodec.java index 9bb5ea6aa9e..32ccf360934 100644 --- a/solr/solrj/src/java/org/apache/solr/common/util/JavaBinCodec.java +++ b/solr/solrj/src/java/org/apache/solr/common/util/JavaBinCodec.java @@ -886,7 +886,7 @@ public class JavaBinCodec implements PushWriter { daos.writeByte(NULL); return true; } else if (val instanceof CharSequence) { - writeStr((String) val); + writeStr((CharSequence) val); return true; } else if (val instanceof Number) {