-
Notifications
You must be signed in to change notification settings - Fork 24
Solr
Masao Takaku edited this page Aug 22, 2016
·
12 revisions
以下の例では、sunspot_solrを使用しています。
solrにlibディレクトリを追加します。
$ cd ~/enju
$ mkdir solr/lib
solr-5.5.1.tgz をダウンロードして展開し、必要なjarをコピーします。
$ wget https://archive.apache.org/dist/lucene/solr/5.5.1/solr-5.5.1.tgz
$ tar zxvf solr-5.5.1.tgz
$ cd solr-5.5.1
$ cp dist/solr-cell-5.5.1.jar ~/enju/solr/lib/
$ cp contrib/extraction/lib/* ~/enju/solr/lib/
solr/configsets/sunspot/conf/solrconfig.xml に以下の行を追加します。
<admin>
<defaultQuery>*:*</defaultQuery>
</admin>
<!-- ここから -->
<lib dir="../../../lib/" />
<requestHandler name="/update/extract" class="org.apache.solr.handler.extraction.ExtractingRequestHandler" startup="lazy">
<lst name="defaults">
<str name="fmap.content">text</str>
<str name="lowernames">true</str>
<str name="uprefix">ignored_</str>
<str name="captureAttr">true</str>
<str name="fmap.a">links</str>
<str name="fmap.div">ignored_</str>
</lst>
</requestHandler>
<!-- ここまで -->
</config>
Enju側で環境変数 ENJU_EXTRACT_TEXT に「true」を設定します。
$ echo ENJU_EXTRACT_TEXT=true >> ~/enju/.env
enju_leafとSolrを再起動します。
動作確認を行います。ここではproduction環境を例とし、テキストを抽出するファイルをexample.pdfとします。
$ curl "http://localhost:8983/solr/default/update/extract?extractOnly=true&wt=ruby" -F "[email protected]"
正常にテキストが抽出できていれば、以下のメソッドで、Manifestationに添付したファイルから抽出したテキストが、manifestationsテーブルのfulltextカラムに保存されるようになります。
$ rails c production
> manifestation = Manifestation.first
> manifestation.extract_text