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")); } } }