【Solr】SolrCellについて [その1]

火曜日, 10月 16, 2012

はじめまして。Curious Vehicleの中鉢と申します。

本日よりCurious Vehicleの技術ブログを書くことになりました。

個人的に興味のあることや、いただいたお仕事を通じて

身に着けた技術、またハマった点などを

つらつらと書き綴っていこうかと思っています。

さて、本日は弊社でもコンサルティングを行っている

Apache Solrの一機能であるSolrCellについて

少し調べてみましたのでその調査内容なんぞを書いていきたいと考えています。

SolrCellとは

PDFやMSOffice文書のようなバイナリファイルや画像、音声のファイル等から

テキストデータ、メタデータなどを抽出しSolrのインデックスデータを作成、

更新する機能となります。

テキストデータの抽出にはApacheプロジェクトのTikaというソフトウェアを

利用しており、抽出できるファイルの種類もTikaのものに準じることになります。

※サポートしているフォーマットはTikaのサイトを参照ください。

http://tika.apache.org/1.2/formats.html

まずは動かしてみる

とりあえずどのようなものかは想像が付いたので

どうやってSolrにデータを投入するのかを知るため

SolrWikiのGetting Startを参考にSolrCellの機能を動かしてみました。

  • まずはSolrの起動です。4.0をダウンロードしてきて、
    start.jarを実行しています。
$ tar zxf apache-solr-4.0.0.tgz
$ cd apache-solr-4.0.0/example
$ java -jar start.jar
  • 次にhtmlファイルをSolrに対してアップロードして
    インデックスの更新を行います。
$ cd apache-solr-4.0.0
$ cd docs/solr-cell/
$ curl "http://localhost:8983/solr/update/extract?literal.id=doc1&commit=true" -F "myfile=@index.html"

コレでひとまずSolrに対してデータが登録できたはずです。
どんなデータが登録されたか見てみましょう。
http://localhost:8983/solr/collection1/select?q=*:*&indent=true
わー、見づらいですね(゚ω゚ )

<?xml version="1.0" encoding="UTF-8"?>
<response>

<lst name="responseHeader">
  <int name="status">0</int>
  <int name="QTime">11</int>
  <lst name="params">
    <str name="indent">true</str>
    <str name="q">*:*</str>
  </lst>
</lst>
<result name="response" numFound="1" start="0">
  <doc>
    <arr name="links">
      <str>rect</str>
      <str>overview-summary.html</str>
    </arr>
    <str name="id">doc1</str>
    <arr name="title">
      <str>Solr 4.0.0 API</str>
    </arr>
    <arr name="content_type">
      <str>text/html; charset=utf-8</str>
    </arr>
    <arr name="content">
      <str>                 Solr 4.0.0 API
Frame Alert
This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.

Link to Non-frame version.
   </str>
    </arr>
    <long name="_version_">1415967267678584832</long></doc>
</result>
</response>

なにはともあれ登録できたようです。

今回取り込んだhtmlからは

  • id(curlのパラメータで指定)
  • links(おそらくはaタグの中身)
  • title(タイトル)
  • content-type(コンテンツタイプ)
  • content(内容)
  • _version_(バージョン)

といったフィールドが生成されるようです。

それでは次のステップに・・・と思ったら

もうこんなところまで書いてしまっていました。

意外と書くスペースがなかったりしますね。

とりあえず今回はこんなところで

近いうちにもう少し突っ込んだお話をアップしようかと思います。

それではまた!

コメントを残す

CAPTCHA