- blogs:
- cles::blog

OpenSearchServer が面白そう

全文検索エンジンとしては Apache の Solr や、それを利用してパッケージ化した Fess が有名ですが、最近は AWS にも Amazon CloudSearch があったりと一時期よりも選択肢がかなり増えてきていますが、OpenSearchServer という別の選択肢を発見したのでメモ。まだ日本語対応はしていないようですが、どの程度使えるのか近日中にちょっと試してみたいと思います。
Web UIを持つ全文検索エンジン「OpenSearchServer 1.5」がリリース | SourceForge.JP Magazine
OpenSearchServerは大規模環境での利用をサポートする高性能な検索エンジン。メディア企業仏Infopro Communicationsが自社用の検索機能として開始した。現在開発者らは独立した企業として、開発とサポートを提供している。
Webユーザーインターフェイス、クローラー、Rest/Restful APIなどの機能を持ち、開発者は自分のアプリケーションに全文検索機能を統合できる。検索機能としては高機能な全文検索、スペル修正、自動入力補完、位置情報、フィルタなどがある。17の言語に対応し、自動で言語を認識するが、現時点では日本語は含まれていない。
Open Source Search Engine | OpenSearchServer
OpenSearchServer is a powerful, enterprise-class, search engine program. Using its web user interface, the crawlers (web, file, database, …) and its REST/RESTFul API you will be able to integrate quickly and easily advanced full-text search capabilities in your application. OpenSearchServer runs on Windows and Linux/Unix/BSD.

PDFやWord, Excel などからテキスト抽出ができる xdoc2txt




先日、Apache PDFbox を使って PDF からテキストを抽出する方法を調べましたが、もう少し調べてみたら PDF だけではなく、Word や Excel, 一太郎などの様々な電子データからテキストを抽出することができる xdoc2txt というソフトウェアを見つけたのでメモ。
Windows 専用なので、検索システムに組み込むには少し工夫が必要になりそうですね。
Wine を使って動作可能かどうかについては今度検証してみようと思います。
xdoc2txtはPDF,WORD,EXCEL,一太郎などの各種バイナリ文書から、テキスト要素を抽出 する汎用テキストコンバータであり、Windowsのコマンドラインで動作します。
xdoc2txtは各種文書の構造を直接解析しているため、単独で変換できます。WORDや Acrobatなど、作成元のアプリケーションをインストールする必要はありません。
高速に動作するので、各種全文検索エンジンのフィルタに最適です。
試しに PDFbox の時と同じくドコモの開示文書からテキスト文を抽出してみましたが、 PDFbox とほぼ同様の出力結果が得られました。

Apache Lucy という全文検索ライブラリ



Apache Lucy という Lucene のC言語版のようなプロジェクトを見つけたのでメモ。Lucene とインデックスや API の互換性はないようですが、各言語(特にスクリプト)のバインディングが出てくると、ちょっとしたアプリでも全文検索が容易にできるようになるのでいいですね。今後とも動向をウォッチしていきたいと思います。
Apache LucyはJavaで実装された検索エンジンライブラリ「Apache Lucene」をベースにC言語で実装された検索エンジンライブラリ。LuceneとファイルフォーマットやAPIの互換性はなく、そのため「ゆるい(loose)」ポートと言われている。RubyやPerlといった動的言語からの利用もターゲットとされており、Perl向けのバインディングなども含まれている。
Apache Lucy is full-text search engine library written in C and targeted at dynamic languages. It is a "loose C" port of Apache Lucene™, a search engine library for Java.

官報を検索できる「Kanpoo.jp」

官報を全文検索できるサービスKanpoo.jpが公開されたようです。
官報を全文検索できる「Kanpoo.jp」 - ITmedia News
1カ月以内に発行された官報を対象に全文検索できる。キーワードやメールアドレスを事前に登録すれば、指定キーワードが含まれる官報が発行された場合に、メールで通知する機能も備えた。同機能は、当日発行分が対象。
役所のサービスは義務的で、得てして使い勝手が決して良くない場合が多いので、そういうところを捕らえて新たなサービスを作ると言う方向性は面白いと思います。全文検索エンジンも今はオープンソースで良いモノが手に入りますし、改正著作権法が施行されて検索エンジンのキャッシュも合法化されているので、アイディア次第でいろいろなサービスが作れそうですね。

「Fess」 検索アプライアンス並みにすぐ使える検索サーバー




Solrは検索エンジンの基幹部分としては秀逸で、スケーラビリティやパフォーマンスも高く、土台となっているLuceneをJavaから直接使うよりは格段に使いやすいのですが、機能としてはドキュメントの登録や検索を行うAPIがあるのみです。従ってユーザーが使う事が出来るレベルの検索サーバーとして活用するには、ドキュメントを登録するためのNutchのようなクローラー、もしくは、ドキュメント登録用のバッチや、出力のXMLをユーザーに見やすい形に整形したり、絞り込みのナビゲーションを行ったりするための、ユーザー向けのUIの部分を作り込む必要があり、意外と手間がかかります。
本格的に特定の目的のためのサービスを開発するにはそれも仕方ないことなのですが、場合によっては手っ取り早く検索サーバーが導入したいと言う事もあるかと思います。そんなときに第一選択として考えるのがGSAやGoogle Miniのようなアプライアンスになりますが、フリーなものを探しているのであれば、下記の記事で紹介されているFessを検討してみるといいかもしれません。
Fessで作るApache Solrベースの全文検索サーバー ~ 導入編(1/3):CodeZine
Fessは簡単に導入できる、Javaベースのオープンソース全文検索サーバーです。Fessの検索エンジン部分にはApache Solrを利用しています。Solrは、2億ドキュメントもインデックス可能と言われる非常に高機能な検索エンジンです。一方で、Apache Solrで検索システムを構築しようとする場合、クローラ部分などを自分で実装する必要性があります。Fessではクローラ部分にSeasar Projectから提供されるS2Robotを利用して、ウェブやファイルシステム上の様々な種類のドキュメントを収集して検索対象とすることができます。
試しにセットアップしてみたら、あっという間にセットアップしてドキュメントのクロールを始める事ができました。
ケータイ向けの機能もあるみたいなので、今後が楽しみなプロダクトです。

Solr 1.4 リリース


全文検索エンジン Apache Solr 1.4 の正式版がリリースされていました。
10 November 2009 - Solr 1.4 Released
Solr 1.4 has been released and is now available for public download! New Solr 1.4 features include
* Major performance enhancements in indexing, searching, and faceting
* Revamped all-Java index replication that's simple to configure and can replicate config files
* Greatly improved database integration via the DataImportHandler
* Rich document processing (Word, PDF, HTML) via Apache Tika
* Dynamic search results clustering via Carrot2
* Multi-select faceting (support for multiple items in a single category to be selected)
* Many powerful query enhancements, including ranges over arbitrary functions, nested queries of different syntaxes
* Many other plugins including Terms for auto-suggest, Statistics, TermVectors, Deduplication
1.4-Nightlyをずっと使っていたので個人的にあまり目新しくないのですが、1.3と比較すればかなりパフォーマンスは向上しています。膨大なドキュメントを一瞬で検索できるという爽快感は他のソフトウェアでは味わえないので、膨大なテキストを扱う機会があれば一度インデックスを作って検索をかけてみるとよいです。

Solrに入門してみる




最近、大量のテキストデータを扱う事が多いのでSolrという全文検索サーバをいろいろと調べています。
とりあえず、情報が纏まっているページがあったので助かりました。
全文検索サーバ: これからSolrを始める人のためのApache Solr概要と便利なリンク集 | イージーネット Tech Blog
GoogleでSolrを検索しても、日本語圏のコンテンツはまだまだ少ないようです。
当社がSolrを使い始めた昨年は現在よりもさらに少なく、結構苦労しました。
今回はやや雑多な内容となりますが、新しくSolrを使う際に必要と考えられる情報をまとめてみました。
今から4,5年くらい前に開発でLuceneを軽くさわった事があったのですが、資料は英語ばっかりで到底自分の手に負えるような代物ではなく、自分はネイティブなエンジニアがLucene in Actionを開きながら説明してくれる情報に耳を傾けるだけという状況だったことを考えると、今やSolrという全文検索サービスとして使えるアプリケーションが手に入る時代になったわけですからだいぶ時間が経ったなぁという気がします。

形態素解析を使わない全文検索

N-gramを使えば形態素解析がなくても、MySQLのfulltextインデックスを使った全文検索ができるよという話。文章をN-gramに変換するためのphpモジュールもついているので、すぐに導入できます。
MySQL FULLTEXT Ngram : LIKE検索より数十倍高速な、お手軽 日本語全文検索 について|blog|たたみラボ
前回の記事 で触れた、FULLTEXTとNgramを駆使した日本語全文検索についてまとめてみました。パフォーマンスや導入方法の解説にあわせて、専用のNgramテキストを生成する php/perl モジュールも公開していますので、使いどころを把握した上で、気軽に試してみてくださいませ。
確かにこの方法なら簡単だし、特に追加で必要になるものもないのでNucleusの標準の検索機能にこの機能を組み込んでしまうというのはいいかもしれない*1なぁ。
- *1: 元々、オリジナル版のNucleusはMySQLのfulltextインデックスを使って動作するようになっているわけだし。

phpで全文検索 php_senna


Sennaについては2月頃から興味を持っていたんですが、どうも自分の使っているMySQLとバージョンが合わないので導入を躊躇していたのですが、PHPに組み込むこともできるようなのでそちらから試してみることにしました。ということで、php_senna*1を導入してみました。
インストールについては付属のREADMEどおりで特に問題ありません。
[phpで全文検索 php_senna の続きを読む]
全文検索エンジン Senna 1.0.1

某所でちょっと全文検索エンジンが欲しいよねという話が出ているのでいろいろ情報収集してたら面白そうなプロダクトを発見。
Senna 組み込み型全文検索エンジン - Senna 組み込み型全文検索エンジン
Sennaは組み込み型の全文検索エンジンです。DBMSやスクリプト言語処理系等に組み込むことによって、その全文検索機能を強化することができます。 n-gramインデックスと単語インデックスの特徴を兼ね備えた、高速かつ高精度な転置インデックスタイプのエンジンです。コンパクトな実装ですが、大規模な文書量と検索要求を処理できるように設計されています。また、純粋なn-gramインデックスの作成も可能です。
MySQLに組み込んで使うと、FULLTEXT INDEXでSennaが使われるようになるみたいです。組み込むのはちょっと手間かも知れませんが、逆にアプリ側であれこれと処理をしなくていいので面白いアプローチかも。ちょっと時間を取ってインストールしてみようと思います。
- Rufus Windows11 インストーラカスタム
- Rufus に Windows のインストールをカスタマイズできる機能がついてた
- Rufus Windows11 インストーラカスタム
- Rufus に Windows のインストールをカスタマイズできる機能がついてた
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110922)
3 . 年次の人間ドックへ(110486)
4 . 2023 年分の確定申告完了!(1つめ)(110034)
5 . 三菱鉛筆がラミーを買収(109934)
Academic[574]
Book[155]
Diary[522]
Disaster[101]
Foodlogue[1425]
Game[284]
Goods[805]
Healthcare[341]
Hobby[32]
IT[1195]
Military[343]
misc.[1570]
Mobile[510]
Music[38]
Neta[106]
News[95]
Photo[391]
RealEstate[120]
Security[1178]
SEO Contest[36]
Software[634]
Tips[1886]
Travelogue[1238]
Web[675]
Work[193]