Fessでは、検索フィールドを追加することで、より柔軟に検索結果をカスタマイズできます。今回は、Fessのインデックスに新しいフィールドを追加し、検索機能を拡張する手順を紹介します。
フィールドの定義
まず、新しいフィールドを追加するには、app/WEB-INF/classes/fess_indices/fess/doc.json
を編集します。このJSONファイルでは、Fessが管理するインデックスのスキーマを定義しています。properties セクションに新しいフィールドのデータ型や解析方法を設定します。
doc.json
の properties
内で定義できるフィールドの種類として、以下を定義することができます。
-
keyword
: 入力された文字列をそのまま扱う文字列型 -
text
: 入力された文字列をテキスト解析して扱う文字列型 -
long
: 符号付き64ビット整数型 -
float
: 単精度浮動小数点数型 -
date
: 日付型
今回は、category
(製品カテゴリ)、description
(製品説明)、release_date
(リリース日)の3つのフィールドを追加する例で説明します。実際に使用する場合は、typeやformatなどはフィールドの属性にあわせて設定してください。この定義の詳細については、OpenSearchまたはElasticsearchのドキュメントを参照してください。
"properties": {
"category": {
"type": "keyword"
},
"description": {
"type": "text",
"analyzer": "standard_analyzer",
"search_analyzer": "standard_search_analyzer"
},
"release_date": {
"type": "date"
},
・・・
}
doc.json
の編集は、Fessが起動している状態で行っても問題ありません。