AppSearch

AppSearch ist eine On-Device-Suchebibliothek zum Verwalten lokal gespeicherter strukturierter Daten mit APIs zum Indexieren und Abrufen von Daten mithilfe der Volltextsuche. Sie können damit benutzerdefinierte In-App-Suchfunktionen für Ihre Nutzer erstellen.
Letzte Aktualisierung Stabile Version Release Candidate Beta-Ausgabe Alphaversion
11. Dezember 2024 - - 1.1.0-alpha07

Abhängigkeiten deklarieren

Wenn Sie eine Abhängigkeit von AppSearch hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.

Fügen Sie der Datei build.gradle für Ihre App oder Ihr Modul die Abhängigkeiten für die erforderlichen Artefakte hinzu:

Cool

dependencies {
    def appsearch_version = "1.1.0-alpha05"

    implementation "androidx.appsearch:appsearch:$appsearch_version"
    // Use kapt instead of annotationProcessor if writing Kotlin classes
    annotationProcessor "androidx.appsearch:appsearch-compiler:$appsearch_version"

    implementation "androidx.appsearch:appsearch-local-storage:$appsearch_version"
    // PlatformStorage is compatible with Android 12+ devices, and offers additional features
    // to LocalStorage.
    implementation "androidx.appsearch:appsearch-platform-storage:$appsearch_version"
}

Kotlin

dependencies {
    val appsearch_version = "1.1.0-alpha05"

    implementation("androidx.appsearch:appsearch:$appsearch_version")
    // Use annotationProcessor instead of kapt if writing Java classes
    kapt("androidx.appsearch:appsearch-compiler:$appsearch_version")

    implementation("androidx.appsearch:appsearch-local-storage:$appsearch_version")
    // PlatformStorage is compatible with Android 12+ devices, and offers additional features
    // to LocalStorage.
    implementation("androidx.appsearch:appsearch-platform-storage:$appsearch_version")
}

Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.

Feedback

Ihr Feedback hilft uns, Jetpack zu verbessern. Bitte teilen Sie uns mit, wenn Sie neue Probleme feststellen oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können einem vorhandenen Problem Ihre Stimme geben, indem Sie auf die Schaltfläche mit dem Stern klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.

Version 1.1

Version 1.1.0-alpha07

11. Dezember 2024

androidx.appsearch:appsearch-*:1.1.0-alpha07 wird veröffentlicht. Version 1.1.0-alpha07 enthält diese Commits.

Neue Funktionen

  • Fügen Sie neuen API-Oberflächen, die noch nicht stabil sind, die Anmerkung ExperimentalAppSearchApi hinzu. (Ib09f4)
  • Unterstützung für die effiziente Speicherung und Freigabe von binären Blob-Daten über AppSearchSession#openBlobForWriteAsync und ähnliche Methoden
  • Unterstützung für das Filtern von Abfrageergebnissen nach Bewertungsexpression über die Funktion matchScoreExpression (Id525a)
  • Unterstützung für die Weiterleitung von Löschvorgängen vom übergeordneten Dokument an untergeordnete Dokumente. (Ia032d)
  • Unterstützung für die Quantisierungs-API für das Einbetten, um die Einbettungsleistung bei geringfügigem Qualitätsverlust zu verbessern. (Id8a07)
  • Unterstützung für die Einschränkung von Suchanfragen auf bestimmte Dokumente mithilfe der addFilterDocumentIds API in SearchSpec. (I7c6f1)

API-Änderungen

  • Verschieben Sie die Informationen zum übergeordneten Typ von GenericDocument nach SearchResult. (I34a1d)
  • Unterstützung neuer Aktionstypen in der TakenAction API, einschließlich DismissAction und ImpressionAction (I0c6c7)
  • Neues AppSearch-internes Schema WebPage hinzugefügt. (I28127)

Version 1.1.0-alpha06

16. Oktober 2024

androidx.appsearch:appsearch-*:1.1.0-alpha06 wird veröffentlicht. Version 1.1.0-alpha06 enthält diese Commits.

API-Änderungen

  • Knoten für die Abfragefunktion PropertyDefined hinzugefügt (I1aeaf)
  • Fügen Sie Knoten hinzu, um die numerische Suche und die Property-Einschränkung darzustellen. (I963a9)
  • Fügen Sie einen Knoten für die Abfragefunktion GetSearchStringParameter hinzu. (I4f99b)
  • Fügen Sie einen Knoten hinzu, der die Abfragefunktion HasProperty darstellt. (I9c1c5)
  • Schnittstelle zum Implementieren von Funktionen im AST hinzugefügt. (I9d42e)
  • Fügen Sie AND- und OR-Operatoren hinzu. (Iaa442)
  • Fügen Sie NegationNode hinzu, um die logische Negation von Abfragen im AST darzustellen. (Ia855a)
  • Fügen Sie AppSearch die Knotenschnittstelle hinzu, um Knoten zu definieren. (If42fb)
  • Fügen Sie eine Anmerkung für die experimentelle API für AppSearch hinzu. (I3e57c)

Fehlerkorrekturen

  • Fügen Sie TextNodes für Haltebedingungen hinzu. (Iefd02)

Sicherheitsfix

  • Seit dieser Änderung wird androidx mit protobuf 4.28.2 kompiliert, um CVE-2024-7254 zu beheben. Aktualisieren Sie die Abhängigkeit von androidx.appsearch:appsearch-external-protobuf auf die neueste Version 1.1.0-alpha06, um das Sicherheitsrisiko zu beheben.

Version 1.1.0-alpha05

4. September 2024

androidx.appsearch:appsearch-*:1.1.0-alpha05 wird veröffentlicht. Version 1.1.0-alpha05 enthält diese Commits.

API-Änderungen

  • Unnötige setEmbeddingSearchEnabled und getEmbeddingSearchEnabled werden eingestellt. Löscht setListFilterTokenizeFunctionEnabled und getListFilterTokenizeFunctionEnabled. Die Abfragefunktion „tokenize“ wurde gelöscht. Ersetzt durch die Abfragefunktion getSearchStringParameter und die Funktion addSearchStringParameter. (I09f5a)
  • Benennen Sie Alarm#getComputingDevice in getOriginatingDevice um. (I63121)

Version 1.1.0-alpha04

7. August 2024

androidx.appsearch:appsearch-*:1.1.0-alpha04 wird veröffentlicht. Version 1.1.0-alpha04 enthält diese Commits.

Neue Funktionen

  • Unterstützung für die neue PlayServicesStorage-Implementierung, mit der AppSearch auf älteren Geräten verwendet werden kann, ohne dass die erheblichen Apk-Größenkosten von LocalStorage anfallen. Bei dieser Speicherimplementierung werden App-Daten in der Play-Dienste App gespeichert.
  • Unterstützung neuer APIs auf Geräten mit Android 15
  • Unterstützung für die Suche in der Datenbank durch Einbetten von Vektoren, was eine ungefähre Übereinstimmung ermöglicht. (I2b41b)
  • Elterntypen und Polymorphismus im AppSearch-Schemamodell unterstützen (I06118)
  • Unterstützung der TakenAction API, mit der Apps melden können, wenn auf Ergebnisse geklickt oder sie verlassen wurden, um die Qualität bei nachfolgenden Suchanfragen zu verbessern. (I54091)
  • Unterstützung von Klassen mit Buildern im Anmerkungs-Prozessor durch Einführung der neuen Anmerkung @Document.BuilderProducer. (Iec30a)
  • Sie können jetzt noch genauer festlegen, welche Properties eines verschachtelten Dokuments indexiert werden. (Iec30a)
  • Unterstützung für die Filterung von Suchanfragen nach bestimmten Dokumenteigenschaften (Ib2659)
  • Unterstützung für detailliertere Sichtbarkeitseinstellungen durch OR- und AND-Bedingungen für Sichtbarkeitseinstellungen. (I0274b)
  • Unterstützung für die Sichtbarkeit von Daten für alle Apps, die die Existenz der zugehörigen App sehen können (öffentliche Sichtbarkeit). (I992e4)
  • Es können nur Ergebnisse abgerufen werden, für die Daten in einer bestimmten Property vorhanden sind. (I7d94f)
  • Unterstützung für das Abrufen von geschäftlichen Kontakten im privaten Profil. (Idd587)

API-Änderungen

  • Fügen Sie der Document.DocumentProperty-Anmerkung von AppSearch die Anmerkungsparameter indexableNestedPropertiesList und inheritIndexableNestedPropertiesFromSuperclass hinzu, um bestimmte verschachtelte Property-Pfade zu indexieren. (Iec30a)
  • Unterstützung des Builder-Konstruktors zum Erstellen von Builder-Instanzen im AppSearch-Anmerkungs-Prozessor (I265c9)
  • Der AppSearch-Anmerkungs-Prozessor wurde aktualisiert, um die Einstellung von übergeordneten Typen für Polymorphismus zu unterstützen (I06118)
  • Es wurde die Methode GetSchemaRequest zum Löschen der Sichtbarkeitseinstellungen hinzugefügt (I38379)
  • Unterstützung von addParentType in AppSearch für Polymorphismus (Ida14a)
  • APIs für zusätzliche Ranking-Ausdrücke hinzufügen (I5d9f4)
  • SearchAction API hinzufügen (I54091)
  • Beschreibungsfeld für AppSearch-Typen hinzugefügt (I84762)
  • APIs für die Einbettung von Suchanfragen und Rankings in AppSearch (I0f6c3) einbinden
  • Entfernt getDeletionPropagation (I21192)

Version 1.1.0-alpha03

24. Mai 2023

androidx.appsearch:appsearch-*:1.1.0-alpha03 wird veröffentlicht. Version 1.1.0-alpha03 enthält diese Commits.

Neue Funktionen

  • Unterstützung für eine erweiterte Abfrage-API, eine erweiterte Bewertungs-API und die numerische Suche. (I02d48)
  • Die LocalStorage.createGlobalSearchSession API wurde hinzugefügt, um in allen Datenbanken im lokalen Speicher einer einzelnen App zu suchen. (Id3c89)
  • API zum Zusammenführen von Dokumenten nach ID hinzugefügt (Iaecfa)
  • Unterstützung von Property-Gewichten, um bestimmte Properties bei der Verwendung von RANKING_STRATEGY_RELEVANCE_SCORING als wichtiger zu kennzeichnen (I069b9)
  • Fügen Sie „Person“ und ContactPoint hinzu, um den Personenkorpus in AppSearch abzufragen. (Ia58f9)
  • Neuer Dokumenttyp ImageObject hinzugefügt, der auf http://schema.org/ImageObject basiert. (I6a0c0)
  • Fügen Sie einen VERBATIM-Tokenisierer hinzu, mit dem Properties ohne Interpretation durch AppSearch hinzugefügt werden können. (I47bc0)
  • RFC822_TOKENIZATION wurde als Tokenisierungstyp hinzugefügt, um E-Mail-Adressen zu tokenisieren. (I8a390)
  • Aktivieren Sie die globale Suche in der Debug-Ansicht. (I51fb2)

API-Änderungen

  • Methoden entfernt, die ListenableFuture zurückgeben und kein Async-Suffix haben (I0515f)
  • Es ist jetzt möglich, Projektionen nach einer Document-Klasse zu konfigurieren. (I94576)
  • Felder von Thing bis Alarm, AlarmInstance, Timer, Stopwatch, StopwatchLap, ContactPoint und Person hinzufügen (Id876c)

Fehlerkorrekturen

  • Vollständige Unterstützung von Android 13-Funktionen in „appsearch-platform-storage“ (Ia8e61)
  • Probleme beim Überschreiben von Schemanamen und privaten Feldern bei der Verwendung der Vererbung wurden behoben.

Version 1.1.0-alpha02

24. August 2022

androidx.appsearch:appsearch-*:1.1.0-alpha02 wird veröffentlicht. Version 1.1.0-alpha02 enthält diese Commits.

Neue Funktionen

  • Der Prozess zur Indexoptimierung wurde beschleunigt, indem der Index komprimiert wird, anstatt ihn von Grund auf neu zu erstellen.
  • Natives Logging-Tag von „icing“ zu „AppSearchIcing“ geändert, INFO-Nachrichten werden standardmäßig protokolliert

API-Änderungen

  • Es wurde ein neues PropertyPath-Objekt für die Arbeit mit Pfaden und neue addProjection-Methoden zum Akzeptieren von PropertyPath hinzugefügt. (I45588)
  • builtin:Thing zu den integrierten Typen von AppSearch hinzugefügt (I55427)
  • Leere Property-Namen in GenericDocument früher verhindern: Bisher wurden sie bei der Indexierung verhindert, jetzt werden sie bei GenericDocument.Builder.build() verhindert (I9e780)

Fehlerkorrekturen

  • Unnötige Stringformatierung entfernt, um die Leistung der RELEVANZ-Bewertung zu verbessern
  • Effizientere Paginierung bei nicht lesbaren oder gelöschten Dokumenten
  • Implementierung der Speicherbereinigung für nicht abgeschlossene Abfragen
  • Unterstützung für verschachtelte Indexierung für Google Docs korrigiert. Bisher wurde „indexNestedProperties“ ignoriert. (Iae9a6)

Externer Beitrag

  • Shea Smith: Unterstützung für verschachtelte Indexierung für Google Docs korrigiert. (Iae9a6)

Version 1.1.0-alpha01

15. Juni 2022

androidx.appsearch:appsearch-*:1.1.0-alpha01 wird veröffentlicht. Version 1.1.0-alpha01 wurde in einem privaten Pre-Release-Branch entwickelt und hat keine öffentlichen Commits.

API-Änderungen

  • Alle Methoden, die ListenableFuture zurückgeben, wurden in „Async“ umbenannt. Beispiel: getSchema wurde in getSchemaAsync umbenannt. Die vorherigen Versionen wurden eingestellt und werden in einem zukünftigen Release entfernt.

Neue Funktionen

  • Erste Version von „appsearch-builtin-types“. Dieses Projekt enthält einige integrierte Typen, die auf schema.org basieren und die Kunden verwenden können, anstatt eigene Typen für gängige Objekte zu definieren. In zukünftigen Releases werden weitere Typen hinzugefügt.
  • Möglichkeit, mit ShortcutAdapter ein AppSearch-Dokument in ein ShortcutInfoCompat-Dokument umzuwandeln. So können Kunden AppSearch-Dokumente über die core-google-shortcuts-Bibliothek für Google freigeben.
  • Möglichkeit, die Vererbung mit @Document-Klassen zu verwenden. Felder können nicht ersetzt oder geändert werden. Es können jedoch neue Felder hinzugefügt werden, indem eine mit @Document annotierte Klasse erweitert wird.
  • Neue Observer API, mit der sich Clients für Benachrichtigungen registrieren können, wenn sich Typen ändern, auf die sie Zugriff haben, oder wenn Dokumente dieser Typen hinzugefügt, geändert oder entfernt werden. WICHTIG: Bei der aktuellen Implementierung werden Benachrichtigungen nur gesendet, wenn Ihre App aktiv ist. Es gibt derzeit keine Möglichkeit, Änderungen zu prüfen, die aufgetreten sind, während Ihre App angehalten war. Daher sollten Sie sich nicht auf diese API verlassen.
  • Property-Parser-API, mit der Sie von MatchInfo#getPropertyPath zurückgegebene Property-Pfade vollständig verarbeiten und prüfen können.
  • Globale getById und globale getSchema API zum Abrufen von Dokumenten und Schemas aus anderen Apps, die Ihnen Zugriff gewährt haben.
  • Möglichkeit, in getSchema Informationen zur Sichtbarkeit von Daten abzurufen, auf die Sie Zugriff haben
  • Möglichkeit, Apps mit einer bestimmten Android-Berechtigung Sichtbarkeit zu gewähren (eingeschränkt auf eine kleine Gruppe von Berechtigungen auf der Zulassungsliste)
  • Unterstützung von isFoo()-Gettern für boolesche Felder im Annotations-Prozessor zusätzlich zum bisher unterstützten Stil hasFoo()
  • Unterstützung für neue Funktionen, die durch @RequiresFeature geschützt sind. Mit AppSearchSession#getFeatures kannst du herausfinden, was das aktuelle Back-End unterstützt.
  • Entfernen des Tokenslimits von etwa 13.000 für einzelne Dokumente
  • Übereinstimmung mit nicht-ASCII- und nicht-alphanumerischen Zeichen wie Emojis zulassen

Fehlerkorrekturen

  • Fehler behoben, durch den SetSchema fehlgeschlagen ist, wenn ein verschachtelter inkompatibler Typ überschrieben wurde.
  • Korrekturen zur vollständigen Unterstützung von @AutoValue-annotierten Klassen, die als AppSearch-@Document-Klassen verwendet werden
  • Behebung einiger Abstürze im Zusammenhang mit wiederholten Listen von Dokumentenklassen und anderer Probleme
  • Fehler behoben, der unter bestimmten Umständen zum Absturz der Präfixsuche führte
  • Behebung eines kleinen Fehlers in GetStorageInfo, bei dem bei I/O-Fehlern falsche Werte zurückgegeben wurden
  • Probleme mit BUSADDERR beim Lesen eines Dokuments beheben
  • Behebung von Logcat-Beschädigungen, die durch das Drucken eines nicht formatierten Fingerabdrucks verursacht wurden
  • NPE aufgrund von E/A-Fehlern beheben
  • Behebung eines Speicherlecks in GetSchemaType, Get, Delete, DeleteByNamespace und DeleteBySchemaType

Version 1.0.0

Version 1.0.0-alpha04

3. November 2021

androidx.appsearch:appsearch-*:1.0.0-alpha04 wird veröffentlicht. Version 1.0.0-alpha04 enthält diese Commits.

Neue Funktionen

  • Guava ListenableFuture-Abhängigkeit, die automatisch als API-Abhängigkeit eingebunden wird

API-Änderungen

  • Fügen Sie SearchResult#getSubmatchRange() und SearchResult#getSubmatch() hinzu, um weitere Informationen zu den einzelnen Übereinstimmungen bereitzustellen. (I2fef6)
  • Dokumentation zur Generierung von PackageIdentifier-Fingerabdrücken für die Freigabe von Daten nach Paketname + Zertifikat präzisieren

Fehlerkorrekturen

  • Absturz behoben, wenn Nutzer versucht, Suchergebnisseiten nach dem Ende des Ergebnissatzes abzurufen
  • Problem behoben, bei dem alle Namespaces abgefragt wurden, wenn nur ungültige Namespaces als Abfragefilter angegeben wurden
  • Problem behoben, bei dem alle Namespaces entfernt wurden, wenn nur ungültige Namespaces als Filter für die Entfernung per Abfrage angegeben wurden
  • Problem behoben, bei dem Dokumentdaten bei sehr großen Dokumenten nach einem bestimmten Punkt nicht mehr indexiert wurden
  • Behoben: Bei der Tokenisierung wurden Segmente mit nicht-ASCII-Zahlenzeichen entfernt.
  • Es wurde eine Prüfung auf aufeinanderfolgende fehlgeschlagene Initialisierungsversuche hinzugefügt, um einen möglichen fehlerhaften Zustand zu beenden, der eine erfolgreiche Initialisierung verhindert.

Version 1.0.0-alpha03

21. Juli 2021

androidx.appsearch:appsearch-*:1.0.0-alpha03 wird veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.

Neue Funktionen

  • Veröffentlichung des Platform Storage Backend, damit Clients die AppSearch API mit dem neuen Dienst android.app.appsearch.AppSearchManager verwenden können, der in Android S eingeführt wird. Weitere Informationen finden Sie im AppSearch-Entwicklerleitfaden.
  • Unterstützung für den Anmerkungs-Prozessor für AutoValue
  • Entfernung des Limits für die maximale Größe einer einzelnen String-Eigenschaft
  • Neues Speicherformat zur Verringerung der Initialisierungslatenz
  • Einmalige interne Datenmigration vom alten Speicherformat in das neue Speicherformat

Fehlerkorrekturen

  • Beim Einfügen neuer Dokumente wird das maximale Dokumentlimit korrekt erzwungen
  • Absturz beim Erstellen einer AppSearchSession behoben
  • Fehler in SetSchema behoben, durch die einige Fälle von Abwärtskompatibilitäts- und Indexinkompatibilität nicht erkannt wurden

Version 1.0.0-alpha02

30. Juni 2021

androidx.appsearch:appsearch:1.0.0-alpha02, androidx.appsearch:appsearch-compiler:1.0.0-alpha02 und androidx.appsearch:appsearch-local-storage:1.0.0-alpha02 werden losgelassen. Version 1.0.0-alpha02 enthält diese Commits.

Neue Funktionen

  • Vollständige Unterstützung der Sprachen Chinesisch, Japanisch, Koreanisch und Thai
  • Verringerte Größe von androidx.appsearch:appsearch-local-storage
  • Entfernung der maximalen Größe für wiederholte Properties
  • Wiederverwendung von Builder-Klassen zulassen
  • Verbesserungen bei toString() bestimmter Objekte für eine einfachere Fehlerbehebung
  • Verbesserungen an der Javadoc-Dokumentation

API-Änderungen

  • SearchResult#getMatches in SearchResult#getMatchInfos umbenannt
  • @Document.Int64Property in @Document.LongProperty umbenannt

Fehlerkorrekturen

  • Verbesserungen und Fehlerkorrekturen bei der Berechnung von Ergebnis-Snippets
  • Fehlerkorrekturen bei der Initialisierung von AppSearchSession

Version 1.0.0-alpha01

5. Mai 2021

androidx.appsearch:appsearch:1.0.0-alpha01, androidx.appsearch:appsearch-compiler:1.0.0-alpha01 und androidx.appsearch:appsearch-local-storage:1.0.0-alpha01 werden losgelassen. Version 1.0.0-alpha01 enthält diese Commits.

Neue Funktionen

AppSearch ist eine Suchbibliothek zur Verwaltung lokal gespeicherter strukturierter Daten mit APIs zum Indexieren von Daten und zum Abrufen von Daten über die Volltextsuche. Sie können damit benutzerdefinierte In-App-Suchfunktionen für Ihre Nutzer erstellen. Diese erste Version ist 1.0.0-alpha01.