- Fess10.0.3のKuromoji辞書 https://ja.osdn.net/projects/fess/forums/18580/37656/
Fess 10ではドキュメントの言語判定を行い、そのドキュメントに
最適な各言語用のAnalyzerを適用するようにしています。
形態素解析されたものが結果の上位に来ないような場合は
ドキュメントの言語判定で日本語として判定されていない可能性があります。
なるほど。。Analyzerの設定もしくはソースを見れば、どんなドキュメントをどう解析するかがわかりそう。めもめも。
- どういったドキュメントの時にどのAnalyzerが割り当たるかはこの設定ファイルかな?
https://github.com/codelibs/fess/blob/master/src/main/resources/fess_indices/fess/doc.jsonhttps://github.com/codelibs/fess/blob/master/src/main/resources/fess_indices/fess.json
投稿に対してコメントをいただきましたので、修正しました。ありがとうございます。>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を調査か。。
- ElasticSearchのアナライザの設定 http://christina04.hatenablog.com/entry/2015/02/02/225734
configで設定する
アナライザを指定せずにインデクスを作成した場合にこの設定がデフォルトとなります。
今回はバイグラムでアナライザを設定します。
設定
/etc/elasticsearch/elasticsearch.ymlを編集します。
- Elasticsearchのインデックスの格納場所 http://qiita.com/uzresk/items/e0b10c14875b79c450f2
デフォルトは/var/lib/elasticsearch。この下にnodes/0/_state/global-0.stという感じでインデックスが格納される。
- ElasticsearchからデータをCSV形式でワンライナーで取り出す http://qiita.com/gingi99/items/f7dc57193fbf978eb63b
以下でElasticsearchにあるindex一覧を取得できる。
$ curl -XGET [IPアドレス or ホスト名]:[ポート番号]/_aliases?pretty