LoginSignup
3
2

More than 5 years have passed since last update.

FESSメモ

Last updated at Posted at 2017-04-12

Fess 10ではドキュメントの言語判定を行い、そのドキュメントに
最適な各言語用のAnalyzerを適用するようにしています。
形態素解析されたものが結果の上位に来ないような場合は
ドキュメントの言語判定で日本語として判定されていない可能性があります。

なるほど。。Analyzerの設定もしくはソースを見れば、どんなドキュメントをどう解析するかがわかりそう。めもめも。

投稿に対してコメントをいただきましたので、修正しました。ありがとうございます。>shinsuke_sugayaさん

コメントいただいた内容が正に知りたい内容でしたので、こちらにも載せておきます。

どのAnalyzerを使うかの言語判定ロジックはelasticsearchの機能ではなく
https://github.com/codelibs/elasticsearch-langfield
のプラグインで拡張された機能になります。
ただ元にしているlangdetectの言語判定機能が間違うことがあるので、HTMLについては、htmlタグのlang属性があればそれを使うようにしています。
あとは、Analyzerまわりは検索の肝になる部分ですので、
https://github.com/codelibs/elasticsearch-analysis-fess
でAnalyzer自体を自動検出したりとか、elasticsearchにいろいろとプラグインで機能追加しています。

Analyzerの自動検出とか、心をくすぐる文言だ。面白そう。今日は時間がないから、土日にソースを眺めてみよう。と言いつつ、休日はやらない気がする。。#電車の移動中に見るかな。^^

  • Analyzerの設定 http://fess.codelibs.org/ja/11.0/config/analyzer.html >検索のためのインデックスを作成する際、索引として登録するために文書を切り分ける必要があります。 Fess では、文書を単語に分解する機能を Analyzer として登録しています。 Analyzer は CharFilter、Tokenizer および TokenFilter により構成されます。 ~中略~ Analyzer の設定は Fess の起動時に fess インデックスが存在しない場合に app/WEB-INF/classes/fess_indices/fess.json で fess インデックスを作成して登録されます。 Analyzer の構成方法は elasticsearch の Analyzer のドキュメントを参照してください。

ふむふむ。結局elasticsearchを調査か。。

configで設定する
アナライザを指定せずにインデクスを作成した場合にこの設定がデフォルトとなります。
今回はバイグラムでアナライザを設定します。
設定
/etc/elasticsearch/elasticsearch.ymlを編集します。

デフォルトは/var/lib/elasticsearch。この下にnodes/0/_state/global-0.stという感じでインデックスが格納される。

以下でElasticsearchにあるindex一覧を取得できる。
$ curl -XGET [IPアドレス or ホスト名]:[ポート番号]/_aliases?pretty

3
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2