Fessでは、検索フィールドを追加することで、より柔軟に検索結果をカスタマイズできます。今回は、Fessのインデックスに新しいフィールドを追加し、検索機能を拡張する手順を紹介します。

フィールドの定義

まず、新しいフィールドを追加するには、app/WEB-INF/classes/fess_indices/fess/doc.json を編集します。このJSONファイルでは、Fessが管理するインデックスのスキーマを定義しています。properties セクションに新しいフィールドのデータ型や解析方法を設定します。

doc.jsonproperties 内で定義できるフィールドの種類として、以下を定義することができます。

  • 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が起動している状態で行っても問題ありません。

インデックスにフィールドを反映

この記事は
Members+会員の方のみ御覧いただけます

ログイン/無料会員登録

会員サービスの詳細はこちら