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 ko...@apache.org on 2009/11/25 17:28:36 UTC
svn commit: r884180 - in /lucene/solr/trunk: CHANGES.txt
src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
src/webapp/web/admin/schema.jsp
Author: koji
Date: Wed Nov 25 16:28:35 2009
New Revision: 884180
URL: http://svn.apache.org/viewvc?rev=884180&view=rev
Log:
SOLR-1601: Schema browser does not indicate presence of charFilter
Modified:
lucene/solr/trunk/CHANGES.txt
lucene/solr/trunk/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
lucene/solr/trunk/src/webapp/web/admin/schema.jsp
Modified: lucene/solr/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/CHANGES.txt?rev=884180&r1=884179&r2=884180&view=diff
==============================================================================
--- lucene/solr/trunk/CHANGES.txt (original)
+++ lucene/solr/trunk/CHANGES.txt Wed Nov 25 16:28:35 2009
@@ -99,6 +99,7 @@
the behavior of a non-distributed request since it only returned
the id,score fields instead of all fields in addition to score. (yonik)
+* SOLR-1601: Schema browser does not indicate presence of charFilter. (koji)
Other Changes
----------------------
Modified: lucene/solr/trunk/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java?rev=884180&r1=884179&r2=884180&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java Wed Nov 25 16:28:35 2009
@@ -44,6 +44,7 @@
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.PriorityQueue;
+import org.apache.solr.analysis.CharFilterFactory;
import org.apache.solr.analysis.TokenFilterFactory;
import org.apache.solr.analysis.TokenizerChain;
import org.apache.solr.analysis.TokenizerFactory;
@@ -391,25 +392,40 @@
SimpleOrderedMap<Object> aninfo = new SimpleOrderedMap<Object>();
aninfo.add("className", analyzer.getClass().getName());
if (analyzer instanceof TokenizerChain) {
- SimpleOrderedMap<Object> tokenizer = new SimpleOrderedMap<Object>();
- TokenizerChain tchain = (TokenizerChain)analyzer;
- TokenizerFactory tfac = tchain.getTokenizerFactory();
- tokenizer.add("className", tfac.getClass().getName());
- tokenizer.add("args", tfac.getArgs());
- aninfo.add("tokenizer", tokenizer);
- TokenFilterFactory[] filtfacs = tchain.getTokenFilterFactories();
-
- SimpleOrderedMap<Map<String, Object>> filters = new SimpleOrderedMap<Map<String, Object>>();
- for (TokenFilterFactory filtfac : filtfacs) {
- Map<String, Object> tok = new HashMap<String, Object>();
- String className = filtfac.getClass().getName();
- tok.put("className", className);
- tok.put("args", filtfac.getArgs());
- filters.add(className.substring(className.lastIndexOf('.')+1), tok);
- }
- if (filters.size() > 0) {
- aninfo.add("filters", filters);
- }
+
+ TokenizerChain tchain = (TokenizerChain)analyzer;
+
+ CharFilterFactory[] cfiltfacs = tchain.getCharFilterFactories();
+ SimpleOrderedMap<Map<String, Object>> cfilters = new SimpleOrderedMap<Map<String, Object>>();
+ for (CharFilterFactory cfiltfac : cfiltfacs) {
+ Map<String, Object> tok = new HashMap<String, Object>();
+ String className = cfiltfac.getClass().getName();
+ tok.put("className", className);
+ tok.put("args", cfiltfac.getArgs());
+ cfilters.add(className.substring(className.lastIndexOf('.')+1), tok);
+ }
+ if (cfilters.size() > 0) {
+ aninfo.add("charFilters", cfilters);
+ }
+
+ SimpleOrderedMap<Object> tokenizer = new SimpleOrderedMap<Object>();
+ TokenizerFactory tfac = tchain.getTokenizerFactory();
+ tokenizer.add("className", tfac.getClass().getName());
+ tokenizer.add("args", tfac.getArgs());
+ aninfo.add("tokenizer", tokenizer);
+
+ TokenFilterFactory[] filtfacs = tchain.getTokenFilterFactories();
+ SimpleOrderedMap<Map<String, Object>> filters = new SimpleOrderedMap<Map<String, Object>>();
+ for (TokenFilterFactory filtfac : filtfacs) {
+ Map<String, Object> tok = new HashMap<String, Object>();
+ String className = filtfac.getClass().getName();
+ tok.put("className", className);
+ tok.put("args", filtfac.getArgs());
+ filters.add(className.substring(className.lastIndexOf('.')+1), tok);
+ }
+ if (filters.size() > 0) {
+ aninfo.add("filters", filters);
+ }
}
return aninfo;
}
Modified: lucene/solr/trunk/src/webapp/web/admin/schema.jsp
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/webapp/web/admin/schema.jsp?rev=884180&r1=884179&r2=884180&view=diff
==============================================================================
--- lucene/solr/trunk/src/webapp/web/admin/schema.jsp (original)
+++ lucene/solr/trunk/src/webapp/web/admin/schema.jsp Wed Nov 25 16:28:35 2009
@@ -282,7 +282,7 @@
//Displays information about an Analyzer in the main content area
displayAnalyzer: function(analyzer, type, shouldCollapse) {
var tid = type.replace(' ', '');
- var collapse = shouldCollapse && (analyzer.tokenizer != undefined || analyzer.filters != undefined);
+ var collapse = shouldCollapse && (analyzer.charFilters != undefined || analyzer.tokenizer != undefined || analyzer.filters != undefined);
$('#mainInfo').append(solr.createNameValueText(type, function(p) {
p.appendChild(document.createTextNode(analyzer.className + ' '));
if (collapse) {
@@ -298,6 +298,24 @@
if (collapse) {
adiv.style.display='none';
}
+ if (analyzer.charFilters != undefined) {
+ adiv.appendChild(solr.createNameValueText('Char Filters', ''));
+ var f = document.createElement('ol');
+ $.each(analyzer.charFilters, function(i, item) {
+ var fil = document.createElement('li');
+ var filterText = item.className;
+ if (item.args != undefined) {
+ filterText += ' args:{'
+ $.each(item.args, function(fi, fitem) {
+ filterText += fi + ': ' + fitem + ' ';
+ });
+ filterText +='}';
+ fil.innerHTML = filterText;
+ f.appendChild(fil);
+ }
+ });
+ adiv.appendChild(f);
+ }
if (analyzer.tokenizer != undefined) {
adiv.appendChild(solr.createNameValueText("Tokenizer Class", analyzer.tokenizer.className));
}