はじめまして。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_(バージョン)
といったフィールドが生成されるようです。
それでは次のステップに・・・と思ったら
もうこんなところまで書いてしまっていました。
意外と書くスペースがなかったりしますね。
とりあえず今回はこんなところで
近いうちにもう少し突っ込んだお話をアップしようかと思います。
それではまた!
コメントを残す