🛠 Mac/Linux Samba検索改善 作業完了レポート
1. Elasticsearch 日本語解析プラグインの導入
Elasticsearchに日本語を理解させるための「Kuromoji」プラグインをインストールしました。
Bash
# プラグインのインストール
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji
# 設定を反映させるためにElasticsearchを再起動
sudo systemctl restart elasticsearch
# インストール済みリストに表示されるか確認
/usr/share/elasticsearch/bin/elasticsearch-plugin list
2. 検索エンジン設計図(mapping.json)の編集
/etc/fs2es-indexer/mapping.json を編集し、日本語解析(Analyzer)を適用しました。
Bash
# 設定ファイルの編集
sudo nano /etc/fs2es-indexer/mapping.json
適用した設定内容(JSON):
JSON
{
"settings": {
"index": {
"analysis": {
"analyzer": {
"default": {
"type": "custom",
"tokenizer": "kuromoji_tokenizer",
"filter": [
"kuromoji_baseform",
"kuromoji_part_of_speech",
"cjk_width",
"lowercase",
"kuromoji_stemmer"
]
}
}
}
}
},
"mappings": {
"properties": {
"filename": { "type": "text", "analyzer": "default" },
"content": { "type": "text", "analyzer": "default" },
"modified": { "type": "date" },
"size": { "type": "long" }
}
}
}
3. 検索データの完全再構築(リビルド)
古いルールで作成されたインデックスを削除し、新しいルールで全ファイルをスキャンし直しました。
Bash
# 既存の古いインデックスを削除
fs2es-indexer clear
# 全ファイルを再スキャンしてインデックスを作成(時間がかかる場合があります)
fs2es-indexer index
4. Mac側での検索リフレッシュ
Macが古い情報をキャッシュしている場合に備え、Samba共有のインデックスを再認識させるコマンドを実行しました。
Bash
# Macのターミナルで実行(Volumes名は実際の共有名に合わせてください)
mdutil -E /Volumes/SharedFolderName
💡 今後のメンテナンス・メモ
- 新しいファイルが検索に反映されないとき:
fs2es-indexerのサービスが停止していないか、systemctl status fs2es-indexer等で確認してください。 - 特定の単語がどうしても出ないとき:ElasticsearchのAPIを使用して、その単語がどう分解されているかテストできます。Bash
curl -X POST "localhost:9200/_analyze" -H 'Content-Type: application/json' -d' {"analyzer": "default", "text": "検索したい単語"} '
この手順書をテキストファイルなどで保存しておくと、将来サーバーを移行したり再構築したりする際に非常に役立ちます。
この他、設定内容の調整や別のトラブルについて、さらにお手伝いできることはありますか?

コメント