トップ  eラーニング  書籍  辞典

言語

開発環境

技術・仕様

ライブラリ/Framework/CMS

ミドル/OS/ネットワーク

その他

Loarding…

Solrに登録したドキュメントの検索(簡単なJavaのクライアントプログラムを作成)

トップSolrJavaのクライアントプログラムを作成して検索

概要

このページでは、Solrに登録したドキュメントの検索(簡単なJavaのクライアントプログラムを作成)する方法について掲載しています。

Solrのサンプルデータを登録し、簡単なJavaのクライアントプログラムを作成&使用して、ドキュメントを検索する方法を紹介しています。

Solrのサンプルデータを登録

Solrを配備したTomcatを起動し、<ダウンロードしたSolrの媒体置き場>\example\exampledocsにあるpost.jarを使用して、 同ディレクトリにあるサンプルデータ(*.xml)をSolrに送信します。

<ダウンロードしたSolrの媒体置き場>\example\exampledocsに移動します。

cd <ダウンロードしたSolrの媒体置き場>/example/exampledocs

post.jarを実行します。

java -Durl="http://localhost:8080/solr/update" -jar post.jar *.xml

「http://localhost:8080/solr/」にアクセスして、データが登録されていることを確認します。

送信後の管理画面

SolrにGETリクエストを送るJavaのクライアントプログラムの作成

以下のサンプルコードを作成&コンパイルします。

package com.zealseeds.sample.solr;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class SolrSelectSample {

  public static void main(String[] args) {
    System.out.println(new SolrSelectSample().select());
  }

  public String select() {
    StringBuilder result = new StringBuilder();
    HttpURLConnection urlc = null;
    try {
      URL solrUrl = new URL("http://localhost:8080/solr/collection1/select"
          + "?q=hello&wt=xml&indent=true");
      urlc = (HttpURLConnection) solrUrl.openConnection();
      urlc.setRequestMethod("GET");
      urlc.setRequestProperty("Content-type", "text/xml; charset=UTF-8");
      urlc.connect();
      BufferedReader br = new BufferedReader(
                   new InputStreamReader(urlc.getInputStream(), "UTF-8"));
      while (true){
        String line = br.readLine();
        if (line == null)  break;
        result.append(line).append("\n");
      }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (urlc != null)  urlc.disconnect();
    }
    return result.toString();
  }
}

Solrに登録したドキュメントの検索

プロンプトより、サンプルプログラムを実行する(java SolrSelectSample.class)と以下のように表示されます。

<?xml version="1.0" encoding="UTF-8"?>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
<lst name="params">
<str name="indent">true</str>
<str name="q">hello</str>
<str name="wt">xml</str>
</lst>
</lst>
<result name="response" numFound="1" start="0">
<doc>
<str name="id">SOLR1000</str>
<str name="name">Solr, the Enterprise Search Server</str>
<str name="manu">Apache Software Foundation</str>
<arr name="cat">
<str>software</str>
<str>search</str>
</arr>
<arr name="features">
<str>Advanced Full-Text Search Capabilities using Lucene</str>
<str>Optimized for High Volume Web Traffic</str>
<str>Standards Based Open Interfaces - XML and HTTP</str>
<str>Comprehensive HTML Administration Interfaces</str>
<str>Scalability - Efficient Replication to other Solr Search Servers</str>
<str>Flexible and Adaptable with XML configuration and Schema</str>
<str>Good unicode support: h?llo (hello with an accent over the e)</str>
</arr>
<float name="price">0.0</float>
<str name="price_c">0,USD</str>
<int name="popularity">10</int>
<bool name="inStock">true</bool>
<date name="incubationdate_dt">2006-01-17T00:00:00Z</date>
<long name="_version_">1427412388241473536</long></doc>
</result>
</response>

戻る