You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by tf...@apache.org on 2015/01/22 10:13:25 UTC
svn commit: r1653789 - in /lucene/dev/branches/branch_5x: ./ solr/
solr/CHANGES.txt solr/core/
solr/core/src/java/org/apache/solr/spelling/suggest/SolrSuggester.java
solr/core/src/test/org/apache/solr/handler/component/SuggestComponentTest.java
Author: tflobbe
Date: Thu Jan 22 09:13:25 2015
New Revision: 1653789
URL: http://svn.apache.org/r1653789
Log:
SOLR-6845: Suggester tests start new cores instead of reloading
Modified:
lucene/dev/branches/branch_5x/ (props changed)
lucene/dev/branches/branch_5x/solr/ (props changed)
lucene/dev/branches/branch_5x/solr/CHANGES.txt (contents, props changed)
lucene/dev/branches/branch_5x/solr/core/ (props changed)
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/spelling/suggest/SolrSuggester.java
lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/component/SuggestComponentTest.java
Modified: lucene/dev/branches/branch_5x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/CHANGES.txt?rev=1653789&r1=1653788&r2=1653789&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_5x/solr/CHANGES.txt Thu Jan 22 09:13:25 2015
@@ -39,6 +39,8 @@ New Features
* SOLR-6909: Extract atomic update handling logic into AtomicUpdateDocumentMerger class
and enable subclassing. (Steve Davids, yonik)
+* SOLR-6845: Add a âbuildOnStartupâ option for suggesters. (Tomás Fernández Löbbe)
+
Other Changes
----------------------
* SOLR-7014: Collapse identical catch branches in try-catch statements. (shalin)
@@ -324,8 +326,6 @@ New Features
* SOLR-5147: Support child documents in DIH
(Vadim Kirilchuk, Shawn Heisey, Thomas Champagne, Mikhail Khludnev via Noble Paul)
-
-* SOLR-6845: Add a âbuildOnStartupâ option for suggesters. (Tomás Fernández Löbbe)
Bug Fixes
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/spelling/suggest/SolrSuggester.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/spelling/suggest/SolrSuggester.java?rev=1653789&r1=1653788&r2=1653789&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/spelling/suggest/SolrSuggester.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/spelling/suggest/SolrSuggester.java Thu Jan 22 09:13:25 2015
@@ -129,8 +129,10 @@ public class SolrSuggester implements Ac
}
if (!storeDir.exists()) {
storeDir.mkdirs();
- } else {
- // attempt reload of the stored lookup
+ } else if (getStoreFile().exists()) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("attempt reload of the stored lookup from file " + getStoreFile());
+ }
try {
lookup.load(new FileInputStream(getStoreFile()));
} catch (IOException e) {
@@ -155,7 +157,7 @@ public class SolrSuggester implements Ac
/** Build the underlying Lucene Suggester */
public void build(SolrCore core, SolrIndexSearcher searcher) throws IOException {
- LOG.info("build()");
+ LOG.info("build(" + name + ")");
dictionary = dictionaryFactory.create(core, searcher);
lookup.build(dictionary);
@@ -171,7 +173,7 @@ public class SolrSuggester implements Ac
/** Reloads the underlying Lucene Suggester */
public void reload(SolrCore core, SolrIndexSearcher searcher) throws IOException {
- LOG.info("reload()");
+ LOG.info("reload(" + name + ")");
if (dictionary == null && storeDir != null) {
File lookupFile = getStoreFile();
if (lookupFile.exists()) {
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/component/SuggestComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/component/SuggestComponentTest.java?rev=1653789&r1=1653788&r2=1653789&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/component/SuggestComponentTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/component/SuggestComponentTest.java Thu Jan 22 09:13:25 2015
@@ -42,6 +42,11 @@ public class SuggestComponentTest extend
public void setUp() throws Exception {
super.setUp();
+ assertQ(req("qt", "standard",
+ "q", "*:*"),
+ "//*[@numFound='0']"
+ );
+
// id, cat, price, weight
assertU(adoc("id", "0", "cat", "This is a title", "price", "5", "weight", "10"));
assertU(adoc("id", "1", "cat", "This is another title", "price", "10", "weight", "10"));
@@ -55,13 +60,13 @@ public class SuggestComponentTest extend
assertU(adoc("id", "9", "cat", "blah in blah", "price", "50", "weight", "40"));
assertU(adoc("id", "10", "cat", "another blah in blah", "price", "55", "weight", "40"));
assertU((commit()));
+ waitForWarming();
}
@Override
public void tearDown() throws Exception {
super.tearDown();
assertU(delQ("*:*"));
- optimize();
assertU((commit()));
// rebuild suggesters with empty index
assertQ(req("qt", rh,
@@ -223,7 +228,7 @@ public class SuggestComponentTest extend
"//lst[@name='suggest']/lst[@name='" + suggester + "']/lst[@name='example']/int[@name='numFound'][.='2']"
);
- // add one more doc, this should not be seen after a core reload (not until the suggester is manually rebuilt)
+ // add one more doc, should be visible after core reload
assertU(adoc("id", "10", "cat", "example data extra ", "price", "40", "weight", "35"));
assertU((commit()));
@@ -450,7 +455,7 @@ public class SuggestComponentTest extend
}
private void reloadCore(boolean createNewCore) throws Exception {
- if (createNewCore) {
+// if (createNewCore) {
CoreContainer cores = h.getCoreContainer();
SolrCore core = h.getCore();
String dataDir1 = core.getDataDir();
@@ -459,26 +464,32 @@ public class SuggestComponentTest extend
SolrCore createdCore = cores.create(cd);
assertEquals(dataDir1, createdCore.getDataDir());
assertEquals(createdCore, h.getCore());
- } else {
- h.reload();
- // On regular reloading, wait until the new searcher is registered
- RefCounted<SolrIndexSearcher> registeredSearcher = h.getCore().getRegisteredSearcher();
- RefCounted<SolrIndexSearcher> newestSearcher = h.getCore().getNewestSearcher(false);;
- while (registeredSearcher.get() != newestSearcher.get()) {
- registeredSearcher.decref();
- newestSearcher.decref();
- Thread.sleep(50);
- registeredSearcher = h.getCore().getRegisteredSearcher();
- newestSearcher = h.getCore().getNewestSearcher(false);
- }
- registeredSearcher.decref();
- newestSearcher.decref();
- }
+// } else {
+// h.reload();
+// // On regular reloading, wait until the new searcher is registered
+// waitForWarming();
+// }
assertQ(req("qt", "standard",
"q", "*:*"),
"//*[@numFound='11']"
);
}
+
+ private void waitForWarming() throws InterruptedException {
+ RefCounted<SolrIndexSearcher> registeredSearcher = h.getCore().getRegisteredSearcher();
+ RefCounted<SolrIndexSearcher> newestSearcher = h.getCore().getNewestSearcher(false);;
+ while (registeredSearcher == null || registeredSearcher.get() != newestSearcher.get()) {
+ if (registeredSearcher != null) {
+ registeredSearcher.decref();
+ }
+ newestSearcher.decref();
+ Thread.sleep(50);
+ registeredSearcher = h.getCore().getRegisteredSearcher();
+ newestSearcher = h.getCore().getNewestSearcher(false);
+ }
+ registeredSearcher.decref();
+ newestSearcher.decref();
+ }
}