You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by no...@apache.org on 2009/09/21 14:23:39 UTC
svn commit: r817223 - in /lucene/solr/trunk/src/java/org/apache/solr:
core/SolrConfig.java core/SolrCore.java
highlight/DefaultSolrHighlighter.java highlight/SolrHighlighter.java
Author: noble
Date: Mon Sep 21 12:23:38 2009
New Revision: 817223
URL: http://svn.apache.org/viewvc?rev=817223&view=rev
Log:
SOLR-1326 HighLighter also has a similar syntax
Modified:
lucene/solr/trunk/src/java/org/apache/solr/core/SolrConfig.java
lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java
lucene/solr/trunk/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java
lucene/solr/trunk/src/java/org/apache/solr/highlight/SolrHighlighter.java
Modified: lucene/solr/trunk/src/java/org/apache/solr/core/SolrConfig.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/core/SolrConfig.java?rev=817223&r1=817222&r2=817223&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/core/SolrConfig.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/core/SolrConfig.java Mon Sep 21 12:23:38 2009
@@ -18,8 +18,6 @@
package org.apache.solr.core;
import org.apache.solr.common.util.NamedList;
-import org.apache.solr.common.util.DOMUtil;
-import org.apache.solr.common.SolrException;
import org.apache.solr.handler.PingRequestHandler;
import org.apache.solr.handler.component.SearchComponent;
import org.apache.solr.request.LocalSolrQueryRequest;
@@ -34,8 +32,7 @@
import org.apache.solr.update.SolrIndexConfig;
import org.apache.solr.update.processor.UpdateRequestProcessorChain;
import org.apache.solr.spelling.QueryConverter;
-import org.apache.solr.highlight.SolrFormatter;
-import org.apache.solr.highlight.SolrFragmenter;
+import org.apache.solr.highlight.SolrHighlighter;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.index.IndexDeletionPolicy;
@@ -48,8 +45,6 @@
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathExpressionException;
import java.util.*;
import java.util.regex.Pattern;
@@ -193,8 +188,8 @@
loadPluginInfo(IndexDeletionPolicy.class,"mainIndex/deletionPolicy",false, true);
loadPluginInfo(IndexReaderFactory.class,"indexReaderFactory",false, true);
loadPluginInfo(UpdateRequestProcessorChain.class,"updateRequestProcessorChain",false, false);
+ loadPluginInfo(SolrHighlighter.class,"highlighting",false, false);
updateHandlerInfo = loadUpdatehandlerInfo();
- loadHighLightingPlugins();
Config.log.info("Loaded SolrConfig: " + name);
@@ -202,16 +197,6 @@
config = this;
}
- public String getHighLghtingClass() {
- return highLghtingClass;
- }
-
- protected void loadHighLightingPlugins() {
- highLghtingClass = get("highlighting/@class",null);
- loadPluginInfo(SolrFormatter.class,"highlighting/formatter",true, true);
- loadPluginInfo(SolrFragmenter.class,"highlighting/fragmenter",true, true);
- }
-
protected UpdateHandlerInfo loadUpdatehandlerInfo() {
return new UpdateHandlerInfo(get("updateHandler/@class",null),
getInt("updateHandler/autoCommit/maxDocs",-1),
@@ -255,7 +240,6 @@
public final SolrIndexConfig mainIndexConfig;
protected UpdateHandlerInfo updateHandlerInfo ;
- protected String highLghtingClass;
private Map<String, List<PluginInfo>> pluginStore = new LinkedHashMap<String, List<PluginInfo>>();
Modified: lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java?rev=817223&r1=817222&r2=817223&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java Mon Sep 21 12:23:38 2009
@@ -551,10 +551,7 @@
reqHandlers = new RequestHandlers(this);
reqHandlers.initHandlersFromConfig( solrConfig );
- String highLightClass = solrConfig.getHighLghtingClass();
-
- highlighter = createHighlighter(highLightClass == null? DefaultSolrHighlighter.class.getName() : highLightClass);
- highlighter.initalize( solrConfig );
+ highlighter = initHighLighter();
// Handle things that should eventually go away
initDeprecatedSupport();
@@ -596,6 +593,19 @@
infoRegistry.put("core", this);
}
+ private SolrHighlighter initHighLighter() {
+ SolrHighlighter highlighter = null;
+ PluginInfo pluginInfo = solrConfig.getPluginInfo(SolrHighlighter.class.getName());
+ if(pluginInfo != null){
+ highlighter = createInitInstance(pluginInfo,SolrHighlighter.class,null, DefaultSolrHighlighter.class.getName());
+ highlighter.initalize(solrConfig);
+ } else{
+ highlighter = new DefaultSolrHighlighter();
+ highlighter.initalize(solrConfig);
+ }
+ return highlighter;
+ }
+
/**
* Load the request processors
@@ -1457,8 +1467,12 @@
}
public <T> T initPlugins(Map<String ,T> registry, Class<T> type, String defClassName){
+ return initPlugins(solrConfig.getPluginInfos(type.getName()), registry, type, defClassName);
+ }
+
+ public <T> T initPlugins(List<PluginInfo> pluginInfos, Map<String, T> registry, Class<T> type, String defClassName) {
T def = null;
- for (PluginInfo info : solrConfig.getPluginInfos(type.getName())) {
+ for (PluginInfo info : pluginInfos) {
T o = createInitInstance(info,type, type.getSimpleName(), defClassName);
if (o instanceof PluginInfoInitialized) {
((PluginInfoInitialized) o).init(info);
Modified: lucene/solr/trunk/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java?rev=817223&r1=817222&r2=817223&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java Mon Sep 21 12:23:38 2009
@@ -43,52 +43,66 @@
import org.apache.solr.common.util.SimpleOrderedMap;
import org.apache.solr.core.SolrConfig;
import org.apache.solr.core.PluginInfo;
+import org.apache.solr.core.SolrCore;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.schema.SchemaField;
import org.apache.solr.search.DocIterator;
import org.apache.solr.search.DocList;
import org.apache.solr.search.SolrIndexSearcher;
+import org.apache.solr.util.plugin.PluginInfoInitialized;
/**
*
* @since solr 1.3
*/
-public class DefaultSolrHighlighter extends SolrHighlighter
+public class DefaultSolrHighlighter extends SolrHighlighter implements PluginInfoInitialized
{
- public void initalize( SolrConfig config) {
+ private SolrCore solrCore;
+
+ public DefaultSolrHighlighter() {
+ }
+
+ public DefaultSolrHighlighter(SolrCore solrCore) {
+ this.solrCore = solrCore;
+ }
+
+ public void init(PluginInfo info) {
formatters.clear();
fragmenters.clear();
+ List<PluginInfo> fragmenterInfo = new ArrayList<PluginInfo>();
+ List<PluginInfo> formatterrInfo = new ArrayList<PluginInfo>();
// Load the fragmenters
- ResourceLoader loader= config.getResourceLoader();
- SolrFragmenter frag = null;
- for (PluginInfo info : config.getPluginInfos(SolrFragmenter.class.getName())) {
- SolrFragmenter fragmenter = (SolrFragmenter) loader.newInstance(info.className);
- fragmenter.init(info.initArgs);
- if(info.isDefault()) frag = fragmenter;
- fragmenters.put(info.name,fragmenter);
+ for (PluginInfo child : info.children) {
+ if("fragmenter".equals(child.type)) fragmenterInfo.add(child);
+ if("formatter".equals(child.type)) formatterrInfo.add(child);
}
-
- if( frag == null ) {
- frag = new GapFragmenter();
- }
- fragmenters.put( "", frag );
- fragmenters.put( null, frag );
+ SolrFragmenter frag = solrCore.initPlugins(fragmenterInfo, fragmenters,SolrFragmenter.class,null);
+ if (frag == null) frag = new GapFragmenter();
+ fragmenters.put("", frag);
+ fragmenters.put(null, frag);
// Load the formatters
- SolrFormatter fmt = null;
- for (PluginInfo info : config.getPluginInfos(SolrFormatter.class.getName())) {
- SolrFormatter formatter = (SolrFormatter) loader.newInstance(info.className);
- formatter.init(info.initArgs);
- formatters.put(info.name, formatter);
- if(info.isDefault()) fmt = formatter;
- }
- if( fmt == null ) {
- fmt = new HtmlFormatter();
- }
- formatters.put( "", fmt );
- formatters.put( null, fmt );
+ SolrFormatter fmt = solrCore.initPlugins(formatterrInfo, formatters,SolrFormatter.class,null);
+ if (fmt == null) fmt = new HtmlFormatter();
+ formatters.put("", fmt);
+ formatters.put(null, fmt);
+ initialized = true;
+
+ }
+ private boolean initialized = false;
+ @Deprecated
+ public void initalize( SolrConfig config) {
+ if (initialized) return;
+ SolrFragmenter frag = new GapFragmenter();
+ fragmenters.put("", frag);
+ fragmenters.put(null, frag);
+
+ SolrFormatter fmt = new HtmlFormatter();
+ formatters.put("", fmt);
+ formatters.put(null, fmt);
+
}
Modified: lucene/solr/trunk/src/java/org/apache/solr/highlight/SolrHighlighter.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/highlight/SolrHighlighter.java?rev=817223&r1=817222&r2=817223&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/highlight/SolrHighlighter.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/highlight/SolrHighlighter.java Mon Sep 21 12:23:38 2009
@@ -46,6 +46,7 @@
// Thread safe registry
protected final Map<String,SolrFragmenter> fragmenters =
Collections.synchronizedMap( new HashMap<String, SolrFragmenter>() );
+ @Deprecated
public abstract void initalize( SolrConfig config );