You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2012/03/30 14:41:35 UTC
svn commit: r1307386 [3/5] - in /lucene/dev/branches/lucene3930: ./
dev-tools/ dev-tools/eclipse/ dev-tools/maven/
dev-tools/maven/modules/benchmark/ dev-tools/maven/solr/core/
dev-tools/maven/solr/solrj/ lucene/ lucene/contrib/
lucene/contrib/misc/src...
Modified: lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/SolrEntityProcessor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/SolrEntityProcessor.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/SolrEntityProcessor.java (original)
+++ lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/SolrEntityProcessor.java Fri Mar 30 12:41:28 2012
@@ -17,12 +17,13 @@ package org.apache.solr.handler.dataimpo
* limitations under the License.
*/
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
+import org.apache.http.client.HttpClient;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.impl.XMLResponseParser;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
@@ -82,7 +83,7 @@ public class SolrEntityProcessor extends
* @return a {@link HttpClient} instance used for interfacing with a source Solr service
*/
protected HttpClient getHttpClient() {
- return new HttpClient(new MultiThreadedHttpConnectionManager());
+ return new DefaultHttpClient(new ThreadSafeClientConnManager());
}
@Override
@@ -100,10 +101,10 @@ public class SolrEntityProcessor extends
URL url = new URL(serverPath);
// (wt="javabin|xml") default is javabin
if ("xml".equals(context.getResolvedEntityAttribute(CommonParams.WT))) {
- solrServer = new CommonsHttpSolrServer(url, client, new XMLResponseParser(), false);
+ solrServer = new HttpSolrServer(url.toExternalForm(), client, new XMLResponseParser());
LOG.info("using XMLResponseParser");
} else {
- solrServer = new CommonsHttpSolrServer(url, client);
+ solrServer = new HttpSolrServer(url.toExternalForm(), client);
LOG.info("using BinaryResponseParser");
}
} catch (MalformedURLException e) {
Modified: lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestContentStreamDataSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestContentStreamDataSource.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestContentStreamDataSource.java (original)
+++ lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestContentStreamDataSource.java Fri Mar 30 12:41:28 2012
@@ -18,7 +18,7 @@ package org.apache.solr.handler.dataimpo
import org.apache.commons.io.FileUtils;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.request.DirectXmlRequest;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
@@ -69,7 +69,7 @@ public class TestContentStreamDataSource
params.set("clean", "false");
req.setParams(params);
String url = "http://localhost:" + jetty.getLocalPort() + "/solr";
- CommonsHttpSolrServer solrServer = new CommonsHttpSolrServer(url);
+ HttpSolrServer solrServer = new HttpSolrServer(url);
solrServer.request(req);
ModifiableSolrParams qparams = new ModifiableSolrParams();
qparams.add("q", "*:*");
@@ -89,7 +89,7 @@ public class TestContentStreamDataSource
UpdateParams.COMMIT_WITHIN, "1000");
req.setParams(params);
String url = "http://localhost:" + jetty.getLocalPort() + "/solr";
- CommonsHttpSolrServer solrServer = new CommonsHttpSolrServer(url);
+ HttpSolrServer solrServer = new HttpSolrServer(url);
solrServer.request(req);
Thread.sleep(100);
ModifiableSolrParams queryAll = params("q", "*");
Modified: lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorEndToEnd.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorEndToEnd.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorEndToEnd.java (original)
+++ lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorEndToEnd.java Fri Mar 30 12:41:28 2012
@@ -26,12 +26,12 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
import org.apache.commons.io.FileUtils;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.common.SolrInputDocument;
import org.junit.After;
import org.junit.AfterClass;
@@ -274,9 +274,9 @@ public class TestSolrEntityProcessorEndT
sidl.add(sd);
}
- HttpClient client = new HttpClient(new MultiThreadedHttpConnectionManager());
+ DefaultHttpClient client = new DefaultHttpClient(new ThreadSafeClientConnManager());
URL url = new URL(getSourceUrl(jetty.getLocalPort()));
- CommonsHttpSolrServer solrServer = new CommonsHttpSolrServer(url, client);
+ HttpSolrServer solrServer = new HttpSolrServer(url.toExternalForm(), client);
solrServer.add(sidl);
solrServer.commit(true, true);
}
Modified: lucene/dev/branches/lucene3930/solr/core/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/ivy.xml?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/ivy.xml (original)
+++ lucene/dev/branches/lucene3930/solr/core/ivy.xml Fri Mar 30 12:41:28 2012
@@ -22,7 +22,9 @@
<dependencies>
<dependency org="commons-codec" name="commons-codec" rev="1.6" transitive="false"/>
<dependency org="commons-fileupload" name="commons-fileupload" rev="1.2.1" transitive="false"/>
- <dependency org="commons-httpclient" name="commons-httpclient" rev="3.1" transitive="false"/>
+ <dependency org="org.apache.httpcomponents" name="httpcore" rev="4.1.3" transitive="false"/>
+ <dependency org="org.apache.httpcomponents" name="httpclient" rev="4.1.3" transitive="false"/>
+ <dependency org="org.apache.httpcomponents" name="httpmime" rev="4.1.3" transitive="false"/>
<dependency org="org.slf4j" name="jcl-over-slf4j" rev="1.6.1" transitive="false"/>
<dependency org="commons-io" name="commons-io" rev="2.1" transitive="false"/>
<dependency org="commons-lang" name="commons-lang" rev="2.6" transitive="false"/>
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/doc-files/tutorial.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/doc-files/tutorial.html?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/doc-files/tutorial.html (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/doc-files/tutorial.html Fri Mar 30 12:41:28 2012
@@ -8,6 +8,10 @@ pre.code {
background-color: #D3D3D3;
padding: 0.2em;
}
+.codefrag {
+ font-family: monospace;
+ font-weight:bold;
+}
</style>
</head>
@@ -77,13 +81,10 @@ To launch Jetty with the Solr WAR, and t
</p>
<pre class="code">
user:~/solr/example$ <strong>java -jar start.jar</strong>
-2009-10-23 16:42:53.816::INFO: Logging to STDERR via org.mortbay.log.StdErrLog
-2009-10-23 16:42:53.907::INFO: jetty-6.1.26
-
+2012-03-27 17:11:29.529:INFO::Logging to STDERR via org.mortbay.log.StdErrLog
+2012-03-27 17:11:29.696:INFO::jetty-6.1-SNAPSHOT
...
-
-Oct 23, 2009 4:41:56 PM org.apache.solr.core.SolrCore registerSearcher
-INFO: [] Registered new searcher Searcher@7c3885 main
+2012-03-27 17:11:32.343:INFO::Started SocketConnector@0.0.0.0:8983
</pre>
<p>
This will start up the Jetty application server on port 8983, and use your terminal to display the logging information from Solr.
@@ -117,8 +118,7 @@ indicating the URL of the Solr server:
</p>
<pre class="code">
user:~/solr/example/exampledocs$ <strong>java -jar post.jar solr.xml monitor.xml</strong>
-SimplePostTool: version 1.2
-SimplePostTool: WARNING: Make sure your XML documents are encoded in UTF-8, other encodings are not currently supported
+SimplePostTool: version 1.4
SimplePostTool: POSTing files to http://localhost:8983/solr/update..
SimplePostTool: POSTing file solr.xml
SimplePostTool: POSTing file monitor.xml
@@ -139,19 +139,19 @@ You can index all of the sample data, us
</p>
<pre class="code">
user:~/solr/example/exampledocs$ <strong>java -jar post.jar *.xml</strong>
-SimplePostTool: version 1.2
-SimplePostTool: WARNING: Make sure your XML documents are encoded in UTF-8, other encodings are not currently supported
+SimplePostTool: version 1.4
SimplePostTool: POSTing files to http://localhost:8983/solr/update..
+SimplePostTool: POSTing file gb18030-example.xml
SimplePostTool: POSTing file hd.xml
SimplePostTool: POSTing file ipod_other.xml
SimplePostTool: POSTing file ipod_video.xml
SimplePostTool: POSTing file mem.xml
-SimplePostTool: POSTing file monitor.xml
+SimplePostTool: POSTing file money.xml
SimplePostTool: POSTing file monitor2.xml
+SimplePostTool: POSTing file monitor.xml
SimplePostTool: POSTing file mp500.xml
SimplePostTool: POSTing file sd500.xml
SimplePostTool: POSTing file solr.xml
-SimplePostTool: POSTing file spellchecker.xml
SimplePostTool: POSTing file utf8-example.xml
SimplePostTool: POSTing file vidcard.xml
SimplePostTool: COMMITting Solr index changes..
@@ -478,34 +478,52 @@ in subsequent searches.
named <span class="codefrag">text_general</span>, which has defaults appropriate for all languages.
</p>
<p>
- If you know your textual content is English, as is the case for the example documents in this tutorial,
- and you'd like to apply English-specific stemming and stop word removal, as well as split compound words, you can use the <span class="codefrag">text_en_splitting</span> fieldType instead.
- Go ahead and edit the <span class="codefrag">schema.xml</span> under the <span class="codefrag">solr/example/solr/conf</span> directory,
- and change the <span class="codefrag">type</span> for fields <span class="codefrag">text</span> and <span class="codefrag">features</span> from <span class="codefrag">text_general</span> to <span class="codefrag">text_en_splitting</span>.
- Restart the server and then re-post all of the documents, and then these queries will show the English-specific transformations:
+ If you know your textual content is English, as is the case for the example
+ documents in this tutorial, and you'd like to apply English-specific stemming
+ and stop word removal, as well as split compound words, you can use the
+ <span class="codefrag">text_en_splitting</span> fieldType instead.
+ Go ahead and edit the <span class="codefrag">schema.xml</span> in the
+ <span class="codefrag">solr/example/solr/conf</span> directory,
+ to use the <span class="codefrag">text_en_splitting</span> fieldType for
+ the <span class="codefrag">text</span> and
+ <span class="codefrag">features</span> fields like so:
+</p>
+<pre class="code">
+ <field name="features" <b>type="text_en_splitting"</b> indexed="true" stored="true" multiValued="true"/>
+ ...
+ <field name="text" <b>type="text_en_splitting"</b> indexed="true" stored="false" multiValued="true"/>
+</pre>
+<p>
+ Stop and restart Solr after making these changes and then re-post all of
+ the example documents using
+ <span class="codefrag">java -jar post.jar *.xml</span>.
+ Now queries like the ones listed below will demonstrate English-specific
+ transformations:
</p>
<ul>
<li>A search for
- <a href="http://localhost:8983/solr/select/?indent=on&q=power-shot&fl=name">power-shot</a>
- matches <span class="codefrag">PowerShot</span>, and
- <a href="http://localhost:8983/solr/select/?indent=on&q=adata&fl=name">adata</a>
- matches <span class="codefrag">A-DATA</span> due to the use of <span class="codefrag">WordDelimiterFilter</span> and <span class="codefrag">LowerCaseFilter</span>.
- </li>
+ <a href="http://localhost:8983/solr/select/?indent=on&q=power-shot&fl=name">power-shot</a>
+ can match <span class="codefrag">PowerShot</span>, and
+ <a href="http://localhost:8983/solr/select/?indent=on&q=adata&fl=name">adata</a>
+ can match <span class="codefrag">A-DATA</span> by using the
+ <span class="codefrag">WordDelimiterFilter</span> and <span class="codefrag">LowerCaseFilter</span>.
+</li>
<li>A search for
- <a href="http://localhost:8983/solr/select/?indent=on&q=features:recharging&fl=name,features">features:recharging</a>
- matches <span class="codefrag">Rechargeable</span> due to stemming with the <span class="codefrag">EnglishPorterFilter</span>.
- </li>
+ <a href="http://localhost:8983/solr/select/?indent=on&q=features:recharging&fl=name,features">features:recharging</a>
+ can match <span class="codefrag">Rechargeable</span> using the stemming
+ features of <span class="codefrag">PorterStemFilter</span>.
+</li>
<li>A search for
- <a href="http://localhost:8983/solr/select/?indent=on&q=%221 gigabyte%22&fl=name">"1 gigabyte"</a>
- matches things with <span class="codefrag">GB</span>, and the misspelled
- <a href="http://localhost:8983/solr/select/?indent=on&q=pixima&fl=name">pixima</a>
- matches <span class="codefrag">Pixma</span> due to use of a <span class="codefrag">SynonymFilter</span>.
- </li>
+ <a href="http://localhost:8983/solr/select/?indent=on&q=%221 gigabyte%22&fl=name">"1 gigabyte"</a>
+ can match <span class="codefrag">1GB</span>, and the commonly misspelled
+ <a href="http://localhost:8983/solr/select/?indent=on&q=pixima&fl=name">pixima</a> can matches <span class="codefrag">Pixma</span> using the
+ <span class="codefrag">SynonymFilter</span>.
+</li>
</ul>
@@ -514,30 +532,56 @@ in subsequent searches.
</p>
<a name="N1030B"></a><a name="Analysis+Debugging"></a>
<h3 class="boxed">Analysis Debugging</h3>
-<p>There is a handy <a href="http://localhost:8983/solr/admin/analysis.jsp">analysis</a>
- debugging page where you can see how a text value is broken down into words,
- and shows the resulting tokens after they pass through each filter in the chain.
- </p>
<p>
-
-<a href="http://localhost:8983/solr/admin/analysis.jsp?name=name&val=Canon+Power-Shot+SD500">This</a>
- shows how "<span class="codefrag">Canon Power-Shot SD500</span>" would be indexed as a value in the name field. Each row of
- the table shows the resulting tokens after having passed through the next <span class="codefrag">TokenFilter</span> in the analyzer for the <span class="codefrag">name</span> field.
- Notice how both <span class="codefrag">powershot</span> and <span class="codefrag">power</span>, <span class="codefrag">shot</span> are indexed. Tokens generated at the same position
- are shown in the same column, in this case <span class="codefrag">shot</span> and <span class="codefrag">powershot</span>.
- </p>
-<p>Selecting <a href="http://localhost:8983/solr/admin/analysis.jsp?name=name&verbose=on&val=Canon+Power-Shot+SD500">verbose output</a>
- will show more details, such as the name of each analyzer component in the chain, token positions, and the start and end positions
- of the token in the original text.
- </p>
-<p>Selecting <a href="http://localhost:8983/solr/admin/analysis.jsp?name=name&highlight=on&val=Canon+Power-Shot+SD500&qval=Powershot sd-500">highlight matches</a>
- when both index and query values are provided will take the resulting terms from the query value and highlight
- all matches in the index value analysis.
- </p>
+ There is a handy <a href="http://localhost:8983/solr/admin/analysis.jsp">analysis</a>
+ debugging page where you can see how a text value is broken down into words,
+ and shows the resulting tokens after they pass through each filter in the chain.
+</p>
+<p>
+ <a href="http://localhost:8983/solr/admin/analysis.jsp?nt=type&name=text_en_splitting&val=Canon+Power-Shot+SD500">This</a>
+ url shows how "<span class="codefrag">Canon Power-Shot SD500</span>" would
+ shows the tokens that would be instead be created using the
+ <span class="codefrag">text_en_splitting</span> type. Each row of
+ the table shows the resulting tokens after having passed through the next
+ <span class="codefrag">TokenFilter</span> in the analyzer.
+ Notice how both <span class="codefrag">powershot</span> and
+ <span class="codefrag">power</span>, <span class="codefrag">shot</span>
+ are indexed. Tokens generated at the same position
+ are shown in the same column, in this case
+ <span class="codefrag">shot</span> and
+ <span class="codefrag">powershot</span>. (Compare the previous output with
+ <a href="http://localhost:8983/solr/admin/analysis.jsp?nt=type&name=text_general&val=Canon+Power-Shot+SD500">The tokens produced using the text_general field type</a>.)
+</p>
+<p>
+ Selecting <a href="http://localhost:8983/solr/admin/analysis.jsp?nt=type&name=text_en_splitting&verbose=on&val=Canon+Power-Shot+SD500">verbose output</a>
+ will show more details, such as the name of each analyzer component in the
+ chain, token positions, and the start and end positions of the token in
+ the original text.
+</p>
+<p>
+ Selecting <a href="http://localhost:8983/solr/admin/analysis.jsp?nt=type&name=text_en_splitting&highlight=on&val=Canon+Power-Shot+SD500&qval=Powershot sd-500">highlight matches</a>
+ when both index and query values are provided will take the resulting
+ terms from the query value and highlight
+ all matches in the index value analysis.
+</p>
<p>
-<a href="http://localhost:8983/solr/admin/analysis.jsp?name=text&highlight=on&val=Four+score+and+seven+years+ago+our+fathers+brought+forth+on+this+continent+a+new+nation%2C+conceived+in+liberty+and+dedicated+to+the+proposition+that+all+men+are+created+equal.+&qval=liberties+and+equality">Here</a>
- is an example of stemming and stop-words at work.
- </p>
+ Other interesting examples:
+</p>
+<ul>
+ <li><a href="http://localhost:8983/solr/admin/analysis.jsp?nt=type&name=text_en&highlight=on&val=Four+score+and+seven+years+ago+our+fathers+brought+forth+on+this+continent+a+new+nation%2C+conceived+in+liberty+and+dedicated+to+the+proposition+that+all+men+are+created+equal.+&qval=liberties+and+equality">English stemming and stop-words</a>
+ using the <span class="codefrag">text_en</span> field type
+ </li>
+ <li><a href="http://localhost:8983/solr/admin/analysis.jsp?nt=type&name=text_cjk&highlight=on&val=%EF%BD%B6%EF%BE%80%EF%BD%B6%EF%BE%85&qval=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A">Half-width katakana normalization with bi-graming</a>
+ using the <span class="codefrag">text_cjk</span> field type
+ </li>
+ <li><a href="http://localhost:8983/solr/admin/analysis.jsp?nt=type&name=text_ja&verbose=on&val=%E7%A7%81%E3%81%AF%E5%88%B6%E9%99%90%E3%82%B9%E3%83%94%E3%83%BC%E3%83%89%E3%82%92%E8%B6%85%E3%81%88%E3%82%8B%E3%80%82">Japanese morphological decomposition with part-of-speech filtering</a>
+ using the <span class="codefrag">text_ja</span> field type
+ </li>
+ <li><a href="http://localhost:8983/solr/admin/analysis.jsp?nt=type&name=text_ar&verbose=on&val=%D9%84%D8%A7+%D8%A3%D8%AA%D9%83%D9%84%D9%85+%D8%A7%D9%84%D8%B9%D8%B1%D8%A8%D9%8A%D8%A9">Arabic stop-words, normalization and stemming</a>
+ using the <span class="codefrag">text_ar</span> field type
+ </li>
+</ul>
+
</div>
@@ -582,7 +626,7 @@ in subsequent searches.
<div id="footer">
<div class="copyright">
Copyright ©
- 2007 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
+ 2012 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
</div>
</div>
</body>
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/CommonGramsFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/CommonGramsFilterFactory.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/CommonGramsFilterFactory.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/CommonGramsFilterFactory.java Fri Mar 30 12:41:28 2012
@@ -58,7 +58,7 @@ public class CommonGramsFilterFactory ex
throw new RuntimeException(e);
}
} else {
- commonWords = (CharArraySet) StopAnalyzer.ENGLISH_STOP_WORDS_SET;
+ commonWords = StopAnalyzer.ENGLISH_STOP_WORDS_SET;
}
}
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/CommonGramsQueryFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/CommonGramsQueryFilterFactory.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/CommonGramsQueryFilterFactory.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/CommonGramsQueryFilterFactory.java Fri Mar 30 12:41:28 2012
@@ -65,7 +65,7 @@ public class CommonGramsQueryFilterFacto
throw new RuntimeException(e);
}
} else {
- commonWords = (CharArraySet) StopAnalyzer.ENGLISH_STOP_WORDS_SET;
+ commonWords = StopAnalyzer.ENGLISH_STOP_WORDS_SET;
}
}
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/JapaneseTokenizerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/JapaneseTokenizerFactory.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/JapaneseTokenizerFactory.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/JapaneseTokenizerFactory.java Fri Mar 30 12:41:28 2012
@@ -42,8 +42,8 @@ import org.apache.solr.util.plugin.Resou
* <analyzer>
* <tokenizer class="solr.JapaneseTokenizerFactory"
* mode=NORMAL
- * user-dictionary=user.txt
- * user-dictionary-encoding=UTF-8
+ * userDictionary=user.txt
+ * userDictionaryEncoding=UTF-8
* />
* <filter class="solr.JapaneseBaseFormFilterFactory"/>
* </analyzer>
@@ -53,9 +53,9 @@ import org.apache.solr.util.plugin.Resou
public class JapaneseTokenizerFactory extends BaseTokenizerFactory implements ResourceLoaderAware {
private static final String MODE = "mode";
- private static final String USER_DICT_PATH = "user-dictionary";
+ private static final String USER_DICT_PATH = "userDictionary";
- private static final String USER_DICT_ENCODING = "user-dictionary-encoding";
+ private static final String USER_DICT_ENCODING = "userDictionaryEncoding";
private UserDictionary userDictionary;
private Mode mode;
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java Fri Mar 30 12:41:28 2012
@@ -28,8 +28,8 @@ import javax.servlet.http.HttpServletRes
import org.apache.solr.servlet.SolrDispatchFilter;
import org.eclipse.jetty.server.*;
-import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.bio.SocketConnector;
+import org.eclipse.jetty.server.handler.GzipHandler;
import org.eclipse.jetty.server.session.HashSessionIdManager;
import org.eclipse.jetty.servlet.FilterHolder;
import org.eclipse.jetty.servlet.ServletContextHandler;
@@ -124,6 +124,7 @@ public class JettySolrRunner {
// Initialize the servlets
final ServletContextHandler root = new ServletContextHandler(server,context,ServletContextHandler.SESSIONS);
+ root.setHandler(new GzipHandler());
server.addLifeCycleListener(new LifeCycle.Listener() {
public void lifeCycleStopping(LifeCycle arg0) {
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java Fri Mar 30 12:41:28 2012
@@ -26,7 +26,7 @@ import java.util.concurrent.Future;
import java.util.concurrent.TimeoutException;
import org.apache.solr.client.solrj.SolrServerException;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
import org.apache.solr.client.solrj.request.CoreAdminRequest.WaitForState;
import org.apache.solr.client.solrj.request.UpdateRequest;
@@ -159,7 +159,7 @@ public class RecoveryStrategy extends Th
private void commitOnLeader(String leaderUrl) throws MalformedURLException,
SolrServerException, IOException {
- CommonsHttpSolrServer server = new CommonsHttpSolrServer(leaderUrl);
+ HttpSolrServer server = new HttpSolrServer(leaderUrl);
server.setConnectionTimeout(30000);
server.setSoTimeout(30000);
UpdateRequest ureq = new UpdateRequest();
@@ -174,7 +174,7 @@ public class RecoveryStrategy extends Th
private void sendPrepRecoveryCmd(String leaderBaseUrl,
String leaderCoreName) throws MalformedURLException, SolrServerException,
IOException {
- CommonsHttpSolrServer server = new CommonsHttpSolrServer(leaderBaseUrl);
+ HttpSolrServer server = new HttpSolrServer(leaderBaseUrl);
server.setConnectionTimeout(45000);
server.setSoTimeout(45000);
WaitForState prepCmd = new WaitForState();
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java Fri Mar 30 12:41:28 2012
@@ -23,12 +23,12 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
-import org.apache.commons.httpclient.params.HttpMethodParams;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
+import org.apache.http.params.CoreConnectionPNames;
import org.apache.solr.client.solrj.SolrServerException;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.request.CoreAdminRequest.RequestRecovery;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.cloud.CloudState;
@@ -55,17 +55,16 @@ public class SyncStrategy {
private ShardHandler shardHandler;
- private static MultiThreadedHttpConnectionManager mgr = new MultiThreadedHttpConnectionManager();
- private static HttpClient client = new HttpClient(mgr);
+ private static ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager();
+ private static DefaultHttpClient client = new DefaultHttpClient(mgr);
static {
- mgr.getParams().setDefaultMaxConnectionsPerHost(20);
- mgr.getParams().setMaxTotalConnections(10000);
- mgr.getParams().setConnectionTimeout(30000);
- mgr.getParams().setSoTimeout(30000);
-
+ mgr.setDefaultMaxPerRoute(20);
+ mgr.setMaxTotal(10000);
+ client.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 30000);
+ client.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 30000);
// prevent retries (note: this didn't work when set on mgr.. needed to be set on client)
- DefaultHttpMethodRetryHandler retryhandler = new DefaultHttpMethodRetryHandler(0, false);
- client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, retryhandler);
+ DefaultHttpRequestRetryHandler retryhandler = new DefaultHttpRequestRetryHandler(0, false);
+ client.setHttpRequestRetryHandler(retryhandler);
}
public SyncStrategy() {
@@ -241,7 +240,7 @@ public class SyncStrategy {
recoverRequestCmd.setAction(CoreAdminAction.REQUESTRECOVERY);
recoverRequestCmd.setCoreName(((SyncShardRequest)srsp.getShardRequest()).coreName);
- CommonsHttpSolrServer server = new CommonsHttpSolrServer(zkLeader.getBaseUrl());
+ HttpSolrServer server = new HttpSolrServer(zkLeader.getBaseUrl());
server.request(recoverRequestCmd);
} catch (Exception e) {
log.info("Could not tell a replica to recover", e);
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/ZkController.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/ZkController.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/ZkController.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/ZkController.java Fri Mar 30 12:41:28 2012
@@ -20,7 +20,6 @@ package org.apache.solr.cloud;
import java.io.File;
import java.io.IOException;
import java.net.InetAddress;
-import java.net.MalformedURLException;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
@@ -33,7 +32,7 @@ import java.util.concurrent.TimeoutExcep
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.request.CoreAdminRequest.WaitForState;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrException.ErrorCode;
@@ -1119,13 +1118,8 @@ public final class ZkController {
boolean isLeader = leaderProps.getCoreUrl().equals(ourUrl);
if (!isLeader && !SKIP_AUTO_RECOVERY) {
- CommonsHttpSolrServer server = null;
- try {
- server = new CommonsHttpSolrServer(leaderBaseUrl);
- } catch (MalformedURLException e) {
- throw new ZooKeeperException(SolrException.ErrorCode.SERVER_ERROR, "",
- e);
- }
+ HttpSolrServer server = null;
+ server = new HttpSolrServer(leaderBaseUrl);
server.setConnectionTimeout(45000);
server.setSoTimeout(45000);
WaitForState prepCmd = new WaitForState();
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/core/RequestHandlers.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/core/RequestHandlers.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/core/RequestHandlers.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/core/RequestHandlers.java Fri Mar 30 12:41:28 2012
@@ -41,7 +41,6 @@ import org.slf4j.LoggerFactory;
public final class RequestHandlers {
public static Logger log = LoggerFactory.getLogger(RequestHandlers.class);
- public static final String DEFAULT_HANDLER_NAME="standard";
protected final SolrCore core;
// Use a synchronized map - since the handlers can be changed at runtime,
// the map implementation should be thread safe
@@ -182,7 +181,10 @@ public final class RequestHandlers {
}
}
- if(get("") == null) register("", get(DEFAULT_HANDLER_NAME));
+ if(get("") == null) register("", get("/select"));//defacto default handler
+ if(get("") == null) register("", get("standard"));//old default handler name; TODO remove?
+ if(get("") == null)
+ log.warn("no default request handler is registered (either '/select' or 'standard')");
}
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/core/SolrCore.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/core/SolrCore.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/core/SolrCore.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/core/SolrCore.java Fri Mar 30 12:41:28 2012
@@ -1543,8 +1543,9 @@ public final class SolrCore implements S
toLog.add("path", req.getContext().get("path"));
toLog.add("params", "{" + req.getParamString() + "}");
- if (req.getParams().getBool(ShardParams.IS_SHARD,false) && !(handler instanceof SearchHandler))
- throw new SolrException(SolrException.ErrorCode.BAD_REQUEST,"isShard is only acceptable with search handlers");
+ // TODO: this doesn't seem to be working correctly and causes problems with the example server and distrib (for example /spell)
+ // if (req.getParams().getBool(ShardParams.IS_SHARD,false) && !(handler instanceof SearchHandler))
+ // throw new SolrException(SolrException.ErrorCode.BAD_REQUEST,"isShard is only acceptable with search handlers");
handler.handleRequest(req,rsp);
setResponseHeaderValues(handler,req,rsp);
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/PingRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/PingRequestHandler.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/PingRequestHandler.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/PingRequestHandler.java Fri Mar 30 12:41:28 2012
@@ -39,7 +39,6 @@ public class PingRequestHandler extends
public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws Exception
{
SolrParams params = req.getParams();
- SolrParams required = params.required();
SolrCore core = req.getCore();
// Check if the service is available
@@ -49,11 +48,11 @@ public class PingRequestHandler extends
}
// Get the RequestHandler
- String qt = required.get( CommonParams.QT );
+ String qt = params.get( CommonParams.QT );//optional; you get the default otherwise
SolrRequestHandler handler = core.getRequestHandler( qt );
if( handler == null ) {
throw new SolrException(SolrException.ErrorCode.BAD_REQUEST,
- "Unknown RequestHandler: "+qt );
+ "Unknown RequestHandler (qt): "+qt );
}
if( handler instanceof PingRequestHandler ) {
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/SnapPuller.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/SnapPuller.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/SnapPuller.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/SnapPuller.java Fri Mar 30 12:41:28 2012
@@ -16,10 +16,21 @@
*/
package org.apache.solr.handler;
-import org.apache.commons.httpclient.*;
-import org.apache.commons.httpclient.auth.AuthScope;
-import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.io.IOUtils;
+import org.apache.http.Header;
+import org.apache.http.HttpResponse;
+import org.apache.http.HttpStatus;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
+import org.apache.http.message.AbstractHttpMessage;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.params.CoreConnectionPNames;
+import org.apache.http.util.EntityUtils;
import org.apache.lucene.index.IndexCommit;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.params.ModifiableSolrParams;
@@ -109,17 +120,23 @@ public class SnapPuller {
// HttpClient for this instance if connectionTimeout or readTimeout has been specified
private final HttpClient myHttpClient;
- private static synchronized HttpClient createHttpClient(String connTimeout, String readTimeout) {
+ private static synchronized HttpClient createHttpClient(String connTimeout, String readTimeout, String httpBasicAuthUser, String httpBasicAuthPassword) {
if (connTimeout == null && readTimeout == null && client != null) return client;
- MultiThreadedHttpConnectionManager mgr = new MultiThreadedHttpConnectionManager();
+ ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager();
// Keeping a very high number so that if you have a large number of cores
// no requests are kept waiting for an idle connection.
- mgr.getParams().setDefaultMaxConnectionsPerHost(10000);
- mgr.getParams().setMaxTotalConnections(10000);
- mgr.getParams().setSoTimeout(readTimeout == null ? 20000 : Integer.parseInt(readTimeout)); //20 secs
- mgr.getParams().setConnectionTimeout(connTimeout == null ? 5000 : Integer.parseInt(connTimeout)); //5 secs
- HttpClient httpClient = new HttpClient(mgr);
+ mgr.setDefaultMaxPerRoute(10000);
+ mgr.setMaxTotal(10000);
+ DefaultHttpClient httpClient = new DefaultHttpClient(mgr);
+ httpClient.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, readTimeout == null ? 20000 : Integer.parseInt(readTimeout)); //20 secs
+ httpClient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, connTimeout == null ? 5000 : Integer.parseInt(connTimeout)); //5 secs
if (client == null && connTimeout == null && readTimeout == null) client = httpClient;
+
+ if (httpBasicAuthUser != null && httpBasicAuthPassword != null) {
+ httpClient.getCredentialsProvider().setCredentials(AuthScope.ANY,
+ new UsernamePasswordCredentials(httpBasicAuthUser, httpBasicAuthPassword));
+ }
+
return httpClient;
}
@@ -139,11 +156,7 @@ public class SnapPuller {
String readTimeout = (String) initArgs.get(HTTP_READ_TIMEOUT);
String httpBasicAuthUser = (String) initArgs.get(HTTP_BASIC_AUTH_USER);
String httpBasicAuthPassword = (String) initArgs.get(HTTP_BASIC_AUTH_PASSWORD);
- myHttpClient = createHttpClient(connTimeout, readTimeout);
- if (httpBasicAuthUser != null && httpBasicAuthPassword != null) {
- myHttpClient.getState().setCredentials(AuthScope.ANY,
- new UsernamePasswordCredentials(httpBasicAuthUser, httpBasicAuthPassword));
- }
+ myHttpClient = createHttpClient(connTimeout, readTimeout, httpBasicAuthUser, httpBasicAuthPassword);
if (pollInterval != null && pollInterval > 0) {
startExecutorService();
} else {
@@ -177,45 +190,66 @@ public class SnapPuller {
*/
@SuppressWarnings("unchecked")
NamedList getLatestVersion() throws IOException {
- PostMethod post = new PostMethod(masterUrl);
- post.addParameter(COMMAND, CMD_INDEX_VERSION);
- post.addParameter("wt", "javabin");
+ HttpPost post = new HttpPost(masterUrl);
+ List<BasicNameValuePair> formparams = new ArrayList<BasicNameValuePair>();
+ formparams.add(new BasicNameValuePair("wt", "javabin"));
+ formparams.add(new BasicNameValuePair(COMMAND, CMD_INDEX_VERSION));
+ UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, "UTF-8");
+ post.setEntity(entity);
return getNamedListResponse(post);
}
NamedList getCommandResponse(NamedList<String> commands) throws IOException {
- PostMethod post = new PostMethod(masterUrl);
+
+ HttpPost post = new HttpPost(masterUrl);
+
+ List<BasicNameValuePair> formparams = new ArrayList<BasicNameValuePair>();
+ formparams.add(new BasicNameValuePair("wt", "javabin"));
+
for (Map.Entry<String, String> c : commands) {
- post.addParameter(c.getKey(),c.getValue());
+ formparams.add(new BasicNameValuePair(c.getKey(), c.getValue()));
}
- post.addParameter("wt", "javabin");
+ UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, "UTF-8");
+ post.setEntity(entity);
return getNamedListResponse(post);
}
- private NamedList<?> getNamedListResponse(PostMethod method) throws IOException {
+ private NamedList<?> getNamedListResponse(HttpPost method) throws IOException {
+ InputStream input = null;
+ NamedList<?> result = null;
try {
- int status = myHttpClient.executeMethod(method);
+ HttpResponse response = myHttpClient.execute(method);
+ int status = response.getStatusLine().getStatusCode();
if (status != HttpStatus.SC_OK) {
throw new SolrException(SolrException.ErrorCode.SERVICE_UNAVAILABLE,
"Request failed for the url " + method);
}
- return (NamedList<?>) new JavaBinCodec().unmarshal(method.getResponseBodyAsStream());
+ input = response.getEntity().getContent();
+ result = (NamedList<?>)new JavaBinCodec().unmarshal(input);
} finally {
try {
- method.releaseConnection();
+ if (input != null) {
+ input.close();
+ }
} catch (Exception e) {
}
}
+ return result;
}
/**
* Fetches the list of files in a given index commit point
*/
void fetchFileList(long gen) throws IOException {
- PostMethod post = new PostMethod(masterUrl);
- post.addParameter(COMMAND, CMD_GET_FILE_LIST);
- post.addParameter(GENERATION, String.valueOf(gen));
- post.addParameter("wt", "javabin");
+ HttpPost post = new HttpPost(masterUrl);
+
+ List<BasicNameValuePair> formparams = new ArrayList<BasicNameValuePair>();
+ formparams.add(new BasicNameValuePair("wt", "javabin"));
+ formparams.add(new BasicNameValuePair(COMMAND, CMD_GET_FILE_LIST));
+ formparams.add(new BasicNameValuePair(GENERATION, String.valueOf(gen)));
+
+ UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, "UTF-8");
+ post.setEntity(entity);
@SuppressWarnings("unchecked")
NamedList<List<Map<String, Object>>> nl
@@ -907,7 +941,7 @@ public class SnapPuller {
private boolean isConf;
- private PostMethod post;
+ private HttpPost post;
private boolean aborted = false;
@@ -1064,10 +1098,6 @@ public class SnapPuller {
} catch (Exception e) {/* noop */
LOG.error("Error closing the file stream: "+ this.saveAs ,e);
}
- try {
- post.releaseConnection();
- } catch (Exception e) {
- }
if (bytesDownloaded != size) {
//if the download is not complete then
//delete the file being downloaded
@@ -1088,35 +1118,43 @@ public class SnapPuller {
* Open a new stream using HttpClient
*/
FastInputStream getStream() throws IOException {
- post = new PostMethod(masterUrl);
+ post = new HttpPost(masterUrl);
//the method is command=filecontent
- post.addParameter(COMMAND, CMD_GET_FILE);
+
+ List<BasicNameValuePair> formparams = new ArrayList<BasicNameValuePair>();
+
+ formparams.add(new BasicNameValuePair(COMMAND, CMD_GET_FILE));
+
//add the version to download. This is used to reserve the download
- post.addParameter(GENERATION, indexGen.toString());
+ formparams.add(new BasicNameValuePair(GENERATION, indexGen.toString()));
if (isConf) {
//set cf instead of file for config file
- post.addParameter(CONF_FILE_SHORT, fileName);
+ formparams.add(new BasicNameValuePair(CONF_FILE_SHORT, fileName));
} else {
- post.addParameter(FILE, fileName);
+ formparams.add(new BasicNameValuePair(FILE, fileName));
}
if (useInternal) {
- post.addParameter(COMPRESSION, "true");
+ formparams.add(new BasicNameValuePair(COMPRESSION, "true"));
}
if (useExternal) {
- post.setRequestHeader(new Header("Accept-Encoding", "gzip,deflate"));
+ formparams.add(new BasicNameValuePair("Accept-Encoding", "gzip,deflate"));
}
//use checksum
if (this.includeChecksum)
- post.addParameter(CHECKSUM, "true");
+ formparams.add(new BasicNameValuePair(CHECKSUM, "true"));
//wt=filestream this is a custom protocol
- post.addParameter("wt", FILE_STREAM);
+ formparams.add(new BasicNameValuePair("wt", FILE_STREAM));
// This happen if there is a failure there is a retry. the offset=<sizedownloaded> ensures that
// the server starts from the offset
if (bytesDownloaded > 0) {
- post.addParameter(OFFSET, "" + bytesDownloaded);
+ formparams.add(new BasicNameValuePair(OFFSET, "" + bytesDownloaded));
}
- myHttpClient.executeMethod(post);
- InputStream is = post.getResponseBodyAsStream();
+
+ UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, "UTF-8");
+ post.setEntity(entity);
+
+ HttpResponse response = myHttpClient.execute(post);
+ InputStream is = response.getEntity().getContent();
//wrap it using FastInputStream
if (useInternal) {
is = new InflaterInputStream(is);
@@ -1130,8 +1168,8 @@ public class SnapPuller {
/*
* This is copied from CommonsHttpSolrServer
*/
- private InputStream checkCompressed(HttpMethod method, InputStream respBody) throws IOException {
- Header contentEncodingHeader = method.getResponseHeader("Content-Encoding");
+ private InputStream checkCompressed(AbstractHttpMessage method, InputStream respBody) throws IOException {
+ Header contentEncodingHeader = method.getFirstHeader("Content-Encoding");
if (contentEncodingHeader != null) {
String contentEncoding = contentEncodingHeader.getValue();
if (contentEncoding.contains("gzip")) {
@@ -1140,7 +1178,7 @@ public class SnapPuller {
respBody = new InflaterInputStream(respBody);
}
} else {
- Header contentTypeHeader = method.getResponseHeader("Content-Type");
+ Header contentTypeHeader = method.getFirstHeader("Content-Type");
if (contentTypeHeader != null) {
String contentType = contentTypeHeader.getValue();
if (contentType != null) {
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java Fri Mar 30 12:41:28 2012
@@ -147,11 +147,6 @@ public class CoreAdminHandler extends Re
break;
}
- case ALIAS: {
- throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "'ALIAS' is not supported " +
- req.getParams().get(CoreAdminParams.ACTION));
- }
-
case UNLOAD: {
doPersist = this.handleUnloadAction(req, rsp);
break;
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java Fri Mar 30 12:41:28 2012
@@ -16,11 +16,24 @@ package org.apache.solr.handler.componen
* limitations under the License.
*/
-import org.apache.commons.httpclient.HttpClient;
+import java.net.ConnectException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.Callable;
+import java.util.concurrent.CompletionService;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorCompletionService;
+import java.util.concurrent.Future;
+
+import org.apache.http.client.HttpClient;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.SolrResponse;
import org.apache.solr.client.solrj.SolrServer;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.impl.LBHttpSolrServer;
import org.apache.solr.client.solrj.request.QueryRequest;
import org.apache.solr.client.solrj.util.ClientUtils;
@@ -42,10 +55,6 @@ import org.apache.solr.common.util.StrUt
import org.apache.solr.core.CoreDescriptor;
import org.apache.solr.request.SolrQueryRequest;
-import java.net.ConnectException;
-import java.util.*;
-import java.util.concurrent.*;
-
public class HttpShardHandler extends ShardHandler {
private HttpShardHandlerFactory httpShardHandlerFactory;
@@ -152,7 +161,7 @@ public class HttpShardHandler extends Sh
if (urls.size() <= 1) {
String url = urls.get(0);
srsp.setShardAddress(url);
- SolrServer server = new CommonsHttpSolrServer(url, httpClient == null ? httpShardHandlerFactory.client : httpClient);
+ SolrServer server = new HttpSolrServer(url, httpClient == null ? httpShardHandlerFactory.client : httpClient);
ssr.nl = server.request(req);
} else {
LBHttpSolrServer.Rsp rsp = httpShardHandlerFactory.loadbalancer.request(new LBHttpSolrServer.Req(req, urls));
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java Fri Mar 30 12:41:28 2012
@@ -16,10 +16,15 @@ package org.apache.solr.handler.componen
* limitations under the License.
*/
-import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
-import org.apache.commons.httpclient.params.HttpMethodParams;
+import java.net.MalformedURLException;
+import java.util.Random;
+import java.util.concurrent.*;
+
+import org.apache.http.client.HttpClient;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
+import org.apache.http.params.CoreConnectionPNames;
import org.apache.solr.client.solrj.impl.LBHttpSolrServer;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.util.NamedList;
@@ -29,10 +34,6 @@ import org.apache.solr.util.plugin.Plugi
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.net.MalformedURLException;
-import java.util.Random;
-import java.util.concurrent.*;
-
public class HttpShardHandlerFactory extends ShardHandlerFactory implements PluginInfoInitialized {
protected static Logger log = LoggerFactory.getLogger(HttpShardHandlerFactory.class);
@@ -64,7 +65,7 @@ public class HttpShardHandlerFactory ext
public String scheme = "http://"; //current default values
- private MultiThreadedHttpConnectionManager mgr;
+ private ThreadSafeClientConnManager mgr;
// socket timeout measured in ms, closes a socket if read
// takes longer than x ms to complete. throws
// java.net.SocketTimeoutException: Read timed out exception
@@ -100,7 +101,7 @@ public class HttpShardHandlerFactory ext
return getShardHandler(null);
}
- public ShardHandler getShardHandler(HttpClient httpClient) {
+ public ShardHandler getShardHandler(DefaultHttpClient httpClient){
return new HttpShardHandler(this, httpClient);
}
@@ -130,18 +131,20 @@ public class HttpShardHandlerFactory ext
new DefaultSolrThreadFactory("httpShardExecutor")
);
- mgr = new MultiThreadedHttpConnectionManager();
- mgr.getParams().setDefaultMaxConnectionsPerHost(this.maxConnectionsPerHost);
- mgr.getParams().setMaxTotalConnections(10000);
- mgr.getParams().setConnectionTimeout(this.connectionTimeout);
- mgr.getParams().setSoTimeout(this.soTimeout);
+ mgr = new ThreadSafeClientConnManager();
+ mgr.setDefaultMaxPerRoute(256);
+ mgr.setMaxTotal(10000);
+ DefaultHttpClient client = new DefaultHttpClient(mgr);
+
+ client.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, connectionTimeout);
+ client.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, soTimeout);
// mgr.getParams().setStaleCheckingEnabled(false);
- client = new HttpClient(mgr);
// prevent retries (note: this didn't work when set on mgr.. needed to be set on client)
- DefaultHttpMethodRetryHandler retryhandler = new DefaultHttpMethodRetryHandler(0, false);
- client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, retryhandler);
+ DefaultHttpRequestRetryHandler retryhandler = new DefaultHttpRequestRetryHandler(0, false);
+ client.setHttpRequestRetryHandler(retryhandler);
+ this.client = client;
try {
loadbalancer = new LBHttpSolrServer(client);
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/CurrencyField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/CurrencyField.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/CurrencyField.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/CurrencyField.java Fri Mar 30 12:41:28 2012
@@ -47,11 +47,11 @@ import javax.xml.xpath.XPathExpressionEx
import javax.xml.xpath.XPathFactory;
import java.io.IOException;
import java.io.InputStream;
-import java.util.ArrayList;
import java.util.Currency;
import java.util.HashMap;
-import java.util.List;
+import java.util.HashSet;
import java.util.Map;
+import java.util.Set;
/**
* Field type for support of monetary values.
@@ -62,7 +62,7 @@ public class CurrencyField extends Field
protected static final String PARAM_DEFAULT_CURRENCY = "defaultCurrency";
protected static final String PARAM_RATE_PROVIDER_CLASS = "providerClass";
protected static final Object PARAM_PRECISION_STEP = "precisionStep";
- protected static final String DEFAULT_RATE_PROVIDER_CLASS = "org.apache.solr.schema.FileExchangeRateProvider";
+ protected static final String DEFAULT_RATE_PROVIDER_CLASS = "solr.FileExchangeRateProvider";
protected static final String DEFAULT_DEFAULT_CURRENCY = "USD";
protected static final String DEFAULT_PRECISION_STEP = "0";
protected static final String FIELD_SUFFIX_AMOUNT_RAW = "_amount_raw";
@@ -117,8 +117,7 @@ public class CurrencyField extends Field
args.remove(PARAM_PRECISION_STEP);
try {
- // TODO: Are we using correct classloader?
- Class<?> c = Class.forName(exchangeRateProviderClass);
+ Class<?> c = schema.getResourceLoader().findClass(exchangeRateProviderClass);
Object clazz = c.newInstance();
if (clazz instanceof ExchangeRateProvider) {
provider = (ExchangeRateProvider) clazz;
@@ -512,14 +511,15 @@ class FileExchangeRateProvider implement
}
@Override
- public String[] listAvailableCurrencies() {
- List<String> pairs = new ArrayList<String>();
+ public Set<String> listAvailableCurrencies() {
+ Set<String> currencies = new HashSet<String>();
for(String from : rates.keySet()) {
+ currencies.add(from);
for(String to : rates.get(from).keySet()) {
- pairs.add(from+","+to);
+ currencies.add(to);
}
}
- return pairs.toArray(new String[1]);
+ return currencies;
}
@Override
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/DateField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/DateField.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/DateField.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/DateField.java Fri Mar 30 12:41:28 2012
@@ -19,12 +19,12 @@ package org.apache.solr.schema;
import org.apache.lucene.index.AtomicReaderContext;
import org.apache.lucene.index.IndexableField;
+import org.apache.lucene.queries.function.docvalues.DocTermsIndexDocValues;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.SortField;
import org.apache.lucene.search.TermRangeQuery;
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.ValueSource;
-import org.apache.lucene.queries.function.docvalues.StringIndexDocValues;
import org.apache.lucene.queries.function.valuesource.FieldCacheSource;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.CharsRef;
@@ -401,7 +401,7 @@ public class DateField extends Primitive
}
@Override
- public Object clone() {
+ public DateFormat clone() {
ISO8601CanonicalDateFormat c
= (ISO8601CanonicalDateFormat) super.clone();
c.millisParser = NumberFormat.getIntegerInstance(CANONICAL_LOCALE);
@@ -458,7 +458,7 @@ class DateFieldSource extends FieldCache
@Override
public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
- return new StringIndexDocValues(this, readerContext, field) {
+ return new DocTermsIndexDocValues(this, readerContext, field) {
@Override
protected String toTerm(String readableValue) {
// needed for frange queries to work properly
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/ExchangeRateProvider.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/ExchangeRateProvider.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/ExchangeRateProvider.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/ExchangeRateProvider.java Fri Mar 30 12:41:28 2012
@@ -17,6 +17,7 @@ package org.apache.solr.schema;
*/
import java.util.Map;
+import java.util.Set;
import org.apache.solr.common.ResourceLoader;
import org.apache.solr.common.SolrException;
@@ -35,11 +36,10 @@ public interface ExchangeRateProvider {
public double getExchangeRate(String sourceCurrencyCode, String targetCurrencyCode) throws SolrException;
/**
- * List all configured currency code pairs
- * @return a string array of <a href="http://en.wikipedia.org/wiki/ISO_4217">ISO 4217</a> currency codes on the format
- * ["SRC,DST", "SRC,DST"...]
+ * List all configured currency codes which are valid as source/target for this Provider
+ * @return a Set of <a href="http://en.wikipedia.org/wiki/ISO_4217">ISO 4217</a> currency code strings
*/
- public String[] listAvailableCurrencies();
+ public Set<String> listAvailableCurrencies();
/**
* Ask the currency provider to explicitly reload/refresh its configuration.
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableDoubleField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableDoubleField.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableDoubleField.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableDoubleField.java Fri Mar 30 12:41:28 2012
@@ -19,7 +19,7 @@ package org.apache.solr.schema;
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.ValueSource;
-import org.apache.lucene.queries.function.docvalues.StringIndexDocValues;
+import org.apache.lucene.queries.function.docvalues.DocTermsIndexDocValues;
import org.apache.lucene.queries.function.valuesource.FieldCacheSource;
import org.apache.lucene.search.SortField;
import org.apache.lucene.util.BytesRef;
@@ -121,7 +121,7 @@ class SortableDoubleFieldSource extends
public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
final double def = defVal;
- return new StringIndexDocValues(this, readerContext, field) {
+ return new DocTermsIndexDocValues(this, readerContext, field) {
private final BytesRef spare = new BytesRef();
@Override
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableFloatField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableFloatField.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableFloatField.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableFloatField.java Fri Mar 30 12:41:28 2012
@@ -19,7 +19,7 @@ package org.apache.solr.schema;
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.ValueSource;
-import org.apache.lucene.queries.function.docvalues.StringIndexDocValues;
+import org.apache.lucene.queries.function.docvalues.DocTermsIndexDocValues;
import org.apache.lucene.queries.function.valuesource.FieldCacheSource;
import org.apache.lucene.search.SortField;
import org.apache.lucene.util.BytesRef;
@@ -124,7 +124,7 @@ class SortableFloatFieldSource extends F
public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
final float def = defVal;
- return new StringIndexDocValues(this, readerContext, field) {
+ return new DocTermsIndexDocValues(this, readerContext, field) {
private final BytesRef spare = new BytesRef();
@Override
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableIntField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableIntField.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableIntField.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableIntField.java Fri Mar 30 12:41:28 2012
@@ -19,7 +19,7 @@ package org.apache.solr.schema;
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.ValueSource;
-import org.apache.lucene.queries.function.docvalues.StringIndexDocValues;
+import org.apache.lucene.queries.function.docvalues.DocTermsIndexDocValues;
import org.apache.lucene.queries.function.valuesource.FieldCacheSource;
import org.apache.lucene.search.SortField;
import org.apache.lucene.util.BytesRef;
@@ -126,7 +126,7 @@ class SortableIntFieldSource extends Fie
public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
final int def = defVal;
- return new StringIndexDocValues(this, readerContext, field) {
+ return new DocTermsIndexDocValues(this, readerContext, field) {
private final BytesRef spare = new BytesRef();
@Override
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableLongField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableLongField.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableLongField.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableLongField.java Fri Mar 30 12:41:28 2012
@@ -19,7 +19,7 @@ package org.apache.solr.schema;
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.ValueSource;
-import org.apache.lucene.queries.function.docvalues.StringIndexDocValues;
+import org.apache.lucene.queries.function.docvalues.DocTermsIndexDocValues;
import org.apache.lucene.queries.function.valuesource.FieldCacheSource;
import org.apache.lucene.search.SortField;
import org.apache.lucene.util.BytesRef;
@@ -124,7 +124,7 @@ class SortableLongFieldSource extends Fi
public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
final long def = defVal;
- return new StringIndexDocValues(this, readerContext, field) {
+ return new DocTermsIndexDocValues(this, readerContext, field) {
private final BytesRef spare = new BytesRef();
@Override
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/StrFieldSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/StrFieldSource.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/StrFieldSource.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/StrFieldSource.java Fri Mar 30 12:41:28 2012
@@ -19,7 +19,7 @@ package org.apache.solr.schema;
import org.apache.lucene.index.AtomicReaderContext;
import org.apache.lucene.queries.function.FunctionValues;
-import org.apache.lucene.queries.function.docvalues.StringIndexDocValues;
+import org.apache.lucene.queries.function.docvalues.DocTermsIndexDocValues;
import org.apache.lucene.queries.function.valuesource.FieldCacheSource;
import java.io.IOException;
@@ -38,7 +38,7 @@ public class StrFieldSource extends Fiel
@Override
public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
- return new StringIndexDocValues(this, readerContext, field) {
+ return new DocTermsIndexDocValues(this, readerContext, field) {
@Override
protected String toTerm(String readableValue) {
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/search/WrappedQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/search/WrappedQuery.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/search/WrappedQuery.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/search/WrappedQuery.java Fri Mar 30 12:41:28 2012
@@ -69,7 +69,7 @@ public class WrappedQuery extends Extend
}
@Override
- public Object clone() {
+ public WrappedQuery clone() {
WrappedQuery newQ = (WrappedQuery)super.clone();
newQ.q = (Query) q.clone();
return newQ;
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/PeerSync.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/PeerSync.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/PeerSync.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/PeerSync.java Fri Mar 30 12:41:28 2012
@@ -26,11 +26,11 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
-import org.apache.commons.httpclient.NoHttpResponseException;
-import org.apache.commons.httpclient.params.HttpMethodParams;
+import org.apache.http.NoHttpResponseException;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
+import org.apache.http.params.CoreConnectionPNames;
import org.apache.lucene.util.BytesRef;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.cloud.ZkController;
@@ -77,17 +77,17 @@ public class PeerSync {
private Set<Long> requestedUpdateSet;
private long ourLowThreshold; // 20th percentile
private long ourHighThreshold; // 80th percentile
- private static MultiThreadedHttpConnectionManager mgr = new MultiThreadedHttpConnectionManager();
- private static HttpClient client = new HttpClient(mgr);
+ private static ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager();
+ private static DefaultHttpClient client = new DefaultHttpClient(mgr);
static {
- mgr.getParams().setDefaultMaxConnectionsPerHost(20);
- mgr.getParams().setMaxTotalConnections(10000);
- mgr.getParams().setConnectionTimeout(30000);
- mgr.getParams().setSoTimeout(30000);
+ mgr.setDefaultMaxPerRoute(20);
+ mgr.setMaxTotal(10000);
+ client.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 30000);
+ client.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 30000);
// prevent retries (note: this didn't work when set on mgr.. needed to be set on client)
- DefaultHttpMethodRetryHandler retryhandler = new DefaultHttpMethodRetryHandler(0, false);
- client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, retryhandler);
+ DefaultHttpRequestRetryHandler retryhandler = new DefaultHttpRequestRetryHandler(0, false);
+ client.setHttpRequestRetryHandler(retryhandler);
}
// comparator that sorts by absolute value, putting highest first
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java Fri Mar 30 12:41:28 2012
@@ -33,9 +33,10 @@ import java.util.concurrent.SynchronousQ
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.http.client.HttpClient;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
import org.apache.solr.client.solrj.request.UpdateRequestExt;
import org.apache.solr.common.SolrException;
@@ -58,10 +59,10 @@ public class SolrCmdDistributor {
static HttpClient client;
static {
- MultiThreadedHttpConnectionManager mgr = new MultiThreadedHttpConnectionManager();
- mgr.getParams().setDefaultMaxConnectionsPerHost(8);
- mgr.getParams().setMaxTotalConnections(200);
- client = new HttpClient(mgr);
+ ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager();
+ mgr.setDefaultMaxPerRoute(8);
+ mgr.setMaxTotal(200);
+ client = new DefaultHttpClient(mgr);
}
CompletionService<Request> completionService;
@@ -313,7 +314,7 @@ public class SolrCmdDistributor {
fullUrl = url;
}
- CommonsHttpSolrServer server = new CommonsHttpSolrServer(fullUrl,
+ HttpSolrServer server = new HttpSolrServer(fullUrl,
client);
clonedRequest.ursp = server.request(clonedRequest.ureq);
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java Fri Mar 30 12:41:28 2012
@@ -25,7 +25,7 @@ import java.util.Map.Entry;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.CharsRef;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.request.CoreAdminRequest.RequestRecovery;
import org.apache.solr.cloud.CloudDescriptor;
import org.apache.solr.cloud.ZkController;
@@ -333,10 +333,10 @@ public class DistributedUpdateProcessor
// TODO: what if its is already recovering? Right now recoveries queue up -
// should they?
String recoveryUrl = error.node.getBaseUrl();
- CommonsHttpSolrServer server;
+ HttpSolrServer server;
log.info("try and ask " + recoveryUrl + " to recover");
try {
- server = new CommonsHttpSolrServer(recoveryUrl);
+ server = new HttpSolrServer(recoveryUrl);
server.setSoTimeout(5000);
server.setConnectionTimeout(5000);
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/MaxFieldValueUpdateProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/MaxFieldValueUpdateProcessorFactory.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/MaxFieldValueUpdateProcessorFactory.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/MaxFieldValueUpdateProcessorFactory.java Fri Mar 30 12:41:28 2012
@@ -60,7 +60,7 @@ public final class MaxFieldValueUpdatePr
Collection result = values;
try {
result = Collections.singletonList
- (Collections.max((Collection)values));
+ (Collections.max(values));
} catch (ClassCastException e) {
throw new SolrException
(BAD_REQUEST,
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/MinFieldValueUpdateProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/MinFieldValueUpdateProcessorFactory.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/MinFieldValueUpdateProcessorFactory.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/MinFieldValueUpdateProcessorFactory.java Fri Mar 30 12:41:28 2012
@@ -60,7 +60,7 @@ public final class MinFieldValueUpdatePr
Collection result = values;
try {
result = Collections.singletonList
- (Collections.min((Collection)values));
+ (Collections.min(values));
} catch (ClassCastException e) {
throw new SolrException
(BAD_REQUEST,
Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java Fri Mar 30 12:41:28 2012
@@ -321,7 +321,7 @@ public class ConcurrentLRUCache<K,V> {
// this loop so far.
queue.myMaxSize = sz - lowerWaterMark - numRemoved;
while (queue.size() > queue.myMaxSize && queue.size() > 0) {
- CacheEntry otherEntry = (CacheEntry) queue.pop();
+ CacheEntry otherEntry = queue.pop();
newOldestEntry = Math.min(otherEntry.lastAccessedCopy, newOldestEntry);
}
if (queue.myMaxSize <= 0) break;
Modified: lucene/dev/branches/lucene3930/solr/core/src/test-files/solr/conf/schema.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/test-files/solr/conf/schema.xml?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/test-files/solr/conf/schema.xml (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/test-files/solr/conf/schema.xml Fri Mar 30 12:41:28 2012
@@ -396,7 +396,10 @@
<!-- Currency type -->
<fieldType name="currency" class="solr.CurrencyField" currencyConfig="currency.xml"/>
- <fieldType name="mock_currency" class="solr.CurrencyField" providerClass="org.apache.solr.schema.MockExchangeRateProvider" foo="bar" />
+ <fieldType name="mock_currency" class="solr.CurrencyField" providerClass="solr.MockExchangeRateProvider" foo="bar" />
+ <fieldType name="openexchangeratesorg_currency" class="solr.CurrencyField"
+ providerClass="solr.OpenExchangeRatesOrgProvider"
+ ratesFileLocation="open-exchange-rates.json" />
<!-- some per-field similarity examples -->
Modified: lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/TestDistributedSearch.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/TestDistributedSearch.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/TestDistributedSearch.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/TestDistributedSearch.java Fri Mar 30 12:41:28 2012
@@ -292,11 +292,13 @@ public class TestDistributedSearch exten
//SOLR 3161 ensure shards.qt=/update fails (anything but search handler really)
// Also see TestRemoteStreaming#testQtUpdateFails()
try {
- query("q","*:*","shards.qt","/update","stream.body","<delete><query>*:*</query></delete>");
- fail();
+ ignoreException("isShard is only acceptable");
+ // query("q","*:*","shards.qt","/update","stream.body","<delete><query>*:*</query></delete>");
+ // fail();
} catch (SolrException e) {
//expected
}
+ unIgnoreException("isShard is only acceptable");
// test debugging
handle.put("explain", UNORDERED);
Modified: lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/TestSolrCoreProperties.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/TestSolrCoreProperties.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/TestSolrCoreProperties.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/TestSolrCoreProperties.java Fri Mar 30 12:41:28 2012
@@ -19,10 +19,10 @@ package org.apache.solr;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.solr.util.AbstractSolrTestCase;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.response.QueryResponse;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.commons.io.IOUtils;
@@ -51,7 +51,7 @@ public class TestSolrCoreProperties exte
solrJetty.start();
String url = "http://localhost:" + solrJetty.getLocalPort() + "/solr";
- client = new CommonsHttpSolrServer(url);
+ client = new HttpSolrServer(url);
}
Modified: lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/analysis/TestJapaneseTokenizerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/analysis/TestJapaneseTokenizerFactory.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/analysis/TestJapaneseTokenizerFactory.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/analysis/TestJapaneseTokenizerFactory.java Fri Mar 30 12:41:28 2012
@@ -78,7 +78,7 @@ public class TestJapaneseTokenizerFactor
"æéé¾,æéé¾,ã¢ãµã·ã§ã¦ãªã¥ã¦,ã«ã¹ã¿ã 人å\n";
JapaneseTokenizerFactory factory = new JapaneseTokenizerFactory();
Map<String,String> args = new HashMap<String,String>();
- args.put("user-dictionary", "userdict.txt");
+ args.put("userDictionary", "userdict.txt");
factory.init(args);
factory.inform(new StringMockSolrResourceLoader(userDict));
TokenStream ts = factory.create(new StringReader("é¢è¥¿å½é空港ã«è¡ã£ã"));
Modified: lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/cloud/AbstractZkTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/cloud/AbstractZkTestCase.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/cloud/AbstractZkTestCase.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/cloud/AbstractZkTestCase.java Fri Mar 30 12:41:28 2012
@@ -91,6 +91,7 @@ public abstract class AbstractZkTestCase
putConfig(zkClient, "stopwords.txt");
putConfig(zkClient, "protwords.txt");
putConfig(zkClient, "currency.xml");
+ putConfig(zkClient, "open-exchange-rates.json");
putConfig(zkClient, "mapping-ISOLatin1Accent.txt");
putConfig(zkClient, "old_synonyms.txt");
putConfig(zkClient, "synonyms.txt");