Más contenido relacionado
Más de Shinsuke Sugaya (12)
全文検索システムFessを用いた検索システム構築入門
- 7. 歴史
2009/09 Fess 1.0リリース
➔ ウェブやファイルシステムを対象に検索(Solr 1.3を利用)
Fess 2.0〜8.0
➔ ロール検索に対応 (認証状態による検索)
➔ 差分クロール、データベースクロール対応
➔ NTLM認証対応
➔ ジオ・サーチ対応
➔ Responsive Web Design化
2014/02 Fess 9.0リリース
➔ Solr 4.10.4を利用
2016/02 Fess 10.0リリース
➔ Java 8対応
➔ Elasticsearchに変更 (大規模対応)
➔ グローバル化
- 9. 起動方法
■ ZIP版
$ ./bin/fess
■ RPM/DEB版
$ sudo service elasticsearch start
$ sudo service fess start
or
$ sudo systemctl start elasticsearch.service
$ sudo systemctl start fess.service
■ Windowsのサービスとしても登録可能
■ インストールガイドを参照
➔http://fess.codelibs.org/ja/10.3/install/index.html
- 19. DataStore
public interface DataStore {
// クロール設定が渡されるのでそれを元にcallbackにドキュメントを渡す
void store(DataConfig config, IndexUpdateCallback callback,
Map<String, String> initParamMap);
// 処理を停止するときに呼ばれる
void stop();
}
- 24. 検索クエリー変換
■ 検索語をQuery DSLに変換
➔ElasticsearchのQuery Stringを利用していない
➔Fessが検索語を解析してQueryDSLを生成
➔LuceneのSyntax Parserをベースにしている
➔Fessではフィールド指定を制御している
➔タイトルと本文をor検索(ブースト付きで)
Fess AND 使い方
{
“query”: {
“bool”: {
“must”: [
{“match_phase”: {“title”:”Fess”}},
…
}
},
“offset”: 0
“size”: 20
}
- 31. SsoAuthenticator
public interface SsoAuthenticator {
// ログイン情報を返す
LoginCredential getLoginCredential();
}
public interface LoginCredential {
// 保存する情報は認証方法に依存
}
// 例
public class UserPasswordCredential implements LoginCredential {
protected final String user;
protected final String password;
...
}
- 35. WebApiManager
public interface WebApiManager {
// リクエストが処理すべきなものか判定
boolean matches(HttpServletRequest request);
// リクエストを処理(サーブレットフィルタ上で処理されている)
void process(HttpServletRequest request,
HttpServletResponse response,
FilterChain chain) throws IOException, ServletException;
}
- 38. ディレクトリ構成
├── app
│ ├── META-INF
│ ├── WEB-INF
│ ├── css
│ ├── images
│ └── js
├── bin
│ ├── fess
│ └── fess.in.sh
├── es
│ ├── data
│ └── plugins
├── lib
│ └── classes
├── logs
└── temp
Fessのアプリケーション
warを展開したもの
実行スクリプト
Elasticsearch
・data: インデックスの格納場所
・plugins: プラグイン
ログファイル
一時ファイルファイル
Tomcat Boot関連ファイル
標準でElasticsearchを同梱している