ScalaからSolr3.6に接続してみる

scalaからSolrに接続するように試してみた。まずはSolrjを直接使ってsolr3.6に接続してみようと、以下のようなコードを書いてみた。

package test {

    import org.apache.solr.client.solrj.impl.HttpSolrServer
    import org.apache.solr.common.params.ModifiableSolrParams

    object Main {

        def main(args: Array[String]): Unit = {
            println("hello")
            val server = new HttpSolrServer("http://localhost:8983/solr")
            var params = new ModifiableSolrParams
            params.set("q", "*")
            val response = server.query(params)
            println(response)
        }

    }
}

さて、これを動かしてみようとするも、NoClassDefFoundErrorが発生してしまって動かない。

なぜだ?と思ったら、Solrj使うには同梱されているライブラリだけじゃなくてhttpclient(4系)が必要らしい。

Ubuntu系だとaptで入るようなのでaptで入れてみた。

$ sudo apt-get install libhttpclient-java
$ sudo apt-get install libhttpmime-java

eclipseで試してたので、インストール後、ビルドパスに以下のjarファイルを追加。

  • httpclient-4.1.1.jar
  • httpcore-4.0.1.jar
  • httpmime-4.1.1.jar

これでとりあえずはSolrからデータが取得できるようになったようだ。