You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by jf...@apache.org on 2004/07/15 02:14:12 UTC
cvs commit: jakarta-jetspeed/src/java/org/apache/jetspeed/services/search SearchService.java Search.java
jford 2004/07/14 17:14:12
Modified: src/java/org/apache/jetspeed/services/search/lucene
LuceneSearchService.java
src/java/org/apache/jetspeed/services/search
SearchService.java Search.java
Log:
Search enhancement to manually optimize index
PR: JS1-498
Submitted by: Enrique Lara
Revision Changes Path
1.13 +44 -10 jakarta-jetspeed/src/java/org/apache/jetspeed/services/search/lucene/LuceneSearchService.java
Index: LuceneSearchService.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/search/lucene/LuceneSearchService.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- LuceneSearchService.java 19 Jun 2004 20:29:17 -0000 1.12
+++ LuceneSearchService.java 15 Jul 2004 00:14:12 -0000 1.13
@@ -64,6 +64,10 @@
/**
* Lucene implementation of search service.
+ *
+ * This implemenation currently does not synchronize the add/update/removal.
+ * If this service is used in a multi-threaded manner, it would be advisable
+ * to synchronized the Search wrapper class to ensure thread safety.
*
* @author <a href="mailto:taylor@apache.org">David Sean taylor</a>
* @author <a href="mailto:caius1440@hotmail.com">Jeremy Ford</a>
@@ -87,6 +91,10 @@
private static final String DEFAULT_ANALYZER_CLASS_NAME = "org.apache.lucene.analysis.standard.StandardAnalyzer";
private static final String CONFIG_ANALYZER_CLASS_NAME = "analyzer";
private String analyzerClassName = null;
+
+ private static final boolean DEFAULT_AUTO_OPTIMIZE = true;
+ private static final String CONFIG_AUTO_OPTIMIZE = "auto_optimize";
+ private boolean doOptimize = DEFAULT_AUTO_OPTIMIZE;
/**
* This is the early initialization method called by the
@@ -97,7 +105,6 @@
*/
public synchronized void init(ServletConfig conf) throws InitializationException
{
-
// already initialized
if (getInit())
{
@@ -108,7 +115,6 @@
// initialization done
setInit(true);
-
}
/**
@@ -187,6 +193,9 @@
//Get analyze class name
analyzerClassName = serviceConf.getString(CONFIG_ANALYZER_CLASS_NAME, DEFAULT_ANALYZER_CLASS_NAME);
+
+ //Whether to optimize automatically after an add/remove/update.
+ doOptimize = serviceConf.getBoolean(CONFIG_AUTO_OPTIMIZE, DEFAULT_AUTO_OPTIMIZE);
try
{
@@ -529,7 +538,10 @@
try
{
- indexWriter.optimize();
+ if(doOptimize)
+ {
+ indexWriter.optimize();
+ }
}
catch (IOException e)
{
@@ -653,9 +665,10 @@
indexReader.close();
- IndexWriter indexWriter = new IndexWriter(rootDir, newAnalyzer(), false);
- indexWriter.optimize();
- indexWriter.close();
+ if(doOptimize)
+ {
+ optimize();
+ }
}
catch (Exception e)
@@ -705,15 +718,36 @@
try
{
// Add entries to index
- add(c);
- result = true;
+ if(result)
+ {
+ add(c);
+ result = true;
+ }
}
catch (Throwable e)
{
logger.error("Exception", e);
}
- return false;
+ return result;
+ }
+
+ public boolean optimize()
+ {
+ boolean result = false;
+
+ try
+ {
+ IndexWriter indexWriter = new IndexWriter(rootDir, newAnalyzer(), false);
+ indexWriter.optimize();
+ indexWriter.close();
+ result = true;
+ }
+ catch (IOException e)
+ {
+ logger.error("Error while trying to optimize index.");
+ }
+ return result;
}
private Analyzer newAnalyzer() {
1.4 +8 -1 jakarta-jetspeed/src/java/org/apache/jetspeed/services/search/SearchService.java
Index: SearchService.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/search/SearchService.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SearchService.java 23 Feb 2004 03:48:47 -0000 1.3
+++ SearchService.java 15 Jul 2004 00:14:12 -0000 1.4
@@ -85,4 +85,11 @@
* @return
*/
public SearchResults search(String search);
+
+ /**
+ * Optimize search indexes (optional operation).
+ *
+ * @return
+ */
+ public boolean optimize() throws UnsupportedOperationException;
}
1.6 +9 -1 jakarta-jetspeed/src/java/org/apache/jetspeed/services/search/Search.java
Index: Search.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/search/Search.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Search.java 23 Feb 2004 03:48:47 -0000 1.5
+++ Search.java 15 Jul 2004 00:14:12 -0000 1.6
@@ -135,5 +135,13 @@
}
return true;
}
+
+ /**
+ * @return
+ */
+ public static boolean optimize()
+ {
+ return getService().optimize();
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org