オープンソースソフトウェア検索サーバ solr入門
DESCRIPTION
OSSAJミニセミナー発表資料TRANSCRIPT
株式会社シーマーク 大谷 純
u 所属:㈱シーマーク u 氏名:大谷 純 u twitter:@johtani u ブログ:
http://johtani.jugem.jp
u 「Apache Solr入門」 の著者の一人
u lucene-gosenのcommitter
u 全文検索とは
u Solrの各種機能
u Luceneにまつわるエコシステム
u 全文検索とは
u Solrの各種機能
u Luceneにまつわるエコシステム
全文検索(ぜんぶんけんさく、Full text search)とは、コンピュータにおいて、複数の文書(ファイル)から特定の文字列を検索すること。「ファイル名検索」や「単一ファイル内の文字列検索」と異なり、「複数文書にまたがって、文書に含まれる全文を対象とした検索」という意味で使用される。
(Wikipediaより)
検索エンジン
インデックス
検索クエリ
検索結果
u Solr:Lucene(全文検索ライブラリ)を活用した検索エンジンサーバ
u ApacheプロジェクトのOSS
u Javaで実装
u 検索補助のための機能がいっぱい
u 転置インデックス方式による全文検索
Solr
インデックス
検索クエリ(HTTPリクエスト)
検索結果(HTTPレスポンス)
カツオはサザエの弟
サザエはワカメの姉
1
2
文章を単語に分割し、 単語:ドキュメントIDと整理
対象とする文章(ドキュメント)に IDを付与
単語をキー、ドキュメントIDの 配列を値とする表を作成 = 転置インデックス
カツオ 1 は 1 サザエ 1 の 1 弟 1
サザエ 2 は 2 ワカメ 2 の 2 姉 2
カツオ 1
は
1
の 1
弟 1
サザエ 2
ワカメ 2 2
姉 2
1 2
転置インデックス
検索クエリ
カツオ 1
は
1
の 1
弟 1
サザエ 2
ワカメ 2
2
姉 2
1 2 カツオ
サザエ
AND
検索結果
1
u フィールド:1転置インデックスの定義
u スキーマ:フィールドを定義する設定
Solrは大きな1つのテーブル(スキーマ)に複数のカラム(フィールド)
u 全文検索とは
u Solrの各種機能
u Luceneにまつわるエコシステム
u AND、OR、NOTによる検索
u 範囲検索
u スコアによるソート
u 特定フィールドによるソート
u 検索結果の分類の表示 絞り込み検索の候補として表示
u 複数のファセットを1回の検索で 取得可能
u 項目ごとのドキュメント数も取得
u 検索キーワードがどの部分にヒットしたか
u 検索結果の要約表示
u キーワードの強調表示
u マスタ/スレーブ構成
u 検索の負荷を分散
master
slave
slave
登録・更新
レプリケート
検索
検索
u 複数のインデックスを1つのインデックスとして検索
u 大量データに対してスケールアウトで対応可能
Solr
index 検索
検索 Solr
index
Solr
u スペルチェック(SpellCheck)
u レコメンド(MoreLikeThis)
u スコアブースト(QueryElevation)
u マルチコア
u 類義語辞書(Synonym)
u 各種言語向け機能 言語判定、各言語向けのTokenizer
u 全文検索とは
u Solrの各種機能
u Luceneにまつわるエコシステム
u Luceneは様々なOSSに利用されている u Solr(検索エンジンサーバ)、Nutch(クローラ+検索エンジン)
u Luceneを発端にHadoopが作られた u Nutchの仕組みを大規模対応するために実装されたのがHadoop