SolandraでWordやPDFなどのドキュメントをCellで取りこんで全文検索できるようにしてみる。
ちなみにSolandraにはCellが入っていないのでsolr本家に含まれるCellを
Solandraでも使えるようsolrconfig.xmlで指定してあげる。
とりあえずsolr本家ダウンロード
schema.xmlにdynamicFieldを設定する。
あとSolandraはunique_idが必須なのでユニークIDを指定出来るような仕組みを用意しておく必要がありそう。
以上でWordなどのdocファイルが格納できる。
参考:
Apache Solr入門 ―オープンソース全文検索エンジン
クチコミを見る
ちなみにSolandraにはCellが入っていないのでsolr本家に含まれるCellを
Solandraでも使えるようsolrconfig.xmlで指定してあげる。
とりあえずsolr本家ダウンロード
wget http://ftp.kddilabs.jp/infosystems/apache/lucene/solr/3.6.1/apache-solr-3.6.1.tgz tar xvf apache-solr-3.6.1.tgzSolandraのsolrconfig.xmlに追記
vi solrconfig.xml
<lib dir="/usr/local/apache-solr-3.6.1/contrib/extraction/lib" regex=".*\.jar" /> <lib dir="/usr/local/apache-solr-3.6.1/dist" regex="apache-solr-cell-\d.*\.jar" />サンプルにIPAのサイトからyouryou.docをダウンロードする。
wget www.ipa.go.jp/software/2007/document/youryou.doc取りこむ
curl -H "Content-type:text/xml; charset=utf-8" 'http://localhost:8983/solandra/skype/update/extract?extractOnly=true' --data-binary @youryou.doc > youryou.xml上手く取り込めれば以下のようにXMLで出力される。
このままSolrに取り込もうとすると上記XMLのnameフィールドのRevision-NumberやCommentsを格納するためにSolrに色々なフィールドを用意しなければいけないがそれは面倒なのでdynamicFieldとリクエスト時のパラメータにuprefixを追加して全てのフィールドをとりあえずs_*というフィールドで取り込めるようにする。0 138 <?xml version="1.0" encoding="UTF-8"?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta name="Revision-Number" content="1"/> <meta name="Comments" content=""/> <meta name="Last-Author" content="k-kumaga"/> <meta name="Template" content="Normal.dot"/> <meta name="Page-Count" content="1"/> <meta name="subject" content=""/> <meta name="Application-Name" content="Microsoft Office Word"/> <meta name="Author" content="IPA"/> <meta name="Word-Count" content="710"/> <meta name="xmpTPg:NPages" content="1"/> <meta name="Edit-Time" content="600000000"/> <meta name="Creation-Date" content="2007-02-01T05:56:00Z"/> <meta …
schema.xmlにdynamicFieldを設定する。
vi schema.xml
また取り込む時のパラメータにuprefixでs_を指定しs_*のdynamicFieldに全て追加出来るようにする。
あとSolandraはunique_idが必須なのでユニークIDを指定出来るような仕組みを用意しておく必要がありそう。
curl -H "Content-type:text/xml; charset=utf-8" 'http://localhost:8983/solandra/skype/update/extract?literal.id=ユニークなID&uprefix=s_&commit=true' --data-binary @youryou.doc上記のliteral.フィールド名=値に当たるところはそのままSolrに取り込まれる。
以上でWordなどのdocファイルが格納できる。
参考:
Apache Solr入門 ―オープンソース全文検索エンジン
クチコミを見る