This is a cache of https://fess.codelibs.org/de/dev/getting-started.html. It is a snapshot of the page at 2025-11-09T00:29:18.668+0000.
Open-Source-Volltextsuche-Server - Fess Entwicklungsübersicht

Menu

Open-Source-Volltextsuche-Server - Fess Entwicklungsübersicht

Diese Seite bietet einen Überblick über die Fess-Entwicklung und grundlegende Informationen für den Einstieg.

Übersicht

Fess ist ein in Java entwickelter Open-Source-Volltextsuche-Server. Ziel ist es, Enterprise-Suche einfach aufzubauen zu können, und bietet leistungsstarke Suchfunktionen und eine benutzerfreundliche Verwaltungsoberfläche.

Merkmale von Fess

  • Einfaches Setup: Kann sofort gestartet werden, wenn eine Java-Umgebung vorhanden ist

  • Leistungsstarker Crawler: Unterstützt verschiedene Datenquellen wie Websites, Dateisysteme, Datenbanken

  • Japanische Unterstützung: Optimiert für japanische Volltextsuche

  • Erweiterbarkeit: Funktionserweiterung durch Plugins möglich

  • REST-API: Suchfunktionen können von anderen Anwendungen genutzt werden

Technologie-Stack

Fess wird unter Verwendung folgender Technologien entwickelt.

Zielversion

Diese Dokumentation richtet sich an folgende Versionen:

  • Fess: 15.3.0

  • Java: 21 oder höher

  • OpenSearch: 3.3.0

  • Maven: 3.x

Haupttechnologien und Frameworks

Java 21

Fess ist eine Anwendung, die mit Java 21 oder höher läuft. Sie nutzt die neuesten Java-Funktionen und verbessert Performance und Wartbarkeit.

  • Empfohlen: Eclipse Temurin 21 (ehemals AdoptOpenJDK)

  • Mindestversion: Java 21

LastaFlute

LastaFlute ist ein Framework, das in der Webanwendungsschicht von Fess verwendet wird.

Hauptfunktionen:

  • DI (Dependency Injection)-Container

  • Action-basiertes Web-Framework

  • Validierung

  • Nachrichtenverwaltung

  • Konfigurationsverwaltung

Lernressourcen:

DBFlute

DBFlute ist ein O/R-Mapping-Tool für den Datenbankzugriff. Fess verwendet es, um Java-Code automatisch aus dem OpenSearch-Schema zu generieren.

Hauptfunktionen:

  • Typsicherer SQL-Builder

  • Automatische Code-Generierung aus Schema

  • Automatische Generierung von Datenbankdokumentation

Lernressourcen:

OpenSearch

OpenSearch ist eine verteilte Such- und Analyse-Engine, die als Suchmaschine für Fess verwendet wird.

Unterstützte Version: OpenSearch 3.3.0

Erforderliche Plugins:

  • opensearch-analysis-fess: Fess-spezifisches morphologisches Analyse-Plugin

  • opensearch-analysis-extension: Zusätzliche Sprachanalysefunktionen

  • opensearch-minhash: Erkennung ähnlicher Dokumente

  • opensearch-configsync: Synchronisation der Konfiguration

Lernressourcen:

Maven

Maven wird als Build-Tool für Fess verwendet.

Hauptverwendung:

  • Verwaltung von Abhängigkeitsbibliotheken

  • Ausführung von Build-Verarbeitung

  • Ausführung von tests

  • Erstellung von Paketen

Entwicklungstools

Empfohlene Entwicklungsumgebung

Eclipse

Die offizielle Dokumentation erklärt die Entwicklungsmethode mit Eclipse.

Empfohlene Version: Eclipse 2023-09 oder höher

Erforderliche Plugins:

  • Maven Integration for Eclipse (m2e)

  • Eclipse Java Development Tools

IntelliJ IDEA

Entwicklung ist auch mit IntelliJ IDEA möglich.

Empfohlene Edition: Community Edition oder Ultimate Edition

Erforderliche Funktionen:

  • Maven-Unterstützung (standardmäßig enthalten)

  • Java-Unterstützung

VS Code

VS Code kann auch für leichte Entwicklung verwendet werden.

Erforderliche Erweiterungen:

  • Java Extension Pack

  • Maven for Java

Versionskontrolle

  • Git: Quellcodeverwaltung

  • GitHub: Repository-Hosting, Issue-Verwaltung, Pull Requests

Erforderliches Wissen

Grundkenntnisse

Für die Fess-Entwicklung sind folgende Kenntnisse erforderlich:

Erforderlich

  • Java-Programmierung: Klassen, Schnittstellen, Generics, Lambda-Ausdrücke usw.

  • Objektorientierung: Vererbung, Polymorphismus, Kapselung

  • Maven: Grundlegende Befehle und Verständnis von pom.xml

  • Git: clone, commit, push, pull, branch, merge usw.

Empfohlen

  • LastaFlute: Konzepte von Action, Form, Service

  • DBFlute: Verwendung von Behavior, ConditionBean

  • OpenSearch/Elasticsearch: Grundlagen von Index, Mapping, Query

  • Webentwicklung: HTML, CSS, JavaScript (besonders bei Frontend-Entwicklung)

  • Linux-Befehle: Entwicklung/Debugging in Server-Umgebung

Lernressourcen

Für den ersten Einstieg in die Fess-Entwicklung sind folgende Ressourcen hilfreich:

Offizielle Dokumentation

Community

Quellcode

Das Lesen des tatsächlichen Codes ist die effektivste Lernmethode:

  • Beginnen Sie zunächst mit dem Lesen kleiner Funktionen

  • Verfolgen Sie das Verhalten des Codes mit dem Debugger

  • Konsultieren Sie vorhandenen testcode

Grundlegender Entwicklungsablauf

Die Fess-Entwicklung folgt im Allgemeinen diesem Ablauf:

  1. Überprüfung/Erstellung von Issues

    Überprüfen Sie Issues auf GitHub und entscheiden Sie, woran Sie arbeiten möchten. Erstellen Sie bei neuen Funktionen oder Fehlerbehebungen ein Issue.

  2. Erstellung eines Branches

    Erstellen Sie einen Arbeits-Branch:

    git checkout -b feature/my-new-feature
    
  3. Codierung

    Implementieren Sie Funktionen oder beheben Sie Fehler.

  4. tests

    Erstellen und führen Sie Unit-tests aus und überprüfen Sie, dass Änderungen korrekt funktionieren.

  5. Commit

    Committen Sie Änderungen:

    git add .
    git commit -m "Add new feature"
    
  6. Pull Request

    Pushen Sie zu GitHub und erstellen Sie einen Pull Request:

    git push origin feature/my-new-feature
    

Weitere Details finden Sie unter Entwicklungsworkflow.

Überblick über die Projektstruktur

Der Quellcode von Fess hat folgende Struktur:

fess/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── org/codelibs/fess/
│   │   │       ├── app/           # Webanwendungsschicht
│   │   │       │   ├── web/       # Suchseite
│   │   │       │   └── service/   # Service-Schicht
│   │   │       ├── crawler/       # Crawler-Funktion
│   │   │       ├── es/            # OpenSearch-bezogen
│   │   │       ├── helper/        # Hilfsklassen
│   │   │       ├── job/           # Job-Verarbeitung
│   │   │       ├── util/          # Utilities
│   │   │       └── FessBoot.java  # Startklasse
│   │   ├── resources/
│   │   │   ├── fess_config.properties
│   │   │   ├── fess_config.xml
│   │   │   └── ...
│   │   └── webapp/
│   │       └── WEB-INF/
│   │           └── view/          # JSP-Dateien
│   └── test/
│       └── java/                  # testcode
├── pom.xml                        # Maven-Konfigurationsdatei
└── README.md

Hauptpakete

app

Code der Webanwendungsschicht. Enthält Actions, Forms, Services der Verwaltungs- und Suchseite.

crawler

Code der Datensammlungsfunktion. Web-Crawler, File-Crawler, Datastore-Crawler usw.

es

Code zur Integration mit OpenSearch. Index-Operationen, Aufbau von Suchabfragen usw.

helper

In der gesamten Anwendung verwendete Hilfsklassen.

job

Code für geplant ausgeführte Jobs. Crawl-Job, Index-Optimierungs-Job usw.

Weitere Details finden Sie unter Architektur und Codestruktur.

Schnellstart der Entwicklungsumgebung

Erklärt, wie man mit minimalen Schritten eine Entwicklungsumgebung einrichtet und Fess ausführt.

Voraussetzungen

  • Java 21 oder höher ist installiert

  • Git ist installiert

  • Maven 3.x ist installiert

Schritte

  1. Repository klonen

    git clone https://github.com/codelibs/fess.git
    cd fess
    
  2. OpenSearch-Plugins herunterladen

    mvn antrun:run
    
  3. Ausführen

    Von Maven ausführen:

    mvn compile exec:java
    

    Oder führen Sie die Klasse org.codelibs.fess.FessBoot von der IDE (Eclipse, IntelliJ IDEA usw.) aus.

  4. Zugriff

    Greifen Sie im Browser auf Folgendes zu:

Detaillierte Setup-Schritte finden Sie unter Einrichten der Entwicklungsumgebung.

Entwicklungstipps

Debug-Ausführung

Bei Debug-Ausführung in der IDE führen Sie die Klasse FessBoot aus. Durch Setzen von Breakpoints können Sie das Verhalten des Codes im Detail verfolgen.

Hot Deploy

LastaFlute kann einige Änderungen ohne Neustart widerspiegeln. Allerdings erfordern Änderungen der Klassenstruktur usw. einen Neustart.

Überprüfung von Logs

Logs werden im Verzeichnis target/fess/logs/ ausgegeben. Überprüfen Sie bei Problemen die Logdateien.

Betrieb von OpenSearch

Das eingebettete OpenSearch wird unter target/fess/es/ platziert. Sie können auch direkt die OpenSearch-API zum Debuggen aufrufen:

# Indizes überprüfen
curl -X GET http://localhost:9201/_cat/indices?v

# Dokumente durchsuchen
curl -X GET http://localhost:9201/fess.search/_search?pretty

Community und Support

Fragen und Beratung

Bei Fragen oder Beratungsbedarf während der Entwicklung nutzen Sie Folgendes:

Beitragsmethode

Informationen zum Beitragen zu Fess finden Sie unter Leitfaden für Beiträge.

Nächste Schritte

Wenn Sie bereit sind, die Entwicklungsumgebung einzurichten, fahren Sie mit Einrichten der Entwicklungsumgebung fort.

Weitere Informationen finden Sie auch in folgender Dokumentation:

Referenzmaterialien

Offizielle Ressourcen

Technische Dokumentation

Community