You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by si...@apache.org on 2011/02/09 10:36:03 UTC
svn commit: r1068809 [36/36] - in /lucene/dev/branches/docvalues: ./
dev-tools/eclipse/ dev-tools/idea/.idea/ dev-tools/idea/.idea/copyright/
dev-tools/idea/lucene/ dev-tools/idea/lucene/contrib/ant/
dev-tools/idea/lucene/contrib/queryparser/ dev-tools...
Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/util/AbstractSolrTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/util/AbstractSolrTestCase.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/util/AbstractSolrTestCase.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/util/AbstractSolrTestCase.java Wed Feb 9 09:35:27 2011
@@ -111,6 +111,7 @@ public abstract class AbstractSolrTestCa
public static Logger log = LoggerFactory.getLogger(AbstractSolrTestCase.class);
private String factoryProp;
+ @Override
public void setUp() throws Exception {
super.setUp();
log.info("####SETUP_START " + getName());
@@ -170,6 +171,7 @@ public abstract class AbstractSolrTestCa
* to delete dataDir, unless the system property "solr.test.leavedatadir"
* is set.
*/
+ @Override
public void tearDown() throws Exception {
log.info("####TEARDOWN_START " + getName());
if (factoryProp == null) {
@@ -403,6 +405,7 @@ public abstract class AbstractSolrTestCa
/** Neccessary to make method signatures un-ambiguous */
public static class Doc {
public String xml;
+ @Override
public String toString() { return xml; }
}
Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/util/TestNumberUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/util/TestNumberUtils.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/util/TestNumberUtils.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/util/TestNumberUtils.java Wed Feb 9 09:35:27 2011
@@ -182,72 +182,88 @@ abstract class Converter {
}
class Int2Int extends Converter {
+ @Override
public String toInternal(String val) {
return Integer.toString(Integer.parseInt(val));
}
+ @Override
public String toExternal(String val) {
return Integer.toString(Integer.parseInt(val));
}
}
class SortInt extends Converter {
+ @Override
public String toInternal(String val) {
return NumberUtils.int2sortableStr(val);
}
+ @Override
public String toExternal(String val) {
return NumberUtils.SortableStr2int(val);
}
}
class SortLong extends Converter {
+ @Override
public String toInternal(String val) {
return NumberUtils.long2sortableStr(val);
}
+ @Override
public String toExternal(String val) {
return NumberUtils.SortableStr2long(val);
}
}
class Float2Float extends Converter {
+ @Override
public String toInternal(String val) {
return Float.toString(Float.parseFloat(val));
}
+ @Override
public String toExternal(String val) {
return Float.toString(Float.parseFloat(val));
}
}
class SortFloat extends Converter {
+ @Override
public String toInternal(String val) {
return NumberUtils.float2sortableStr(val);
}
+ @Override
public String toExternal(String val) {
return NumberUtils.SortableStr2floatStr(val);
}
}
class SortDouble extends Converter {
+ @Override
public String toInternal(String val) {
return NumberUtils.double2sortableStr(val);
}
+ @Override
public String toExternal(String val) {
return NumberUtils.SortableStr2doubleStr(val);
}
}
class Base100S extends Converter {
+ @Override
public String toInternal(String val) {
return BCDUtils.base10toBase100SortableInt(val);
}
+ @Override
public String toExternal(String val) {
return BCDUtils.base100SortableIntToBase10(val);
}
}
class Base10kS extends Converter {
+ @Override
public String toInternal(String val) {
return BCDUtils.base10toBase10kSortableInt(val);
}
+ @Override
public String toExternal(String val) {
return BCDUtils.base10kSortableIntToBase10(val);
}
Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/velocity/VelocityResponseWriterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/velocity/VelocityResponseWriterTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/velocity/VelocityResponseWriterTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/velocity/VelocityResponseWriterTest.java Wed Feb 9 09:35:27 2011
@@ -1,3 +1,20 @@
+/**
+ * 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.solr.velocity;
import org.apache.solr.response.SolrQueryResponse;
@@ -9,7 +26,9 @@ import java.io.StringWriter;
import java.io.IOException;
public class VelocityResponseWriterTest extends AbstractSolrTestCase {
+ @Override
public String getSchemaFile() { return "schema.xml"; }
+ @Override
public String getSolrConfigFile() { return "solrconfig.xml"; }
Modified: lucene/dev/branches/docvalues/solr/src/webapp/src/org/apache/solr/servlet/LogLevelSelection.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/webapp/src/org/apache/solr/servlet/LogLevelSelection.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/webapp/src/org/apache/solr/servlet/LogLevelSelection.java (original)
+++ lucene/dev/branches/docvalues/solr/src/webapp/src/org/apache/solr/servlet/LogLevelSelection.java Wed Feb 9 09:35:27 2011
@@ -36,6 +36,7 @@ import java.util.logging.Logger;
* @since solr 1.3
*/
public final class LogLevelSelection extends HttpServlet {
+ @Override
public void init() throws ServletException {
}
@@ -43,6 +44,7 @@ public final class LogLevelSelection ext
* Processes an HTTP GET request and changes the logging level as
* specified.
*/
+ @Override
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
@@ -147,6 +149,7 @@ public final class LogLevelSelection ext
}
+ @Override
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
@@ -259,6 +262,7 @@ public final class LogLevelSelection ext
return name.compareTo(((LogWrapper) other).name);
}
+ @Override
public boolean equals(Object obj) {
if (this == obj)
return true;
@@ -275,6 +279,7 @@ public final class LogLevelSelection ext
return true;
}
+ @Override
public int hashCode() {
final int prime = 31;
int result = 1;
Modified: lucene/dev/branches/docvalues/solr/src/webapp/src/org/apache/solr/servlet/SolrDispatchFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/webapp/src/org/apache/solr/servlet/SolrDispatchFilter.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/webapp/src/org/apache/solr/servlet/SolrDispatchFilter.java (original)
+++ lucene/dev/branches/docvalues/solr/src/webapp/src/org/apache/solr/servlet/SolrDispatchFilter.java Wed Feb 9 09:35:27 2011
@@ -65,7 +65,7 @@ public class SolrDispatchFilter implemen
public SolrDispatchFilter() {
try {
- adminRequestParser = new SolrRequestParsers(new Config(null,"solr",new ByteArrayInputStream("<root/>".getBytes()),"") );
+ adminRequestParser = new SolrRequestParsers(new Config(null,"solr",new ByteArrayInputStream("<root/>".getBytes("UTF-8")),"") );
} catch (Exception e) {
//unlikely
throw new SolrException(SolrException.ErrorCode.SERVER_ERROR,e);
@@ -315,7 +315,9 @@ public class SolrDispatchFilter implemen
sendError((HttpServletResponse) response, solrRsp.getException());
} else {
// Now write it out
- response.setContentType(responseWriter.getContentType(solrReq, solrRsp));
+ final String ct = responseWriter.getContentType(solrReq, solrRsp);
+ // don't call setContentType on null
+ if (null != ct) response.setContentType(ct);
if (Method.HEAD != reqMethod) {
if (responseWriter instanceof BinaryQueryResponseWriter) {
BinaryQueryResponseWriter binWriter = (BinaryQueryResponseWriter) responseWriter;
Modified: lucene/dev/branches/docvalues/solr/src/webapp/src/org/apache/solr/servlet/cache/HttpCacheHeaderUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/webapp/src/org/apache/solr/servlet/cache/HttpCacheHeaderUtil.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/webapp/src/org/apache/solr/servlet/cache/HttpCacheHeaderUtil.java (original)
+++ lucene/dev/branches/docvalues/solr/src/webapp/src/org/apache/solr/servlet/cache/HttpCacheHeaderUtil.java Wed Feb 9 09:35:27 2011
@@ -18,6 +18,7 @@
package org.apache.solr.servlet.cache;
import java.io.IOException;
+import java.io.UnsupportedEncodingException;
import java.util.Collections;
import java.util.Map;
import java.util.WeakHashMap;
@@ -75,11 +76,15 @@ public final class HttpCacheHeaderUtil {
if (currentIndexVersion != indexVersionCache) {
indexVersionCache=currentIndexVersion;
- etagCache = "\""
- + new String(Base64.encodeBase64((Long.toHexString
- (Long.reverse(indexVersionCache))
- + etagSeed).getBytes()))
- + "\"";
+ try {
+ etagCache = "\""
+ + new String(Base64.encodeBase64((Long.toHexString
+ (Long.reverse(indexVersionCache))
+ + etagSeed).getBytes()), "US-ASCII")
+ + "\"";
+ } catch (UnsupportedEncodingException e) {
+ throw new RuntimeException(e); // may not happen
+ }
}
return etagCache;
@@ -95,7 +100,7 @@ public final class HttpCacheHeaderUtil {
public static String calcEtag(final SolrQueryRequest solrReq) {
final SolrCore core = solrReq.getCore();
final long currentIndexVersion
- = solrReq.getSearcher().getReader().getVersion();
+ = solrReq.getSearcher().getIndexReader().getVersion();
EtagCacheVal etagCache = etagCoreCache.get(core);
if (null == etagCache) {
@@ -152,7 +157,7 @@ public final class HttpCacheHeaderUtil {
// assume default, change if needed (getOpenTime() should be fast)
lastMod =
LastModFrom.DIRLASTMOD == lastModFrom
- ? IndexReader.lastModified(searcher.getReader().directory())
+ ? IndexReader.lastModified(searcher.getIndexReader().directory())
: searcher.getOpenTime();
} catch (IOException e) {
// we're pretty freaking screwed if this happens
Modified: lucene/dev/branches/docvalues/solr/src/webapp/web/admin/analysis.jsp
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/webapp/web/admin/analysis.jsp?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/webapp/web/admin/analysis.jsp (original)
+++ lucene/dev/branches/docvalues/solr/src/webapp/web/admin/analysis.jsp Wed Feb 9 09:35:27 2011
@@ -24,6 +24,7 @@
org.apache.lucene.analysis.CharReader,
org.apache.lucene.analysis.CharStream,
org.apache.lucene.analysis.tokenattributes.*,
+ org.apache.lucene.util.AttributeReflector,
org.apache.solr.analysis.CharFilterFactory,
org.apache.solr.analysis.TokenFilterFactory,
org.apache.solr.analysis.TokenizerChain,
@@ -31,7 +32,8 @@
org.apache.solr.schema.FieldType,
org.apache.solr.schema.SchemaField,
org.apache.solr.common.util.XML,
- javax.servlet.jsp.JspWriter,java.io.IOException
+ javax.servlet.jsp.JspWriter,java.io.IOException,
+ org.apache.noggit.CharArr
"%>
<%@ page import="java.io.Reader"%>
<%@ page import="java.io.StringReader"%>
@@ -39,8 +41,6 @@
<%@ page import="java.math.BigInteger" %>
<%-- $Id$ --%>
-<%-- $Source: /cvs/main/searching/org.apache.solrolarServer/resources/admin/analysis.jsp,v $ --%>
-<%-- $Name: $ --%>
<%@include file="header.jsp" %>
@@ -71,19 +71,19 @@
<table>
<tr>
<td>
- <strong>Field
+ <strong>Field
<select name="nt">
- <option <%= nt.equals("name") ? "selected=\"selected\"" : "" %> >name</option>
- <option <%= nt.equals("type") ? "selected=\"selected\"" : "" %>>type</option>
+ <option <%= nt.equals("name") ? "selected=\"selected\"" : "" %> >name</option>
+ <option <%= nt.equals("type") ? "selected=\"selected\"" : "" %>>type</option>
</select></strong>
</td>
<td>
- <input class="std" name="name" type="text" value="<% XML.escapeCharData(name, out); %>">
+ <input class="std" name="name" type="text" value="<% XML.escapeCharData(name, out); %>">
</td>
</tr>
<tr>
<td>
- <strong>Field value (Index)</strong>
+ <strong>Field value (Index)</strong>
<br/>
verbose output
<input name="verbose" type="checkbox"
@@ -94,19 +94,19 @@
<%= highlight ? "checked=\"true\"" : "" %> >
</td>
<td>
- <textarea class="std" rows="8" cols="70" name="val"><% XML.escapeCharData(val,out); %></textarea>
+ <textarea class="std" rows="8" cols="70" name="val"><% XML.escapeCharData(val,out); %></textarea>
</td>
</tr>
<tr>
<td>
- <strong>Field value (Query)</strong>
+ <strong>Field value (Query)</strong>
<br/>
verbose output
<input name="qverbose" type="checkbox"
<%= qverbose ? "checked=\"true\"" : "" %> >
</td>
<td>
- <textarea class="std" rows="1" cols="70" name="qval"><% XML.escapeCharData(qval,out); %></textarea>
+ <textarea class="std" rows="1" cols="70" name="qval"><% XML.escapeCharData(qval,out); %></textarea>
</td>
</tr>
<tr>
@@ -115,7 +115,7 @@
</td>
<td>
- <input class="stdbutton" type="submit" value="analyze">
+ <input class="stdbutton" type="submit" value="analyze">
</td>
</tr>
@@ -148,24 +148,28 @@
}
if (field!=null) {
- HashSet<Tok> matches = null;
+ HashSet<BytesRef> matches = null;
if (qval!="" && highlight) {
Reader reader = new StringReader(qval);
Analyzer analyzer = field.getType().getQueryAnalyzer();
TokenStream tstream = analyzer.reusableTokenStream(field.getName(),reader);
+ TermToBytesRefAttribute bytesAtt = tstream.getAttribute(TermToBytesRefAttribute.class);
tstream.reset();
- List<AttributeSource> tokens = getTokens(tstream);
- matches = new HashSet<Tok>();
- for (AttributeSource t : tokens) { matches.add( new Tok(t,0)); }
+ matches = new HashSet<BytesRef>();
+ while (tstream.incrementToken()) {
+ final BytesRef bytes = new BytesRef();
+ bytesAtt.toBytesRef(bytes);
+ matches.add(bytes);
+ }
}
if (val!="") {
out.println("<h3>Index Analyzer</h3>");
- doAnalyzer(out, field, val, false, verbose,matches);
+ doAnalyzer(out, field, val, false, verbose, matches);
}
if (qval!="") {
out.println("<h3>Query Analyzer</h3>");
- doAnalyzer(out, field, qval, true, qverbose,null);
+ doAnalyzer(out, field, qval, true, qverbose, null);
}
}
@@ -177,7 +181,7 @@
<%!
- private static void doAnalyzer(JspWriter out, SchemaField field, String val, boolean queryAnalyser, boolean verbose, Set<Tok> match) throws Exception {
+ private static void doAnalyzer(JspWriter out, SchemaField field, String val, boolean queryAnalyser, boolean verbose, Set<BytesRef> match) throws Exception {
FieldType ft = field.getType();
Analyzer analyzer = queryAnalyser ?
@@ -240,7 +244,7 @@
tstream.reset();
List<AttributeSource> tokens = getTokens(tstream);
if (verbose) {
- writeHeader(out, analyzer.getClass(), new HashMap<String,String>());
+ writeHeader(out, analyzer.getClass(), Collections.EMPTY_MAP);
}
writeTokens(out, tokens, ft, verbose, match);
}
@@ -249,52 +253,59 @@
static List<AttributeSource> getTokens(TokenStream tstream) throws IOException {
List<AttributeSource> tokens = new ArrayList<AttributeSource>();
-
- while (true) {
- if (!tstream.incrementToken())
- break;
- else {
- tokens.add(tstream.cloneAttributes());
- }
+ tstream.reset();
+ while (tstream.incrementToken()) {
+ tokens.add(tstream.cloneAttributes());
}
return tokens;
}
-
- private static class Tok {
- AttributeSource token;
- int pos;
- Tok(AttributeSource token, int pos) {
- this.token=token;
- this.pos=pos;
- }
-
- public boolean equals(Object o) {
- return ((Tok)o).token.toString().equals(token.toString());
- }
- public int hashCode() {
- return token.toString().hashCode();
- }
- public String toString() {
- return token.toString();
+ private static class ReflectItem {
+ final Class<? extends Attribute> attClass;
+ final String key;
+ final Object value;
+
+ ReflectItem(Class<? extends Attribute> attClass, String key, Object value) {
+ this.attClass = attClass;
+ this.key = key;
+ this.value = value;
}
- public String toPrintableString() {
- TermToBytesRefAttribute att = token.addAttribute(TermToBytesRefAttribute.class);
- if (att instanceof CharTermAttribute)
- return att.toString();
- else {
- BytesRef bytes = new BytesRef();
- att.toBytesRef(bytes);
- return bytes.toString();
- }
+ }
+
+ private static class Tok {
+ final BytesRef bytes = new BytesRef();
+ final String rawText, text;
+ final int pos;
+ final List<ReflectItem> reflected = new ArrayList<ReflectItem>();
+
+ Tok(AttributeSource token, int pos, FieldType ft) {
+ this.pos = pos;
+ token.getAttribute(TermToBytesRefAttribute.class).toBytesRef(bytes);
+ rawText = (token.hasAttribute(CharTermAttribute.class)) ?
+ token.getAttribute(CharTermAttribute.class).toString() : null;
+ final CharArr textBuf = new CharArr(bytes.length);
+ ft.indexedToReadable(bytes, textBuf);
+ text = textBuf.toString();
+ token.reflectWith(new AttributeReflector() {
+ public void reflect(Class<? extends Attribute> attClass, String key, Object value) {
+ // leave out position and raw term
+ if (TermToBytesRefAttribute.class.isAssignableFrom(attClass))
+ return;
+ if (CharTermAttribute.class.isAssignableFrom(attClass))
+ return;
+ if (PositionIncrementAttribute.class.isAssignableFrom(attClass))
+ return;
+ reflected.add(new ReflectItem(attClass, key, value));
+ }
+ });
}
}
- private static interface ToStr {
- public String toStr(Object o);
+ private static interface TokToStr {
+ public String toStr(Tok o);
}
- private static void printRow(JspWriter out, String header, List[] arrLst, ToStr converter, boolean multival, boolean verbose, Set<Tok> match) throws IOException {
+ private static void printRow(JspWriter out, String header, String headerTitle, List<Tok>[] arrLst, TokToStr converter, boolean multival, boolean verbose, Set<BytesRef> match) throws IOException {
// find the maximum number of terms for any position
int maxSz=1;
if (multival) {
@@ -308,7 +319,13 @@
out.println("<tr>");
if (idx==0 && verbose) {
if (header != null) {
- out.print("<th NOWRAP rowspan=\""+maxSz+"\">");
+ out.print("<th NOWRAP rowspan=\""+maxSz+"\"");
+ if (headerTitle != null) {
+ out.print(" title=\"");
+ XML.escapeCharData(headerTitle,out);
+ out.print("\"");
+ }
+ out.print(">");
XML.escapeCharData(header,out);
out.println("</th>");
}
@@ -317,7 +334,7 @@
for (int posIndex=0; posIndex<arrLst.length; posIndex++) {
List<Tok> lst = arrLst[posIndex];
if (lst.size() <= idx) continue;
- if (match!=null && match.contains(lst.get(idx))) {
+ if (match!=null && match.contains(lst.get(idx).bytes)) {
out.print("<td class=\"highlight\"");
} else {
out.print("<td class=\"debugdata\"");
@@ -340,15 +357,6 @@
}
- static String isPayloadString( Payload p ) {
- String sp = new String( p.getData() );
- for( int i=0; i < sp.length(); i++ ) {
- if( !Character.isDefined( sp.charAt(i) ) || Character.isISOControl( sp.charAt(i) ) )
- return "";
- }
- return "(" + sp + ")";
- }
-
static void writeHeader(JspWriter out, Class clazz, Map<String,String> args) throws IOException {
out.print("<h4>");
out.print(clazz.getName());
@@ -359,137 +367,93 @@
// readable, raw, pos, type, start/end
- static void writeTokens(JspWriter out, List<AttributeSource> tokens, final FieldType ft, boolean verbose, Set<Tok> match) throws IOException {
+ static void writeTokens(JspWriter out, List<AttributeSource> tokens, final FieldType ft, boolean verbose, Set<BytesRef> match) throws IOException {
// Use a map to tell what tokens are in what positions
// because some tokenizers/filters may do funky stuff with
// very large increments, or negative increments.
HashMap<Integer,List<Tok>> map = new HashMap<Integer,List<Tok>>();
boolean needRaw=false;
- int pos=0;
+ int pos=0, reflectionCount = -1;
for (AttributeSource t : tokens) {
- if (!t.toString().equals(ft.indexedToReadable(t.toString()))) {
- needRaw=true;
- }
-
pos += t.addAttribute(PositionIncrementAttribute.class).getPositionIncrement();
List lst = map.get(pos);
if (lst==null) {
lst = new ArrayList(1);
map.put(pos,lst);
}
- Tok tok = new Tok(t,pos);
+ Tok tok = new Tok(t,pos,ft);
+ // sanity check
+ if (reflectionCount < 0) {
+ reflectionCount = tok.reflected.size();
+ } else {
+ if (reflectionCount != tok.reflected.size())
+ throw new RuntimeException("Should not happen: Number of reflected entries differs for position=" + pos);
+ }
+ if (tok.rawText != null && !tok.text.equals(tok.rawText)) {
+ needRaw=true;
+ }
lst.add(tok);
}
List<Tok>[] arr = (List<Tok>[])map.values().toArray(new ArrayList[map.size()]);
- /* Jetty 6.1.3 miscompiles this generics version...
- Arrays.sort(arr, new Comparator<List<Tok>>() {
- public int compare(List<Tok> toks, List<Tok> toks1) {
- return toks.get(0).pos - toks1.get(0).pos;
- }
- }
- */
-
+ // Jetty 6.1.3 miscompiles a generics-enabled version..., without generics:
Arrays.sort(arr, new Comparator() {
public int compare(Object toks, Object toks1) {
return ((List<Tok>)toks).get(0).pos - ((List<Tok>)toks1).get(0).pos;
}
- }
-
-
- );
+ });
out.println("<table width=\"auto\" class=\"analysis\" border=\"1\">");
if (verbose) {
- printRow(out,"term position", arr, new ToStr() {
- public String toStr(Object o) {
- return Integer.toString(((Tok)o).pos);
+ printRow(out, "position", "calculated from " + PositionIncrementAttribute.class.getName(), arr, new TokToStr() {
+ public String toStr(Tok t) {
+ return Integer.toString(t.pos);
}
- }
- ,false
- ,verbose
- ,null);
- }
-
-
- printRow(out,"term text", arr, new ToStr() {
- public String toStr(Object o) {
- return ft.indexedToReadable( ((Tok)o).toPrintableString() );
- }
+ },false,verbose,null);
}
- ,true
- ,verbose
- ,match
- );
- if (needRaw) {
- printRow(out,"raw text", arr, new ToStr() {
- public String toStr(Object o) {
- // page is UTF-8, so anything goes.
- return ((Tok)o).toPrintableString();
- }
+ printRow(out, "term text", "indexedToReadable applied to " + TermToBytesRefAttribute.class.getName(), arr, new TokToStr() {
+ public String toStr(Tok t) {
+ return t.text;
}
- ,true
- ,verbose
- ,match
- );
- }
+ },true,verbose,match);
if (verbose) {
- printRow(out,"term type", arr, new ToStr() {
- public String toStr(Object o) {
- String tt = ((Tok)o).token.addAttribute(TypeAttribute.class).type();
- if (tt == null) {
- return "null";
- } else {
- return tt;
+ if (needRaw) {
+ printRow(out, "raw text", CharTermAttribute.class.getName(), arr, new TokToStr() {
+ public String toStr(Tok t) {
+ // page is UTF-8, so anything goes.
+ return (t.rawText == null) ? "" : t.rawText;
}
- }
+ },true,verbose,match);
}
- ,true
- ,verbose,
- null
- );
- }
-
- if (verbose) {
- printRow(out,"source start,end", arr, new ToStr() {
- public String toStr(Object o) {
- AttributeSource t = ((Tok)o).token;
- return Integer.toString(t.addAttribute(OffsetAttribute.class).startOffset()) + ',' + t.addAttribute(OffsetAttribute.class).endOffset() ;
+
+ printRow(out, "raw bytes", TermToBytesRefAttribute.class.getName(), arr, new TokToStr() {
+ public String toStr(Tok t) {
+ return t.bytes.toString();
}
- }
- ,true
- ,verbose
- ,null
- );
- }
+ },true,verbose,match);
- if (verbose) {
- printRow(out,"payload", arr, new ToStr() {
- public String toStr(Object o) {
- AttributeSource t = ((Tok)o).token;
- Payload p = t.addAttribute(PayloadAttribute.class).getPayload();
- if( null != p ) {
- BigInteger bi = new BigInteger( p.getData() );
- String ret = bi.toString( 16 );
- if (ret.length() % 2 != 0) {
- // Pad with 0
- ret = "0"+ret;
+ for (int att=0; att < reflectionCount; att++) {
+ final ReflectItem item0 = arr[0].get(0).reflected.get(att);
+ final int i = att;
+ printRow(out, item0.key, item0.attClass.getName(), arr, new TokToStr() {
+ public String toStr(Tok t) {
+ final ReflectItem item = t.reflected.get(i);
+ if (item0.attClass != item.attClass || !item0.key.equals(item.key))
+ throw new RuntimeException("Should not happen: attribute types suddenly change at position=" + t.pos);
+ if (item.value instanceof Payload) {
+ final Payload p = (Payload) item.value;
+ return new BytesRef(p.getData()).toString();
+ } else {
+ return (item.value != null) ? item.value.toString() : "";
}
- ret += isPayloadString( p );
- return ret;
}
- return "";
- }
+ },true,verbose, null);
}
- ,true
- ,verbose
- ,null
- );
}
out.println("</table>");
Modified: lucene/dev/branches/docvalues/solr/src/webapp/web/admin/index.jsp
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/webapp/web/admin/index.jsp?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/webapp/web/admin/index.jsp (original)
+++ lucene/dev/branches/docvalues/solr/src/webapp/web/admin/index.jsp Wed Feb 9 09:35:27 2011
@@ -39,10 +39,10 @@
</td>
<td>
<% if (null != core.getSchemaResource()) { %>
- [<a href="file/?file=<%=core.getSchemaResource()%>">Schema</a>]
+ [<a href="file/?contentType=text/xml;charset=utf-8&file=<%=core.getSchemaResource()%>">Schema</a>]
<% }
if (null != core.getConfigResource()) { %>
- [<a href="file/?file=<%=core.getConfigResource()%>">Config</a>]
+ [<a href="file/?contentType=text/xml;charset=utf-8&file=<%=core.getConfigResource()%>">Config</a>]
<% } %>
[<a href="analysis.jsp?highlight=on">Analysis</a>]
[<a href="schema.jsp">Schema Browser</a>] <%if(replicationhandler){%>[<a href="replication/index.jsp">Replication</a>]<%}%>
Modified: lucene/dev/branches/docvalues/solr/src/webapp/web/admin/replication/header.jsp
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/webapp/web/admin/replication/header.jsp?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/webapp/web/admin/replication/header.jsp (original)
+++ lucene/dev/branches/docvalues/solr/src/webapp/web/admin/replication/header.jsp Wed Feb 9 09:35:27 2011
@@ -19,7 +19,7 @@
<%@ page import="org.apache.solr.common.util.NamedList,
org.apache.solr.common.util.SimpleOrderedMap,
org.apache.solr.request.LocalSolrQueryRequest,
- org.apache.solr.request.SolrQueryResponse,
+ org.apache.solr.response.SolrQueryResponse,
org.apache.solr.request.SolrRequestHandler,
java.util.Map"%>
<%@ page import="org.apache.solr.handler.ReplicationHandler" %>