ナビゲーション・リンクをスキップ
RONDHUIT Certified Solr Subscription Package

RONDHUIT-solr-plugin 4.0.1 API

株式会社ロンウイットが提供するSolrサブスクリプションパッケージに含まれるプラグインの説明です。

参照先: 説明

パッケージ 
パッケージ 説明
com.rondhuit.html
RCSSパッケージのうち、HTMLに関する実装をしているクラスを提供している。
com.rondhuit.lucene.tool
Luceneツール関係のパッケージ。
com.rondhuit.solr.analysis
CharFilterTokenizerTokenFilterを集めたパッケージ。
com.rondhuit.solr.analysis.morpho
JaSynonymTokenizer形態素解析器に関する実装をしているクラスを提供している。
com.rondhuit.solr.response
カスタムのQueryResponseWriterを集めたパッケージ。
com.rondhuit.solr.search
検索関連のクラスを集めたパッケージ。
com.rondhuit.solr.spell
「もしかして」検索機能関連のクラスを集めたパッケージ。
com.rondhuit.solr.tool
コマンドラインツールなどを集めたパッケージ。
com.rondhuit.solr.update
UpdateRequestProcessor等、インデックス作成関連のクラスを集めたパッケージ。
com.rondhuit.solr.util
その他のユーティリティ関係のパッケージ。
株式会社ロンウイットが提供するSolrサブスクリプションパッケージに含まれるプラグインの説明です。プラグインには、ビジネスユースに最適化された日本語処理や各種機能強化ツールが含まれます。以下に概要を示します(詳細はそれぞれのパッケージ内のクラスの説明を参照してください)。

同類の複数のHTMLページからノイズを同定してノイズブロックを削除します。検索エンジンのインデックスに登録するHTMLファイルからの冗長ブロックの削除、Webをクロールして収集したHTMLファイルのコーパス利用のためのツール作成、ハードディスク容量の削減などに利用できます。アルゴリズムはおよそ、次の通りです。

  1. バッチ処理単位G、HTMLページDiとする。
    \[ D_i \in G \hspace{2em} (1\leq i \leq N) \]
  2. HTMLページDiをブロックBijへ分割
    \[ D_i = \left \{ B_{i1}, B_{i2}, ..., B_{iM_i} \right \} \]
  3. ブロックBijのベクトル化
    \[ B_{ij} = ( b_{ij1}, b_{ij2}, ..., b_{ijL} )^T \]
  4. ブロック同士の次の類似度Sを算出し、最小スコア以上なら類似としてブロックを削除する。
    \[ S(B_{ij}, B_{kl})=\frac{B_{ij} \cdot B_{kl}}{\left \| B_{ij} \right \| \left \| B_{kl} \right \|} \hspace{2em} (i\neq k) \]

日本語に対応した「もしかして」検索機能が使えます(もちろん、英語をはじめとした欧州各国語にも対応しています)。以下は歴代内閣総理大臣の所信表明演説をデータソースにしたとき、日本語のスペルミスやIMEの変換ミスに対してどのような候補を「もしかして」として表示できるかを示しています。
入力ミスの例「もしかして」で出力される例備考
笑止高齢化少子高齢化
いんたーねっtインターネット最後の"o"を入力せず変換が正しくできないまま検索した例
しゃ皆保険社会保険
滑稽銀国会議員
オーストリアオーストラリアデータソースに「オーストリア」がないため
partner湿布パートナーシップ
滅入るマガジン リーマンメールマガジン サラリーマン2単語以上の誤りにも同時に対応
日本語に対応した検索結果文書のクラスタリングをリアルタイムに行うことができます。クラスタリングは、検索結果文書を適当にラベル付けされたテーマ別グループに自動分類する機能です。

クラスタリング機能はファセット機能と並び、大量にヒットした文書から、目的の文書をすばやく見つけるための絞り込みに役立ちます。フィールドファセットと異なり、あらかじめ絞り込み用のフィールドを整備する必要がありません。そのため、R&D部門など創造性が重視される部門ではスコアの低い文書を掘り起こし、いろいろな「気づき」を与えてくれるなどの効用が知られています。

サジェスチョン機能を使うと、ユーザは入力した検索語と関連性の高い他の検索語のヒントを得られるようになります。最初の数文字を入力しただけで検索語のサジェストが得られますので、タイプ量を削減できるようになります。また、ヒット件数が0件のものはサジェストされないので、「ヒット0件」となることがありません。

Solrにはもともと検索語をサジェストするための支援機能がありますが、日本語ではIMEが介在するためにその機能は使えません。本プラグインを使用すれば、日本語環境に対応した検索語のサジェスチョンが可能となります。

サジェストする文字列は自由に選ぶことができます。クエリログをサジェストするのが一般的ですが、商品名や文献のタイトルなどをサジェスト文字列とすることも可能です。さらに、インデックスから専門用語性の高い文字列を抽出してサジェストすることもできます。サジェストデータを工夫することで、パーソナライズドされた(フィルタリングされた)サジェスチョンも可能です。

日本語検索語サジェスチョンのデモ(弊社ホームページの検索窓)がありますのでご覧ください。

パフォーマンスが落ちやすいN-gramフィールドにおける高速検索やパーソナライズ検索など応用的な検索を実現します。
項目説明
N-gramフィールドの
高速検索
クエリ中の単語の長さに応じて適切なサイズ(N)のフィールドを自動的に選択することで、漏れがなく高速な検索を実現します。
パーソナライズ
検索
単純ベイズ分類器を用いてアクセスログを解析し、個人またはグループ分けされたユーザの好みをランキングに反映します。 (注意:パーソナライズのしくみ上、多くのメモリを必要とします。)
  • ECサイトで・・・20代女性と50代男性が「バッグ/鞄」を検索してもそれぞれ別の適切な商品を表示できます。
  • 社内ポータルで・・・自社製品の資料を検索するとき、営業系社員では製品パンフレットが上位に来ますが、技術系社員では設計資料が上位に来る、などのランキング調整が可能です。
日本語を漏れなく検索するためには、フィールドのタイプ別に細かな処理をすることが必須です。以下にサンプルを示します。
概要日本語サンプル
半角・全角正規化アイウ123 <=> アイウ123
新旧漢字変換慶應大学 <=> 慶応大学
外来複合語の中黒表記有無オープンソース・ソフトウェア <=> オープンソースソフトウェア
踊り字時々 <=> 時時、部分々々 <=> 部分部分、いすゞ自動車 <=> いすず自動車
読み変換かたかな <=> カタカナ <=> katakana
日本語=>にほんご
漢数字=>算用数字正規化 四七=>47
四十七=>47
四拾七=>47
四〇七=>407
和暦=>西暦正規化
新聞記事検索、官報や官公庁が発行する記事の検索、歴史的資料の検索などに便利です。和暦は西暦に正規化されるので、元号/年号をまたがった範囲検索や和暦と西暦が混在した検索も可能です。
  • 昭和四七年、昭和四十七年、昭和四拾七年=>1972年
  • 昭和六十四年、平成元年=>1989年
飛鳥時代(大化元年)から現代(平成)までをサポートしています。
正規分解(NFD)
互換分解(NFKD)
正規合成(NFC)
互換合成(NFKC)
か゛ <=> が
漢字1文字の社名や店名の最適化検索居酒屋 和
プラグインのインデックス作成関係のサポートを下表に示します。
適用例説明
ユニークキーの作成他の複数のフィールド値の一部を正規表現で指定して抽出し、組み合わせることでユニークキーの値として使用します。
UTC日付変換自由書式で書かれた日時文字列を、Solrが認識するUTCフォーマット/タイムゾーンの日付文字列に変換します。
HTMLタグ除去指定したフィールドからHTMLタグを取り除きます。
URLデコード指定したフィールドのエンコーディングされたURL文字列をデコードします。
プラグインを使用することで、ハイライトスニペットをより見やすく表示することができます。検索語のハイライト表示はサイト訪問者が目的のページを素早く見つけることを助けます。ハイライトスニペットを美しく表示することは、サイトのユーザビリティと信頼度を高めます。

以下の表は、「プラグインを使用することで、ハイライトスニペットをより見やすく表示することができます。」という文章を、「スニペット」と「表示」という検索語で検索したときのハイライトスニペットの表示の様子をプラグインの適用有無で比較したものです。プラグインを適用することで、スニペット表示される文章の境界を正しく認識し、多色タグを用いて読みやすく表示できています。
プラグイン出力スニペット
適用前とで、ハイライトスニペットをより見やすく表示することがで
適用後使用することで、ハイライトスニペットをより見やすく表示することができます。
プラグインの開発支援関係のサポートを下表に紹介します。
適用例説明
分散検索時タイムアウト試験分散検索のテストにおいて特定のShardサーバで意図的にタイムアウトを発生させることができます。
検索時エラー発生試験検索のテストにおいて意図的にエラーIOExceptionを発生させることができます。分散検索でも使えます。
単体テスト開発支援思いのままのTokenStreamを発生させることができるTokenFilterが提供されます。単体テストを早く書くのに便利です。
ナビゲーション・リンクをスキップ
RONDHUIT Certified Solr Subscription Package

Copyright © 2009-2018 RONDHUIT Co.,Ltd. All Rights Reserved.