Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
Search
Shinsuke Sugaya
September 03, 2014
Technology
4.4k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
FessはSolrベースの全文検索システムです。
Solrベースの全文検索システムを構築する上で遭遇する問題などを含めて、Fessについてご紹介します。
Shinsuke Sugaya
September 03, 2014
More Decks by Shinsuke Sugaya
See All by Shinsuke Sugaya
FessのAI検索モード:検索システムとLLMへの取り組み
marevol
0
710
社内ドキュメント検索システム構築のノウハウ
marevol
0
450
LastaFluteでKotlinをはじめよう
marevol
0
490
日本最大級の求人検索エンジン「スタンバイ」を支える技術
marevol
2
1k
Fess/Elasticsearchを使った業務で使える?全文検索への道
marevol
0
1.3k
PredictionIO構築入門
marevol
0
4.3k
PredictionIOのPython対応計画
marevol
0
4.2k
全文検索システムFessを用いた 検索システム構築入門
marevol
0
3.1k
ESFluteによるElasticsearchでのO/Rマッパーを用いた開発
marevol
0
320
Other Decks in Technology
See All in Technology
SRE Lounge Hiroshimaへの招待
grimoh
0
350
認証認可だけじゃない! ID管理の構成要素と ライフサイクルを意識しよう
ritou
1
510
グローバルチームと挑むプロダクト開発
sansantech
PRO
1
160
インフラ寄りSREでも 開発に踏み出せる〜境界を越えてユーザー体験に向き合いたい〜
sansantech
PRO
0
1.7k
はじめてのWDM
miyukichi_ospf
1
120
SRE依存からの脱却 運用を開 発チームへ移す、 フルサイ クル開 発体制の実践
joooee0000
0
1.1k
AIと共生する開発者プラットフォーム:バクラクのモノレポ×マイクロサービス基盤
sakajunquality
1
1.5k
Mastraエージェント、どのクラウドにデプロイする?
minorun365
PRO
2
170
次世代ランサムウェア対策の考察 / 20260704 Mitsutoshi Matsuo
shift_evolve
PRO
5
1.7k
“ID沼入口” - 基本とセキュリティから始める、考え続けるためのID管理技術勉強会 告知&イントロ
ritou
0
430
AIに障害切り分けを全部やってもらった。 。 。 。
estie
0
370
テスト設計の本質を改めて考えてみる~生成AIを活用する時代だからこそ、作ったテストの説明性を高めよう~
yamasaki696
1
350
Featured
See All Featured
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.1k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
260
Writing Fast Ruby
sferik
630
63k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
210
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Un-Boring Meetings
codingconduct
0
330
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
960
Building AI with AI
inesmontani
PRO
1
1.1k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
400
Transcript
全文検索サーバ Fess 全文検索システム構築時の悩みどころ 第14回Solr勉強会
名前: 菅谷信介 所属: N2SM, Inc. (http://www.n2sm.net/) オープンソース活動:
Apache Portals コミッタ Seasarプロジェクトコミッタ CodeLibsプロジェクト運営 (https://github.com/codelibs) などなど・・・ Github: https://github.com/codelibs Blog: http://www.chazine.com/ Twitter: https://twitter.com/shinsuke_sugaya/ 自己紹介
アジェンダ 検索ソフトウェアについて Fessとは 全文検索システム構築の悩みどころ Fessの今後
FessはSolrベースの 全文検索サーバです。 検索関連のソフトウェアは いろいろとあるけど まずは全体的なところから…
検索システム Fess、商用検索システム(GSAとか) 検索サーバ+クローラ Hyper Estraier、Namazu、Nutchなど 検索サーバ Solr、Elasticsearch、groongaなど 検索ライブラリ Luceneなど 検索関連のソフトウェア
検索関連の知識が必要(ガッツリ作りこみが必要) 検索関連の知識なくても利用可能(すぐに使える) ざっくりと個人的な観点で分類してみました
つまり、 FessはSolrと競合するものでは ありません (ターゲットユーザーが異なります)
Fessとは
簡単に構築可能なオープンソースの全文検索サーバ Javaがあれば、すぐに利用できます! Fess 9.2ではSolr 4.8.1を採用(同梱してます) Web、共有フォルダ、DBなどのクロール可能
MS Office、PDF、圧縮ファイルもサポート 独自の実装&Tikaで読めるだけ読む 検索画面はPCからスマホまで最適化された画面で検索 ブラウザによる管理画面 ActiveDirectory等の認証情報で検索結果の出し分け可能 登録したカテゴリごとに検索可能 ファセット検索やジオ・サーチにも対応 検索ログやクリックログで集計 サジェストや関連表示などにも対応 スクリーンショット表示機能 Fessとは
すぐに利用できるようにオールインワンで提供 アーキテクチャ Solr インデックス管理 Fess クローラ 設定情報管理 検索画面 Tomcat (アプリケーションサーバなど)
Fessの検索結果画面 デモ:http://search.n2sm.co.jp/
Fessの管理画面
N2SMではFess(Solrを含む)に関する商用サポートを提供 導入支援からカスタマイズ開発まで いろいろな質問等の対応 商用製品としては、N2 Searchとして提供
基本はFessと同じ(ブランチ管理されている) 設定を最適化したパッケージを利用 ApacheやMySQLなど含めて提供 管理ユーザなどを管理するコンソール ASPとしても提供 その他 いろいろとお問い合わせをいただいています 入札要件にFessが指定されていたりも… 商用サポート
全文検索システム構築時の 悩みどころ Solrベースの検索システムを作る際のご参考になれば…
Fessのコミュニティや Fess案件を通して 遭遇する事象ベースに 考えてみる…
ケース1 ファイルシステムをクロールして 検索結果をクリックしても 表示されないのですけど…
概要 http://~ の検索結果ページで、検索結果の file://~ の リンクが機能しない Fessを作った当初はブラウザで機能していたが、時間と ともに
file://~ の扱いが厳しくなった 汎用的な解決策がない Fessでの対応 デスクトップ検索 ローカル環境でしか利用できない ファイルランチャー Java Web Startを利用→いろいろと面倒… コンテンツプロキシ (デフォルト) Fessがプロキシとして動作してコンテンツを返却 場合によりロール検索と組み合わせが必要 file://~問題
ケース2 社内の数百万ドキュメントを 夜間バッチで更新したいです でも、1台くらいで…
概要 社内ドキュメント検索の場合によくある話 数台のサーバ環境かつ夜間バッチ等で、数百万ドキュメン トを超えるドキュメントを更新する要件 差分クロールで解決できる範囲ではない ファイルサイズやネットワークに依存するが、1台でク
ロールすると、1時間あたり数万ドキュメントくらい 実際には全件更新する必要がない Fessでの対応 ファイルサーバの更新ファイル一覧生成機能と連携 データストアクロールで対応 CSVなどの更新ファイル一覧情報を元にクロール 更新ファイルだけを効率よくインデックス化 クロール時間問題
ケース3 Webは月曜、 共有フォルダは水曜、 DBは金曜に クロールしたいのだけど…
概要 複雑なスケジュールでクロールやインデックスのコミット などを組みたい 昔のFessでは基本は1つのスケジュールを組んで、クロー ルからインデックスまで行う方式でした Fessでの対応 ジョブ管理機能を実装しました
ログのパージなどもジョブとして処理 Groovyで任意のジョブを組むことができます 他のスクリプト言語も対応可能ですが、現時点では Groovyだけをサポート クロールジョブ問題
ケース4 クロールが止まるのですけど…
概要 クロールのスレッドが止まる事象が発生する Javaのバグ Zip爆弾(Excelも?) Fessでの対応 昔のFessではTomcat上のスレッドでクロールを実行してい
たがスレッドを停止できないため、現在は別のプロセスと してクロールを実行 Zip爆弾等は利用するライブラリを更新したり、独自の拡張 したりして対応 クロール停止問題
ケース5 PDFをクロールしたのですが 文字化けしているようです…
概要 FessではPDFBoxでPDFからテキスト抽出を行っている PDF仕様の古いバージョンなどで文字化けする Fessでの対応 テキスト抽出処理はS2Robotで管理している 設定ファイルでMIMEタイプごとに処理をカスタマイズ可能
対応はケースバイケースですが、コマンド呼び出しや IFilterなど、要件に応じた対応が必要 MS Office系のファイルのテキスト抽出はPOIを利用してい るが、抽出できないものがあれば同様の対応 PDF文字化け問題
ケース6 クリック数やお気に入り数で リアルタイムに ソートしたいです…
概要 そのときのクリック数やお気に入り数でソートしたい クリック数やお気に入り数はSolr内でドキュメントに含ま れている ドキュメントを更新して、コミットしないと情報が 反映されない
クリックされるたびにコミットするのは微妙… Fessでの対応 クリック数やお気に入り数の数値はDocValueのフィールド として格納する Solrで更新するインターフェースがなかったため、Fessで は数値のDocValueを更新するSolrプラグインを提供 リアルタイム更新問題
ケース7 辞書ファイルを更新するのに 再起動が必要なの?
概要 形態素解析やシノニムなどの辞書はインデックスで初回に 読み込まれる 辞書の反映に再起動&再インデクシングが必要 政治的な要件な気がする Fessでの対応
辞書を動的に再読み込みをする拡張 Tokenizerのインスタンスを動的に差し替える 再インデクシングは必要 積極的に採用するかは置いておいて… 辞書反映問題
まとめ Fessの今後
Fessの今後 Solrの更新と共に、今後も更新していきます! 検索ログを利用したサジェストも導入 現在はコンテンツベース キーマッチ機能
独自のQuery Elevation Go for Global! 検索ログの表示や分析方法の改善
Q&A