Die nachfolgend beschriebenen Einstellungen werden in fess_config.properties angegeben. Nach Änderungen ist ein Neustart von Fess erforderlich.
Fuzzy-Suche
Für 4 oder mehr Zeichen wird Fuzzy-Suche angewendet, die auch bei einem Zeichenunterschied Treffer erzielt. Um diese Einstellung zu deaktivieren, geben Sie -1 an.
Standardwert ist 4. Detaillierte Einstellungen zur Fuzzy-Suche finden Sie im nachfolgenden Abschnitt „Einstellungen für Relevanz (Boost)“.
Such-Timeout-Wert
Sie können den Timeout-Wert für Suchen in Millisekunden angeben. Standardwert ist 10 Sekunden (10000 Millisekunden).
Maximale Zeichenanzahl bei der Suche
Sie können die maximale Zeichenanzahl für Suchanfragen angeben. Suchanfragen, die diese Länge überschreiten, werden nicht akzeptiert. Standardwert ist 1000 Zeichen.
Protokollierung von Such-Timeouts
Legt fest, ob Suchen protokolliert werden, deren Ergebnisse unvollständig sind, weil das Such-Timeout abgelaufen ist oder ein Shard fehlgeschlagen ist. Ist die Einstellung aktiviert, wird in folgenden Fällen eine Protokollzeile der Stufe WARN ausgegeben:
[SEARCH TIMEOUT]: Das Such-Timeout (query.timeout) ist abgelaufen und die Suchmaschine hat das Sammeln von Treffern abgebrochen.[SEARCH SHARD FAILURE]: Bei einem oder mehreren Shards ist ein Fehler aufgetreten.
Tritt beides auf, werden beide Zeilen ausgegeben. Jede Zeile enthält exec_time (Millisekunden), die Anfrage und die vollständige Antwort. Bei einem Shard-Fehler steht die Ursache in _shards.failures dieser Antwort; die Suchmaschine selbst protokolliert sie nur auf der Stufe DEBUG. Standardwert ist true (aktiviert).
Anzeige der Trefferzahl
Gibt die Obergrenze für die exakt ermittelte Trefferzahl an. Bei der Standardeinstellung wird bei über 10.000 Treffern folgende Anzeige ausgegeben:
Suchergebnisse für xxxxx ca. 10.000 oder mehr Treffer 1 - 10 von (4,94 Sekunden)
Wenn eine genaue Trefferzahl über 10.000 angezeigt werden soll, geben Sie einen größeren Wert an.
Bemerkung
Größere Werte können die Suchleistung beeinträchtigen. Wählen Sie einen für Ihren Anwendungsfall geeigneten Wert.
Maximaler Offset bei Suchergebnissen
Gibt die Obergrenze für den Offset (Startposition der Suche) bei Suchergebnissen an. Wird ein Offset angegeben, der diesen Wert überschreitet, führt die Suche zu einem Fehler. Dieser Wert dient als Obergrenze für das Blättern zu tiefen Seiten per Paging. Standardwert ist 100000.
Schwellenwert für erneute Suche per ODER-Verknüpfung
Liegt die Trefferzahl einer normalen Suche unter dem hier angegebenen Wert, wird die Suche mit dem ODER-Operator wiederholt. Dadurch können Ergebnisse ergänzt werden, wenn die UND-Suche nur wenige Treffer liefert. Standardwert ist -1; diese Funktion ist deaktiviert.
Feldname für die Standortsuche
Gibt den Feldnamen an, der bei der Standortsuche verwendet wird. Mehrere Felder werden durch Komma getrennt angegeben. Standardwert ist location.
Informationen zur Verwendung der Standortsuche finden Sie unter Standortsuche.
Sprachangabe über Request-Parameter
Gibt den Parameternamen für die Sprachangabe über Request-Parameter an. Wird beispielsweise browser_lang=en als Request-Parameter in der URL übergeben, wechselt die Anzeigesprache des Bildschirms zu Englisch.
Standardsprache für die Suche
Gibt die Standardsprache für Suchanfragen als kommagetrennte Liste an. Ist ein Wert gesetzt, hat dieser Vorrang vor dem Request-Parameter und der Browsersprache. Standardwert ist leer (nicht angegeben); in diesem Fall wird der Request-Parameter oder die Browsersprache verwendet.
Zuordnung von Sprachcodes
Gibt die Normalisierungszuordnung für Sprachcodes an, die bei der Suche verwendet werden. Sprachcodes vom Browser oder aus dem Request werden in die intern von Fess verwendeten Sprachcodes umgewandelt. In der Regel muss diese Einstellung nicht geändert werden. Im Standardwert sind die Zuordnungen der wichtigsten Sprachen definiert.
Angabe der Präfixsuche
Wird am Ende eines Suchbegriffs * angegeben (Beispiel: Suche*), wird dieser Begriff als Präfixabfrage gesucht. Standardwert ist true (aktiviert). Bei Angabe von false wird ein Begriff mit abschließendem * unverändert gesucht.
Hervorhebungszeichen
Sätze werden mit den hier angegebenen Zeichenfolgen getrennt, um eine natürliche Hervorhebungsanzeige zu realisieren. Die angegebenen Zeichenfolgen werden als Unicode-Zeichen mit u als Anfangstrennzeichen angegeben.
Standardwerte sind wie folgt konfiguriert (dekodiert):
! , . ? ։ ؟ ۔ ܀ ܁ ܂ । ၊ ။ ። ፧ ፨ ᙮ ᠃ ᠉ ‼ ‽ ⁇ ⁈ ⁉ 。 ﹒ ﹗ ! . ? 。
Hervorhebungsfragmente
Gibt die Zeichenanzahl und die Fragmentanzahl für Hervorhebungsfragmente an, die von OpenSearch abgerufen werden.
Hervorhebungs-Generierungsmethode
Gibt die Hervorhebungs-Generierungsmethode von OpenSearch an.
An den OpenSearch-Highlighter übergebene Werte
Gibt die an den OpenSearch-Highlighter übergebenen Werte an.
Erweiterte Hervorhebungseinstellungen
Einstellungen zur Steuerung des detaillierten Hervorhebungsverhaltens.
Zu Response hinzuzufügende Feldnamen
Gibt Feldnamen an, die zur Response bei normaler Suche oder API-Suche hinzugefügt werden. Jeweils entsprechend für normale Suche, API-(JSON/GSA-)Suche, Scroll-Suche und Cache-Anzeige.
Bemerkung
query.additional.api.response.fields fügt Felder nur zur Liste der Felder hinzu, die in die Response der Such-API (/api/v2/search) geschrieben werden dürfen. Allein damit erscheint ein Feld nicht in der Response. Die Such-API ruft dieselben Felder aus der Suchmaschine ab wie eine normale Suche, einschließlich derer in query.additional.response.fields, und gibt davon nur die Felder zurück, die in dieser Liste stehen. Um ein eigenes Feld in die Response der Such-API aufzunehmen, geben Sie denselben Feldnamen in beiden Einstellungen an.
Weitere Details zu den Response-Feldern der Scroll-Suche finden Sie unter Massen-Abruf von Suchergebnissen.
Hinzufügen von Feldnamen
Wird angegeben, wenn Suchfeldnamen, Facetten-Feldnamen, Sortierfelder und ähnliche Felder hinzugefügt werden sollen.
Die Bedeutung der einzelnen Einstellungen ist wie folgt:
| Einstellung | Beschreibung |
|---|---|
query.additional.default.fields | Fügt dem Standard-Suchfeld hinzu, das bei Abfragen ohne Feldangabe durchsucht wird. |
query.additional.search.fields | Fügt Felder hinzu, die bei feldspezifischer Suche angegeben werden können. |
query.additional.facet.fields | Fügt Felder hinzu, die als Facetten verwendet werden können. |
query.additional.sort.fields | Fügt Felder hinzu, die als Sortierkriterien verwendet werden können. |
query.additional.highlighted.fields | Fügt Felder hinzu, die für die Hervorhebung vorgesehen sind. |
query.additional.analyzed.fields | Fügt Felder hinzu, die durch den Analyzer analysiert werden. |
query.additional.not.analyzed.fields | Fügt Felder hinzu, die nicht durch den Analyzer analysiert werden. |
Benutzerdefinierte Felder für Facetten, Sortierung und Bereichssuche verwenden
Ein Feld, das ein Datenspeicher-Skript oder eine Crawl-Konfiguration hinzufügt, etwa category oder price, hat keine Definition im Index-Mapping. OpenSearch legt eine anhand des ersten Werts an, den es für dieses Feld indiziert:
Eine Zeichenkette wird zu einem
text-Feld mit einemkeyword-Unterfeld namens<field>.keyword(Zeichenketten mit mehr als 256 Zeichen werden nicht im Unterfeld gespeichert).Eine Zahl wird zu einem numerischen Feld:
longfür eine ganze Zahl,floatfür eine Zahl mit Nachkommastellen. Die JavaScript-Engine übergibt jede Zahl als Gleitkommawert, daher wird auch ein mitparseIntumgewandelter Wert zufloat.
Jede Verwendung benötigt das passende:
| Verwendung | Zu verwendendes Feld | Einstellung |
|---|---|---|
| Facette | <field>.keyword. Eine Facette auf dem text-Feld selbst schlägt mit 400 fehl. | query.additional.facet.fields |
| Sortierung | Ein numerisches Feld (oder Datumsfeld). Der Sortierwert ist | query.additional.sort.fields |
| Bereichssuche | Ein numerisches Feld (oder Datumsfeld). Bei einem Zeichenkettenfeld werden die Grenzen als Text verglichen: |
|
Ein aus CSV, JSON oder einer Datenbank gelesener Wert ist eine Zeichenkette, sofern das Skript ihn nicht umwandelt; wandeln Sie also die Werte um, nach denen Sie sortieren oder per Bereich suchen möchten. Mit der JavaScript-Engine, dem Standard für in 15.9 erstellte Datenspeicher-Konfigurationen (script_type=javascript):
Definieren Sie ein numerisches Feld im Index-Mapping, bevor das erste Dokument indiziert wird, das es enthält. Der sonst angelegte Typ float hat nur etwa sieben signifikante Stellen, und eine ganze Zahl über 16.777.216 kann auf einen benachbarten Wert gerundet werden: Ein Dokument, dessen price 20000001 ist, trifft auf price:[20000000 TO 20000000] zu, und die Sortierung kann die beiden nicht unterscheiden. Verwenden Sie long für ganze Zahlen und double für Dezimalzahlen.
Fügen Sie das Feld über den Alias
fess.updatedem aktuellen Dokumentindex hinzu.Fügen Sie dieselbe Definition unter
propertiesinapp/WEB-INF/classes/fess_indices/fess/doc.jsonder Installation hinzu, damit auch ein Dokumentindex, den Fess später anlegt (beim ersten Start mit einem leeren Cluster oder durch eine Neuindizierung auf der Seite Wartung), sie enthält. Ein Upgrade ersetztdoc.jsondurch die Datei der neuen Version; fügen Sie die Definition nach dem Upgrade erneut hinzu.
Führen Sie die Felder anschließend in fess_config.properties auf und starten Sie Fess neu:
Danach lassen sich die Felder über die Such-API verwenden:
Bemerkung
Der Typ eines Felds wird festgelegt, wenn das erste Dokument indiziert wird, das es enthält, und die Mapping-API kann ihn danach nicht mehr ändern. Um den Typ eines bereits indizierten Felds zu ändern, etwa einer Zeichenkette oder eines float, fügen Sie die Definition wie in Schritt 2 oben zu doc.json hinzu und führen Sie auf der Seite Wartung eine Neuindizierung mit aktiviertem „Alias aktualisieren“ aus. Die Dokumente werden in einen neuen Index kopiert, der aus doc.json erstellt wird.
Bemerkung
Die mit Fess mitgelieferte Suchoberfläche (das statische Theme bootstrap) zeigt nur die Facette label an (sowie die Facettenabfragen von query.facet.queries), und ihr Sortiermenü bietet nur die Standardfelder. Facetten auf anderen Feldern stehen über die API oder in einem eigenen Theme zur Verfügung. Eine Bereichssuche und eine im Suchfeld als sort:price.desc geschriebene Sortierung funktionieren auch in der Suchoberfläche.
Zusammenfassen ähnlicher Dokumente (Collapse)
Einstellungen für die Collapse-Funktion, die ähnliche (nahezu doppelte) Dokumente anhand des Feldes content_minhash_bits zusammenfasst und gebündelt anzeigt. query.collapse.inner.hits.name ist der Feldname, unter dem ähnliche Dokumente im Suchergebnis gespeichert werden; query.collapse.inner.hits.size ist die Anzahl ähnlicher Dokumente, die pro Gruppe abgerufen werden (0 bedeutet kein Abruf); query.collapse.inner.hits.sorts gibt die Sortierreihenfolge beim Abruf ähnlicher Dokumente an; query.collapse.max.concurrent.group.results gibt die maximale Anzahl gleichzeitiger Anfragen beim Gruppenabruf an.
Such-Präferenz
Gibt die Präferenz (Wert zur Bestimmung des zu durchsuchenden Shards) an, die bei API-Suche im JSON-Format an OpenSearch übergeben wird. Bei Angabe von _query wird der Hash-Wert der Suchanfrage als Präferenz verwendet, sodass dieselbe Anfrage immer demselben Shard zugewiesen wird. Standardwert ist _query.
Einstellungen für Relevanz (Boost)
Gibt die Boost-Werte an, die bei der Relevanzkalkulation (Score) während der Suche verwendet werden. Einstellungen mit .lang beziehen sich auf sprachspezifische Felder (z. B. content_ja).
Boost-Werte und Verhalten der Fuzzy-Suche werden wie folgt angegeben. query.boost.fuzzy.min.length ist die minimale Zeichenanzahl, ab der Fuzzy-Suche angewendet wird (-1 deaktiviert sie).
Einstellungen für den Abfragetyp
Gibt den bei der Suche verwendeten Abfragetyp sowie dessen detailliertes Verhalten an. query.default.query_type ist der standardmäßig verwendete Abfragetyp; query.dismax.tie_breaker ist der Tie-Breaker-Wert für dismax-Abfragen; query.bool.minimum_should_match ist der minimum_should_match-Wert für bool-Abfragen (leer bedeutet nicht angegeben).
Detaillierte Einstellungen für Präfix- und Fuzzy-Suche
Gibt das detaillierte Verhalten von Präfix- und Fuzzy-Abfragen an.
Facetteneinstellungen
Gibt das Standardverhalten der Facettensuche an. query.facet.fields gibt die Facettenfelder an; query.facet.fields.size gibt die maximale Anzahl der abzurufenden Facettenwerte an; query.facet.fields.min_doc_count gibt die minimale Dokumentanzahl für die Anzeige in der Facette an; query.facet.fields.sort gibt die Sortierreihenfolge der Facetten an; query.facet.fields.missing gibt den Wert an, der Dokumenten ohne entsprechenden Wert zugewiesen wird.
Die mit Fess mitgelieferte Suchoberfläche fordert unabhängig von query.facet.fields nur die Facette label an; siehe Benutzerdefinierte Felder für Facetten, Sortierung und Bereichssuche verwenden.
Konfiguration für GSA-kompatibles XML-Format bei Suchergebnissen
Wird beim Abrufen von Suchergebnissen im GSA-kompatiblen XML-Format verwendet.
- Gibt Feldnamen an, die zur Response bei Verwendung des GSA-kompatiblen XML-Formats hinzugefügt werden.
- Gibt die Sprache bei Verwendung des GSA-kompatiblen XML-Formats an.
- Gibt die Standard-Sortierung bei Verwendung des GSA-kompatiblen XML-Formats an.
- Gibt den Metadaten-Präfix bei Verwendung des GSA-kompatiblen XML-Formats an.
- Gibt das charset-Feld bei Verwendung des GSA-kompatiblen XML-Formats an.
- Gibt das content_type-Feld bei Verwendung des GSA-kompatiblen XML-Formats an.
- Gibt die Standard-Präferenz bei Verwendung des GSA-kompatiblen XML-Formats an.