Erstellen Sie einen Index in Azure AI Search
In diesem Artikel lernen Sie die Schritte zum Definieren eines Schemas für einen Suchindex und zum Pushen dieses Index an einen Suchdienst kennen. Durch die Erstellung eines Indexes werden die physischen Datenstrukturen Ihres Suchdienstes festgelegt. Wenn er vorhanden ist, laden Sie den Index in einer separaten Aufgabe.
Voraussetzungen
Schreibberechtigungen als Suchdienstmitwirkender oder einen Administrator-API-Schlüssel für die schlüsselbasierte Authentifizierung.
Ein Verständnis der Daten, die Sie indizieren möchten. Ein Suchindex basiert auf externen Inhalten, die durchsuchbar gemacht werden sollen. Durchsuchbare Inhalte werden als Felder in einem Index gespeichert. Sie sollten eine klare Vorstellung davon haben, welche Quellfelder in Azure KI-Suche durchsuchbar, abrufbar, filterbar, facettierbar und sortierbar sein sollen. Eine Anleitung finden Sie in der Schemaprüfliste.
Sie müssen auch ein eindeutiges Feld in den Quelldaten haben, das als Dokumentenschlüssel (oder ID) im Index verwendet werden kann.
Eine stabile Indexposition. Das Verschieben eines vorhandenen Index zu einem anderen Suchdienst wird nicht sofort unterstützt. Sehen Sie sich die Anwendungsanforderungen erneut an, und vergewissern Sie sich, dass Ihr vorhandener Suchdienst (Kapazität und Region) für Ihre Anforderungen ausreichend sind. Bei einer Abhängigkeit von Azure KI Services oder Azure OpenAI wählen Sie eine Region aus, die alle erforderlichen Ressourcen bereitstellt.
Schließlich verfügen alle Dienstebenen über Indexgrenzwerte für die Anzahl von Objekten, die Sie erstellen können. Wenn Sie z. B. mit der kostenlosen Version experimentieren, können Sie immer nur drei Indizes gleichzeitig haben. Innerhalb des Index selbst gibt es Grenzwerte für Vektoren und Indexgrenzwerte für die Anzahl einfacher und komplexer Felder.
Dokumentschlüssel
Bei der Suchindexerstellung gelten zwei Anforderungen: Ein Index muss einen eindeutigen Namen im Suchdienst haben und einen Dokumentschlüssel besitzen. Das boolesche Attribut key
für ein Feld kann auf „true“ festgelegt werden, um anzugeben, welches Feld den Dokumentschlüssel bereitstellt.
Ein Dokumentschlüssel ist der eindeutige Bezeichner eines Suchdokuments, und ein Suchdokument ist eine Sammlung von Feldern, die etwas vollständig beschreiben. Wenn Sie beispielsweise einen Filmdatensatzindizieren, enthält ein Suchdokument den Titel, das Genre und die Dauer der einzelnen Filme. Filmnamen sind in diesem Dataset eindeutig, daher können Sie den Filmnamen als Dokumentschlüssel verwenden.
In Azure KI-Suche ist ein Dokumentschlüssel eine Zeichenfolge, die aus eindeutigen Werten in der Datenquelle stammt, die den zu indizierenden Inhalt bereitstellt. Ein Suchdienst generiert im Allgemeinen keine Schlüsselwerte, aber in einigen Szenarien (wie dem Azure-Tabellenindexer) synthetisiert er vorhandene Werte, um einen eindeutigen Schlüssel für die zu indizierenden Dokumente zu erstellen. Ein weiteres Szenario ist die 1:n-Indizierung für in Blöcke unterteilte oder partitionierte Daten. In diesem Fall werden Dokumentschlüssel für jeden Block generiert.
Bei der inkrementellen Indizierung, bei der neue und aktualisierte Inhalte indiziert werden, werden eingehende Dokumente mit neuen Schlüsseln hinzugefügt, während eingehende Dokumente mit vorhandenen Schlüsseln entweder zusammengeführt oder überschrieben werden, je nachdem, ob Indexfelder leer oder gefüllt sind.
Wichtige Punkte zu Dokumentschlüsseln:
- Werte in einem Schlüsselfeld dürfen maximal 1.024 Zeichen lang sein.
- Es muss genau ein Feld auf oberster Ebene in jedem Index als Schlüsselfeld ausgewählt werden, und es muss vom Typ
Edm.String
sein. - Der Standardwert des Attributs
key
ist „false“ für einfache Felder und NULL für komplexe Felder.
Schlüsselfelder können verwendet werden, um Dokumente direkt nachzuschlagen und bestimmte Dokumente zu aktualisieren oder zu löschen. Die Werte von Schlüsselfeldern werden beim Nachschlagen oder Indizieren von Dokumenten unter Berücksichtigung der Groß- und Kleinschreibung behandelt. Ausführliche Informationen finden Sie unter GET – Dokument (REST) und Indexdokumente (REST).
Schemaprüfliste
Verwenden Sie diese Prüfliste bei den Entwurfsentscheidungen für Ihren Suchindex.
Überprüfen Sie die Benennungskonventionen, damit Index- und Feldnamen den Benennungsregeln entsprechen.
Sehen Sie sich die unterstützten Datentypen an. Der Datentyp hat EinFlow auf die Verwendung des Feldes. Numerische Inhalte können beispielsweise gefiltert, aber nicht per Volltextsuche durchsucht werden. Der gängigste Datentyp ist
Edm.String
für durchsuchbaren Text, in Token umgewandelt und abgefragt mithilfe der Volltextsuchmaschine. Der gängigste Datentyp für ein Vektorfeld istEdm.Single
, Sie können jedoch auch andere Typen verwenden.Identifizieren Sie einen Dokumentschlüssel. Ein Dokumentschlüssel ist eine Anforderung für einen Index. Es handelt sich um ein einzelnes Zeichenfolgenfeld, das aus einem Quelldatenfeld mit eindeutigen Werten gespeist wird. Beispiel: Beim Indizieren über Blob Storage wird der Metadatenspeicherpfad häufig als Dokumentschlüssel verwendet, da er jeden Blob im Container eindeutig identifiziert.
Identifizieren Sie die Felder in Ihrer Datenquelle, die zu durchsuchbaren Inhalten im Index beitragen.
Durchsuchbare Nicht-Vektorinhalte sind beispielsweise kurze oder lange Zeichenfolgen, die mit dem Volltext-Suchmodul abgefragt werden. Wenn der Inhalt ausführlich ist (kleine Ausdrücke oder größere Blöcke), experimentieren Sie mit verschiedenen Analyzern, um zu sehen, wie der Text in Token umgewandelt wird.
Durchsuchbare Vektorinhalte können Bilder oder Text (in einer beliebigen Sprache) sein, die als mathematische Darstellung vorhanden sind. Sie können schlanke Datentypen oder die Vektorkomprimierung verwenden, um Vektorfelder zu verkleinern.
Für Felder festgelegte Attribute wie
retrievable
oderfilterable
bestimmen sowohl das Suchverhalten als auch die physische Darstellung Ihres Index im Suchdienst. Festzulegen, mit welchen Attributen Felder versehen werden sollen, ist für viele Entwickler ein iterativer Prozess. Um Iterationen zu beschleunigen, beginnen Sie mit Beispieldaten, damit Sie problemlos löschen und neu erstellen können.Identifizieren Sie, welche Quellfelder als Filter verwendet werden können. Numerische Inhalte und kurze Textfelder, insbesondere solche mit sich wiederholenden Werten, sind gute Optionen. Beachten Sie beim Arbeiten mit Filtern Folgendes:
Filter können in Vektor- und Nicht-Vektorabfragen verwendet werden. Der Filter selbst wird aber auf alphanumerische (Nicht-Vektor-)Felder in Ihrem Index angewandt.
Filterbare Felder können optional in der Facettennavigation verwendet werden.
Filterbare Felder werden in beliebiger Reihenfolge zurückgegeben und unterliegen keiner Relevanzbewertung. Erwägen Sie daher, sie auch sortierbar zu machen.
Geben Sie für Vektorfelder eine Konfiguration für die Vektorsuche und die Algorithmen an, die zum Erstellen von Navigationspfaden und zum Ausfüllen des Einbettungsbereichs verwendet werden. Weitere Informationen finden Sie unter Hinzufügen von Vektorfeldern.
Vektorfelder weisen zusätzliche Eigenschaften auf, die Nicht-Vektorfelder nicht enthalten, z. B. für die zu verwendenden Algorithmen und die Vektorkomprimierung.
Attribute, die für Vektordaten nicht erforderlich sind, z. B. für Sortierung, Filterung und Facettierung, sind in Vektorfeldern nicht enthalten.
Legen Sie für Nicht-Vektorfelder fest, ob Sie das Standardanalysetool (
"analyzer": null
) oder ein anderes Analysetool verwenden möchten. Analysetools werden verwendet, um Textfelder während der Indizierung und Abfrageausführung mit Token zu versehen.Für mehrsprachige Zeichenketten wird ein Sprachanalysator verwendet.
Für Strings mit Bindestrich oder Sonderzeichen sollten Sie spezialisierte Analysatoren in Betracht ziehen. Ein Beispiel hierfür ist ein Schlüsselwort, durch das der gesamte Inhalt eines Felds als ein einzelnes Token behandelt wird. Dieses Verhalten ist nützlich für Daten wie Postleitzahlen, IDs und einige Produktnamen. Weitere Informationen finden Sie unter Suche nach Teilausdrücken und Mustern mit Sonderzeichen (Bindestriche, Platzhalter, reguläre Ausdrücke, Muster).
Hinweis
Die Volltextsuche wird über Ausdrücke durchgeführt, die während der Indizierung mit Token versehen werden. Wenn Ihre Abfragen nicht die erwarteten Ergebnisse zurückgeben, testen Sie auf Tokenisierung, um zu überprüfen, ob die gesuchte Zeichenfolge tatsächlich vorhanden ist. Sie können verschiedene Analysetools für Zeichenfolgen ausprobieren, um zu ermitteln, wie Token für verschiedene Analysetools erstellt werden.
Konfigurieren von Felddefinitionen
Mit der Feldsammlung wird die Struktur eines Suchdokuments definiert. Alle Felder besitzen einen Namen, Datentyp und Attribute.
Das Festlegen eines Felds als durchsuchbar, filterbar, sortierbar oder facettierbar wirkt sich auf die Indexgröße und die Abfrageleistung aus. Legen Sie diese Attribute nicht für Felder fest, auf die in Abfrageausdrücken nicht verwiesen werden soll.
Wenn ein Feld nicht als durchsuchbar, filterbar, sortierbar oder facettierbar festgelegt ist, kann auf das Feld in keinem Abfrageausdruck verwiesen werden. Dies ist für Felder wünschenswert, die nicht in Abfragen verwendet werden, aber in den Suchergebnissen erforderlich sind.
Die REST-APIs verfügen über Standardzuordnungen basierend auf Datentypen, die auch von den Import-Assistenten im Azure-Portal verwendet wird. Die Azure-SDKs weisen keine Standards, aber Feldunterklassen auf, die Eigenschaften und Verhaltensweisen enthalten, z. B. SearchableField für Zeichenfolgen und SimpleField für Primitiven.
Standardfeldzuordnungen für die REST-APIs werden in der folgenden Tabelle zusammengefasst.
Datentyp | Durchsuchbar | Abrufbar | Filterbar | In Facets einteilbar | Sortierbar | Gelagert werden muss |
---|---|---|---|---|---|---|
Edm.String |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Collection(Edm.String) |
✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
Edm.Boolean |
❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
Edm.Int32 , Edm.Int64 , Edm.Double |
❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
Edm.DateTimeOffset |
❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
Edm.GeographyPoint |
✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
Edm.ComplexType |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Collection(Edm.Single) und alle anderen Vektorfeldtypen |
✅ | ✅ oder ❌ | ❌ | ❌ | ❌ | ✅ |
Zeichenfolgenfelder können auch optional mit Analysemethoden und Synonymzuordnungen verknüpft werden. Felder vom Typ Edm.String
, die filterbar, sortierbar oder facettierbar sind, dürfen höchstens 32 KB lang sein. Grund hierfür ist, dass Werte dieser Felder wie einzelne Suchbegriffe behandelt werden und die maximale Länge eines Begriffs in Azure KI-Suche 32 KB beträgt. Wenn Sie in einem Zeichenfolgenfeld mehr Text speichern müssen, setzen Sie filterbar, sortierbar und facettierbar in Ihrer Indexdefinition explizit auf false
.
Vektorfelder müssen Dimensionen und Vektorprofile zugeordnet werden. Der abrufbare Standardwert ist „true“, wenn Sie das Vektorfeld mithilfe des Assistenten zum Importieren und Vektorisieren im Portal hinzufügen. Andernfalls ist er „false“, wenn Sie die REST-API verwenden.
Feldattribute werden in der folgenden Tabelle beschrieben.
Attribute | Beschreibung |
---|---|
name | Erforderlich. Legt den Namen des Felds fest, der innerhalb der Feldsammlung des Index oder des übergeordneten Felds eindeutig sein muss. |
Typ | Erforderlich. Legt den Datentyp des Feldes fest. Felder können einfach oder komplex sein. Einfache Felder sind primitive Typen, z. B. Edm.String für Text oder Edm.Int32 für ganze Zahlen. Komplexe Felder können Unterfelder enthalten, die selbst entweder einfach oder komplex sind. Auf diese Weise können Sie Objekte und Arrays von Objekten modellieren. Dies wiederum ermöglicht es Ihnen, die meisten JSON-Objektstrukturen in Ihren Index hochzuladen. Die vollständige Liste unterstützter Typen finden Sie unter Unterstützte Datentypen. |
Schlüssel | Erforderlich. Legen Sie dieses Attribut auf „true“ fest, um festzulegen, dass die Werte eines Felds Dokumente im Index eindeutig identifizieren. Ausführliche Informationen finden Sie unter Dokumentschlüssel in diesem Artikel. |
retrievable | Gibt an, ob das Feld in einem Suchergebnis zurückgegeben werden kann. Legen Sie dieses Attribut auf false fest, wenn Sie ein Feld zum Filtern, Sortieren oder Bewerten verwenden möchten, das Feld jedoch für den Endbenutzer nicht sichtbar sein soll. Dieses Attribut muss für Schlüsselfelder true und für komplexe Felder null lauten. Dieses Attribut kann für vorhandene Felder geändert werden. Durch das Festlegen von „abrufbar“ auf true erhöhen sich die Indexspeicheranforderungen nicht. Der Standardwert für einfache Felder lautet true und für komplexe Felder null . |
searchable | Gibt an, ob für das Feld die Volltextsuche durchgeführt und in Suchabfragen darauf verwiesen werden kann. Es wird während der Indizierung somit lexikalischen Analysen wie etwa der Wortisolierung unterzogen. Wenn Sie ein durchsuchbares Feld auf einen Wert wie „sunny day“ festlegen, wird es intern in die einzelnen Token „sunny“ und „day“ normalisiert. Dies ermöglicht die Volltextsuche nach diesen Begriffen. Felder vom Typ Edm.String oder Collection(Edm.String) sind standardmäßig durchsuchbar. Dieses Attribut muss für einfache Felder anderer Datentypen, die nicht auf Zeichenfolgen basieren, false und für komplexe Felder null lauten. Ein durchsuchbares Feld verbraucht zusätzlichen Platz in Ihrem Index, da Azure KI-Suche die Inhalte dieser Felder verarbeitet und in Hilfsdatenstrukturen für leistungsstarke Suchvorgänge organisiert. Wenn Sie Platz im Index sparen möchten und ein Feld in Suchvorgängen nicht benötigen, setzen Sie „durchsuchbar“ auf false . Details finden Sie unter Funktionsweise der Volltextsuche in Azure KI-Suche. |
filterable | Gibt an, ob es möglich sein soll, in $filter -Abfragen auf das Feld zu verweisen. Filterbar unterscheidet sich von durchsuchbar durch die Art und Weise, wie Zeichenfolgen behandelt werden. Filterbare Felder vom Typ Edm.String oder Collection(Edm.String) werden keiner lexikalischen Analyse unterzogen, sodass nur nach exakten Übereinstimmungen gesucht wird. Beispiel: Wenn Sie ein solches Feld f auf „sunny day“ festlegen, werden mit $filter=f eq 'sunny' keine Übereinstimmungen gefunden, mit $filter=f eq 'Sunny day' hingegen schon. Dieses Attribut muss für komplexe Felder auf null gesetzt sein. Der Standardwert für einfache Felder lautet true und für komplexe Felder null . Um die Indexgröße zu verringern, legen Sie dieses Attribut für Felder, nach denen Sie nicht filtern werden, auf false fest. |
sortable | Gibt an, ob es möglich sein soll, in $orderby -Ausdrücken auf das Feld zu verweisen. Azure KI-Suche sortiert Ergebnisse standardmäßig nach Bewertung. Häufig möchten Benutzer die Ergebnisse jedoch nach in den Dokumenten enthaltenen Feldern sortieren. Ein einfaches Feld kann nur dann sortierbar sein, wenn es einwertig ist (es hat einen einzelnen Wert im Bereich des übergeordneten Dokuments). Einfache Sammlungsfelder können nicht als sortierbar festgelegt werden, da sie mehrwertig sind. Einfache Unterfelder komplexer Auflistungen sind ebenfalls mehrwertig und sind daher nicht sortierbar. Dies gilt unabhängig davon, ob es sich um ein unmittelbares übergeordnetes Feld oder ein Vorgängerfeld handelt, das die komplexe Auflistung ist. Komplexe Felder können nicht als sortierbar festgelegt werden, und das Attribut „sortierbare“ muss für solche Felder auf null festgelegt werden. Der Standardwert für „sortierbar“ ist true für einwertige einfache Felder, false für mehrwertige einfache Felder und null für komplexe Felder. |
facetable | Gibt an, ob es möglich sein soll, in Facet-Abfragen auf das Feld zu verweisen. Wird in der Regel in Anzeigen von Suchergebnissen verwendet, die eine nach Kategorie sortierte Trefferanzahl beinhalten (z. B. werden bei der Suche nach Digitalkameras Treffer nach Marke, Megapixel, Preis usw. angezeigt). Dieses Attribut muss für komplexe Felder auf null gesetzt sein. Felder vom Typ Edm.GeographyPoint oder Collection(Edm.GeographyPoint) können nicht facettierbar sein. Der Standardwert ist für alle anderen einfachen Felder true . Um die Indexgröße zu verringern, legen Sie dieses Attribut für Felder, die Sie nicht facettieren werden, auf false fest. |
analyse | Legt die lexikalische Analysemethode für die Tokenisierung von Zeichenfolgen während Indizierung und Abfragevorgängen fest. Gültige Werte für diese Eigenschaft sind Sprachanalysemethoden, integrierte Analysemethoden und benutzerdefinierte Analysemethoden. Der Standardwert ist standard.lucene . Dieses Attribut kann nur mit durchsuchbaren Zeichenfolgenfeldern verwendet werden und weder zusammen mit „searchAnalyzer“ noch mit „indexAnalyzer“ festgelegt werden. Sobald die Analysemethode ausgewählt und das Feld im Index erstellt wurde, kann sie für das Feld nicht mehr geändert werden. Muss für komplexe Felder auf null gesetzt sein. |
searchAnalyzer | Legen Sie diese Eigenschaft zusammen mit indexAnalyzer fest, um verschiedene lexikalische Analysemethoden für die Indizierung und für Abfragen anzugeben. Wenn Sie diese Eigenschaft verwenden, legen Sie die Analysemethode auf null fest, und stellen Sie sicher, dass „indexAnalyzer“ auf einen zulässigen Wert festgelegt ist. Zu den gültigen Werten für diese Eigenschaft zählen integrierte Analysemethoden und benutzerdefinierte Analysemethoden. Dieses Attribut kann nur mit durchsuchbaren Feldern verwendet werden. Die Suchanalysemethode kann für ein vorhandenes Feld aktualisiert werden, da es nur zur Abfragezeit verwendet wird. Muss für komplexe Felder auf null gesetzt sein. |
indexAnalyzer | Legen Sie diese Eigenschaft zusammen mit searchAnalyzer fest, um verschiedene lexikalische Analysemethoden für die Indizierung und für Abfragen anzugeben. Wenn Sie diese Eigenschaft verwenden, legen Sie die Analysemethode auf null fest, und stellen Sie sicher, dass „searchAnalyzer“ auf einen zulässigen Wert festgelegt ist. Zu den gültigen Werten für diese Eigenschaft zählen integrierte Analysemethoden und benutzerdefinierte Analysemethoden. Dieses Attribut kann nur mit durchsuchbaren Feldern verwendet werden. Eine einmal für ein Feld gewählte Indexanalysemethode kann nicht mehr geändert werden. Muss für komplexe Felder auf null gesetzt sein. |
synonymMaps | Eine Liste der Namen der Synonymzuordnungen, die diesem Feld zugeordnet werden sollen. Dieses Attribut kann nur mit durchsuchbaren Feldern verwendet werden. Derzeit wird nur eine Synonymzuordnung pro Feld unterstützt. Durch das Zuweisen einer Synonymzuordnung zu einem Feld wird sichergestellt, dass Abfragebegriffe für dieses Feld zum Abfragezeitpunkt mithilfe der Regeln in der Synonymzuordnung erweitert werden. Dieses Attribut kann für vorhandene Felder geändert werden. Muss null oder eine leere Sammlung für komplexe Felder sein. |
felder | Eine Liste von Unterfeldern, wenn es sich um ein Feld vom Typ Edm.ComplexType oder Collection(Edm.ComplexType) handelt. Muss für einfache Felder null oder leer sein. Weitere Informationen dazu, wie und wann Unterfelder verwendet werden, finden Sie unter Modellieren komplexer Datentypen in Azure KI-Suche. |
Erstellen eines Index
Wenn Sie bereit sind, den Index zu erstellen, verwenden Sie einen Suchclient, der die Anforderung senden kann. Für die anfängliche Entwicklung sowie für Proof of Concept-Tests empfiehlt sich die Verwendung des Azure-Portals oder der REST-APIs, andernfalls werden dazu auch die Azure-SDKs verwendet.
Planen Sie während der Entwicklung häufige Neuerstellungen ein. Da physische Strukturen im Dienst erstellt werden, ist bei vielen Änderungen das Löschen und Neuerstellen von Indizes erforderlich. Sie sollten erwägen, mit einer Teilmenge Ihrer Daten zu arbeiten, damit Neuerstellungen schneller gehen.
Bei der Indexerstellung über das Portal werden Anforderungen und Schemaregeln für bestimmte Datentypen erzwungen, z. B. das Deaktivieren von Funktionen zur Volltextsuche bei numerischen Feldern.
Melden Sie sich beim Azure-Portal an.
Überprüfen des Speicherplatzes. Suchdienste unterliegen maximalen Anzahl von Indizes, variierend nach Dienstebene. Stellen Sie sicher, dass Sie Platz für einen zweiten Index haben.
Wählen Sie auf der Übersichtsseite des Suchdiensts eine der beiden Optionen zum Erstellen eines Suchindex aus:
- Index hinzufügen, ein eingebetteter Editor zum Angeben eines Indexschemas
- Import-Assistenten
Der Assistent ist ein End-to-End-Workflow, der einen Indexer, eine Datenquelle und einen fertigen Index erstellt. Außerdem werden die Daten geladen. Wenn dies mehr ist, als Sie möchten, verwenden Sie stattdessen Index hinzufügen.
Der folgende Screenshot hebt hervor, wo Sie Index hinzufügen, Daten importieren und Daten importieren und vektorisieren auf der Befehlsleiste finden.
Nachdem ein Index erstellt wurde, finden Sie ihn erneut auf der Seite Indizes im linken Navigationsbereich.
Tipp
Nachdem Sie einen Index im Portal erstellt haben, können Sie die JSON-Darstellung kopieren und ihrem Anwendungscode hinzufügen.
corsOptions
für ursprungsübergreifende Abfragen festlegen
Indexschemas enthalten einen Abschnitt zum Festlegen von corsOptions
. Standardmäßig kann clientseitiges JavaScript keine APIs aufrufen, da die Browser alle herkunftsübergreifenden Anfragen verhindern. Um herkunftsübergreifende Abfragen an Ihren Index zu ermöglichen, aktivieren Sie CORS (Cross-Origin Resource Sharing), indem Sie das Attribut corsOptions setzen. Aus Sicherheitsgründen wird CORS nur von Abfrage-APIs unterstützt.
"corsOptions": {
"allowedOrigins": [
"*"
],
"maxAgeInSeconds": 300
Die folgenden Eigenschaften können für CORS festgelegt werden:
allowedOrigins (erforderlich): Dies ist eine Liste von Herkunftsländern, die Zugriff auf Ihren Index haben. JavaScript-Code, der von diesen Ursprüngen geliefert wird, darf Ihren Index abfragen (vorausgesetzt, der Aufrufer gibt einen gültigen Schlüssel an oder verfügt über Berechtigungen). Ursprünge werden in der Regel im Format
protocol://<fully-qualified-domain-name>:<port>
angegeben, wobei<port>
häufig weggelassen wird. Weitere Informationen finden Sie unter Ursprungsübergreifende Ressourcennutzung (Wikipedia).Wenn Sie den Zugriff auf alle Ursprünge zulassen möchten, beziehen Sie
*
als ein einzelnes Element in das Array allowedOrigins ein. Dies ist keine empfohlene Praxis für produktive Suchdienste, aber es ist oft nützlich für die Entwicklung und Fehlersuche.maxAgeInSeconds (optional): Browser verwenden diesen Wert, um die Dauer (in Sekunden) für das Caching von CORS-Preflight-Antworten zu bestimmen. Dies muss eine positive ganze Zahl sein. Ein längerer Cache-Zeitraum sorgt für eine bessere Leistung, verlängert aber die Zeit, die eine CORS-Richtlinie benötigt, um wirksam zu werden. Wenn dieser Wert nicht festgelegt ist, wird eine Standarddauer von fünf Minuten verwendet.
Zulässige Updates für vorhandene Indizes
Index erstellen erstellt die physischen Datenstrukturen (Dateien und invertierte Indizes) in Ihrem Suchdienst. Nachdem der Index erstellt wurde, hängt die Möglichkeit, Änderungen mithilfe von Index erstellen oder aktualisieren vorzunehmen, davon ab, ob diese physischen Strukturen durch Ihre Änderungen ungültig werden. Die meisten Feldattribute können nicht mehr geändert werden, nachdem das Feld in Ihrem Index erstellt wurde.
Zum Minimieren von Churn im Anwendungscode können Sie einen Indexalias erstellen, der als stabiler Verweis im Suchindex dient. Anstatt Ihren Code mit Indexnamen zu aktualisieren, können Sie einen Indexalias aktualisieren, um auf neuere Indexversionen zu verweisen.
Um die Änderungsrate im Entwurfsprozess zu minimieren, wird in der folgenden Tabelle beschrieben, welche Elemente im Schema fest und welche flexibel sind. Das Ändern eines festen Elements erfordert eine Indexneuerstellung, während flexible Elemente jederzeit ohne Beeinträchtigung der physischen Implementierung geändert werden können. Weitere Informationen finden Sie unter Aktualisieren oder Neuerstellen eines Indexes.
Element | Kann aktualisiert werden? |
---|---|
Name | Nein |
Schlüssel | Nein |
Feldnamen und -typen | Nein |
Feldattribute (durchsuchbar, filterbar, facettierbar, sortierbar) | Nein |
Feldattribut (abrufbar) | Ja |
Gespeichert (gilt für Vektoren) | No |
Analyzer | Sie können benutzerdefinierte Analyzer im Index hinzufügen und ändern. Was die Analysator-Zuweisungen für String-Felder betrifft, können Sie nur searchAnalyzer ändern. Alle anderen Zuweisungen und Änderungen erfordern eine Neuerstellung. |
Bewertungsprofile | Ja |
Vorschläge | No |
Ressourcenfreigabe zwischen verschiedenen Ursprüngen (Cross-Origin Resource Sharing, CORS) | Ja |
Verschlüsselung | Ja |
Synonymzuordnungen | Ja |
Semantische Konfiguration | Ja |
Nächste Schritte
Unter den folgenden Links erfahren Sie mehr über spezielle Features, die einem Index hinzugefügt werden können:
- Hinzufügen von Vektorfeldern und Vektorprofilen
- Hinzufügen von Bewertungsprofilen
- Hinzufügen der Zuweisung einer semantischen Rangfolge
- Hinzufügen von Vorschlagsfunktionen
- Hinzufügen von Synonymzuordnungen
- Hinzufügen von Analysemethoden
- Hinzufügen von Verschlüsselung
Verwenden Sie diese Links zum Laden oder Aktualisieren eines Indexes: