SolrJを使って検索

SolrJというものがAPIとしてSolrに同封されているらしい

Javaで普通にLuceneを使って検索するよりもだいぶ簡単にコードを記述できるようだ。
結果の取得も直感的でよさそう
あとはMoreLikeThisが使えるかどうか

apache-solr-1.3.0\client\java\solrj\にライブラリ発見
mavenのローカルレポジトリに追加

solrJ動かしてみた。何故かLuceneで検索するようり圧倒的に早い
何が違うんだろうか
次はMoreLikeThisが使えるかどうか調査
apache-solr-1.3.0\docs\api\solrj\index.htmlにjaavdocを発見

ここにLuceneのライブラリー変えると早くなるって書いてあるので、最新の2.4.1にしてみる。
C:\Lucene\tomcat\webapps\solr\WEB-INF\libのそれっぽいlibを置き換え

最後に動作したソースを

import java.net.MalformedURLException;

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.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;

public class SearchSolrJ {
	public static void main(String[] args) throws MalformedURLException, SolrServerException {
		SolrServer server = new CommonsHttpSolrServer("http://localhost:8080/solr/");
		SolrQuery query = new SolrQuery("テスト");
		QueryResponse response = server.query(query);
		SolrDocumentList list = response.getResults();
		for(SolrDocument doc: list){
		  System.out.println(doc.getFieldValue("path"));
		}
	}

}