App-Suche

AppSearch ist eine Suchbibliothek auf dem Gerät, lokal gespeicherte strukturierte Daten, mit APIs zum Indexieren von Daten und Abrufen von Daten mithilfe von Volltextsuche. Erstellen Sie damit benutzerdefinierte In-App-Suchfunktionen für Ihre Nutzenden.
Letzte Aktualisierung Stabile Version Releasekandidat Beta-Ausgabe Alpha-Release
7. August 2024 - - 1.1.0-alpha04

Abhängigkeiten deklarieren

Wenn Sie eine Abhängigkeit von AppSearch hinzufügen möchten, müssen Sie das Maven-Repository von Google zu Ihrem Projekt arbeiten. Maven-Repository von Google lesen .

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

Cool

dependencies {
    def appsearch_version = "1.1.0-alpha04"

    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-alpha04"

    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

Dein Feedback hilft uns, Jetpack zu verbessern. Teilen Sie uns mit, wenn Sie neue Ausgaben entdecken oder zur Verbesserung dieser Bibliothek. In der bestehende Probleme in dieser Bibliothek, bevor Sie eine neue erstellen. So können Sie zu einem vorhandenen Problem abstimmen: indem Sie auf die Sternschaltfläche klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung. .

Version 1.1

Version 1.1.0-alpha04

7. August 2024

androidx.appsearch:appsearch-*:1.1.0-alpha04 wurde 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 erhebliche Kosten für die APK-Größe 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.
  • Die Datenbanksuche mit Einbettungsvektoren wird unterstützt, was einen ungenauen Abgleich ermöglicht. (I2b41b)
  • Unterstützen Sie übergeordnete Typen und Polymorphie innerhalb des AppSearch-Schemamodells. (I06118)
  • Die TakenAction API unterstützen, mit der Apps melden können, wenn Ergebnisse angeklickt oder abgebrochen wurden, um die Qualität bei nachfolgenden Suchanfragen zu verbessern. (I54091)
  • Supportklassen mit Buildern im Annotationsprozessor mit der neuen Annotation @Document.BuilderProducer. (Iec30a)
  • Sie können eine genauere Kontrolle darüber haben, welche Attribute eines verschachtelten Dokuments indexiert werden. (Iec30a)
  • Unterstützung für das Filtern von Suchen nach bestimmten Dokumenteigenschaften. (Ib2659)
  • Sie können detailliertere Sichtbarkeitseinstellungen unterstützen, indem Sie ODER und UND von Sichtbarkeitseinstellungen zulassen. (I0274b)
  • Unterstützung für das Gewähren der Sichtbarkeit von Daten für alle Anwendungen, die sehen können, dass die Eigentümer-App vorhanden ist (öffentliche Sichtbarkeit). (I992e4)
  • Unterstützung, um nur Ergebnisse abzurufen, die Daten in einer bestimmten Property enthalten. (I7d94f)
  • Unterstützung für das Abrufen von Unternehmenskontakten im privaten Profil. (Idd587)

API-Änderungen

  • Fügen Sie der Annotation Document.DocumentProperty von AppSearch die Annotationsparameter indexableNestedPropertiesList und inheritIndexableNestedPropertiesFromSuperclass hinzu, um die Indexierung bestimmter verschachtelter Attributpfade zu ermöglichen. (Iec30a)
  • Support Builder-Konstruktor zum Erstellen von Builder-Instanzen im Annotationsprozessor AppSearch (I265c9)
  • Aktualisieren Sie den Annotationsprozessor AppSearch, um das Festlegen übergeordneter Typen für Polymorphie zu unterstützen (I06118)
  • Fügt die Methode GetSchemaRequest zum Löschen der Sichtbarkeitseinstellungen hinzu (I38379)
  • Unterstützung von addParentType in AppSearch für Polymorphie (Ida14a)
  • APIs für zusätzliche Rankingausdrücke hinzufügen (I5d9f4)
  • SearchAction API hinzufügen (I54091)
  • Fügt ein Beschreibungsfeld für AppSearch-Typen hinzu (I84762)
  • Einbettung von Suchanfragen und Ranking-APIs in AppSearch einrichten (I0f6c3)
  • Entfernt getDeletionPropagation (I21192)

Version 1.1.0-alpha03

24. Mai 2023

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

Neue Funktionen

  • Unterstützung für eine API für erweiterte Abfragen, eine API für die erweiterte Bewertung und die numerische Suche. (I02d48)
  • Fügt die LocalStorage.createGlobalSearchSession API hinzu, um in allen Datenbanken im lokalen Speicher einer einzelnen Anwendung zu suchen. (ID3c89)
  • Es wurde eine API hinzugefügt, um Dokumente nach ID zu verknüpfen (Iaecfa).
  • Unterstützen Sie Eigenschaftsgewichtungen, um bestimmte Eigenschaften zu kennzeichnen, die bei der Verwendung von RANKING_STRATEGY_RELEVANCE_SCORING wichtiger sind. (I069b9)
  • Fügen Sie „Person“ und ContactPoint für die Abfrage des Personenkorpus in AppSearch hinzu. (Ia58f9)
  • Neuer Dokumenttyp ImageObject hinzugefügt, modelliert nach http://schema.org/ImageObject. (I6a0c0)
  • Fügen Sie einen VERBATIM-Tokenizer hinzu, der das Hinzufügen von Attributen ohne Interpretation durch AppSearch ermöglicht. (I47bc0)
  • RFC822_TOKENIZATION wurde als Tokenizer-Typ hinzugefügt, der die Tokenisierung von E-Mail-Adressen ermöglicht. (I8a390)
  • Aktivieren Sie in der Debug-Ansicht die globale Suche. (I51fb2)

API-Änderungen

  • Entfernte Methoden, die ListenableFuture zurückgeben und kein asynchrones Suffix haben. (I0515f)
  • Bietet die Möglichkeit, Projektionen durch eine Document-Klasse zu konfigurieren. (I94576)
  • Felder von Thing zu 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 mit dem Überschreiben von Schemanamen und privaten Feldern bei Verwendung der Übernahme wurden behoben.

Version 1.1.0-alpha02

24. August 2022

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

Neue Funktionen

  • Der Optimize-Prozess wurde durch die Indexverdichtung beschleunigt, statt den Index von Grund auf neu zu erstellen.
  • Natives Logging-Tag von „icing“ geändert auf „AppSearchIcing“, standardmäßig INFO-Nachrichten protokollieren

API-Änderungen

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

Fehlerkorrekturen

  • Unnötige Stringformatierung entfernt, um die RELEVANCE-Bewertung zu verbessern
  • Effizientere Paginierung bei nicht lesbaren oder gelöschten Dokumenten
  • Automatische Speicherbereinigung für abgebrochene Abfragen implementiert
  • Probleme mit der Unterstützung der verschachtelten Indexierung für Dokumente wurden behoben. Bisher wurde „indexNestedProperties“ ignoriert. (Iae9a6)

Externer Beitrag

  • Shea Smith: Probleme mit der verschachtelten Indexierung für Dokumente beheben (Iae9a6)

Version 1.1.0-alpha01

15. Juni 2022

androidx.appsearch:appsearch-*:1.1.0-alpha01 wurde veröffentlicht. Version 1.1.0-alpha01 wurde in einem privaten Vorabveröffentlichungszweig entwickelt und hat keine öffentlichen Commits.

API-Änderungen

  • Alle Methoden, die ListenableFuture zurückgeben, wurden in das Suffix „Async“ umbenannt. Beispiel: getSchema wurde in getSchemaAsync umbenannt. Die vorherigen Versionen wurden verworfen und werden in einer zukünftigen Version entfernt.

Neue Funktionen

  • Erster Release von integrierten Appsearch-Typen. Dieses Projekt enthält einige auf schema.org basierende integrierte Typen, die für Clients möglicherweise praktisch sind, anstatt eigene Typen für gängige Objekte zu definieren. In zukünftigen Versionen werden weitere Typen hinzugefügt.
  • Berechtigung zur Konvertierung eines AppSearch-Dokuments in ein ShortcutInfoCompat-Format mithilfe von ShortcutAdapter. Dies gibt Kunden die Möglichkeit, AppSearch-Dokumente über die „core-google-shortcuts“-Bibliothek für Google freizugeben
  • Berechtigung zur Verwendung der Übernahme mit @Document-Klassen. Felder können nicht ersetzt oder geändert werden, aber neue Felder können hinzugefügt werden, indem Sie eine mit @Document annotierte Klasse erweitern.
  • Neue Observer API, mit der sich Kunden für Benachrichtigungen registrieren können, wenn Typen, auf die sie Zugriff haben, geändert wurden oder wenn Dokumente dieser Typen hinzugefügt, geändert oder entfernt werden. WICHTIG: Bei der aktuellen Implementierung erhalten Sie nur dann Benachrichtigungen, wenn Ihre App ausgeführt wird. Derzeit gibt es keine Möglichkeit, Änderungen zu prüfen, die vorgenommen wurden, während Ihre Anwendung beendet wurde. Daher sollten Sie sich nicht auf die Vollständigkeit dieser API verlassen.
  • Property Parser API, mit der von MatchInfo#getPropertyPath zurückgegebene Attributpfade vollständig verarbeitet und geprüft werden können.
  • Globale getById und globale getSchema API zum Abrufen von Dokumenten und Schemas aus anderen Apps, die Ihnen Sichtbarkeit gewährt haben.
  • Abrufen von Sichtbarkeitsinformationen für Daten, auf die Sie Zugriff haben, in getSchema
  • Die Möglichkeit, Apps mit einer bestimmten Android-Berechtigung sichtbar zu machen (beschränkt auf eine begrenzte Anzahl von Berechtigungen, die auf der Zulassungsliste stehen)
  • Unterstützung von Getter des Typs isFoo() für boolesche Felder im Annotationsprozessor zusätzlich zum zuvor unterstützten Stil hasFoo()
  • Unterstützung neuer Funktionen, die hinter @RequiresFeature geschützt sind. Bestimmen Sie mit AppSearchSession#getFeatures, was das aktuelle Back-End unterstützt.
  • Begrenzung von ca. 13.000 Tokens für einzelne Dokumente entfernen
  • Abgleich von nicht ASCII- und nicht alphanumerischen Zeichen, z. B. Emojis, zulassen

Fehlerkorrekturen

  • Es wurde ein Fehler behoben, bei dem SetSchema nicht funktioniert, wenn ein verschachtelter inkompatibler Typ überschrieben wurde.
  • Fehlerkorrekturen für die vollständige Unterstützung von mit @AutoValue annotierten Klassen, die als AppSearch-@Document-Klassen verwendet werden
  • Fehlerkorrekturen für einige Abstürze im Zusammenhang mit wiederholten Listen von Dokumentklassen und andere Probleme
  • Behebung eines Fehlers, der unter bestimmten Umständen die Suche mit dem Präfix abstürzte
  • Kleinere Fehler in GetStorageInfo, der bei E/A-Fehlern falsche Werte zurückgibt
  • BUSADDERR Probleme beim Lesen eines Dokuments beheben
  • Logcat-Beschädigung durch Drucken eines nicht formatierten Fingerabdrucks beheben
  • NPE aufgrund von E/A-Fehlern beheben
  • Speicherleck in GetSchemaType, Get, Delete, DeleteByNamespace und DeleteBySchemaType beheben

Version 1.0.0

Version 1.0.0-alpha04

3. November 2021

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

Neue Funktionen

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

API-Änderungen

  • Fügen Sie SearchResult#getSubmatchRange() und SearchResult#getSubmatch() hinzu, um weitere Informationen zu den einzelnen Übereinstimmungen bereitzustellen. (I2fef6)
  • Die Dokumentation zum Generieren von PackageIdentifier-Fingerabdrücken für die Freigabe von Daten nach Paketname+Zertifikat wurde klarer formuliert.

Fehlerkorrekturen

  • Absturz behoben, der auftrat, wenn der Nutzer versucht, Ergebnisseiten nach dem Ende der Ergebnisse 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 das Entfernen nach Abfrage angegeben wurden
  • Problem behoben, bei dem Dokumentdaten für sehr große Dokumente ab einem bestimmten Zeitpunkt nicht mehr indexiert wurden
  • Problem behoben, bei dem durch die Tokenisierung Segmente mit numerischen Nicht-ASCII-Zeichen verworfen wurden
  • Fügen Sie eine Prüfung für aufeinanderfolgende fehlgeschlagene Initialisierungsversuche hinzu, um einen potenziellen fehlerhaften Status zu vermeiden, der eine erfolgreiche Initialisierung verhindert.

Version 1.0.0-alpha03

21. Juli 2021

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

Neue Funktionen

  • Veröffentlichung des Plattformspeicher-Back-Ends, damit Clients die AppSearch API mit dem neuen android.app.appsearch.AppSearchManager-Dienst verwenden können, der in Android S eingeführt wird. Weitere Informationen finden Sie im AppSearch-Entwicklerleitfaden.
  • Unterstützung des Annotationsprozessors für AutoValue
  • Entfernung der Größenbeschränkung eines einzelnen String-Attributs
  • Neues Speicherformat zur Verringerung der Initialisierungslatenz
  • Eine einmalige interne Datenmigration vom alten Speicherformat zum neuen Speicherformat

Fehlerkorrekturen

  • Erzwingt korrekt die maximale Dokumentbeschränkung beim Einfügen neuer Dokumente
  • Absturz während der AppSearchSession-Erstellung wurde behoben.
  • Es wurden Fehler in SetSchema behoben, die einige Fälle von Abwärts- und Indexinkompatibilität nicht erkannten.

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 wurden veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.

Neue Funktionen

  • Vollständige Unterstützung der Sprachen Chinesisch/Japanisch/Koreanisch/Thai
  • Größe von androidx.appsearch:appsearch-local-storage verringert
  • Maximale Größenbeschränkung für wiederkehrende Properties wurde entfernt
  • Wiederverwendung von Builder-Klassen zulassen
  • Verbesserungen bei toString() bestimmter Objekte zur einfacheren Fehlerbehebung
  • Verbesserungen 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 AppSearchSession-Initialisierung

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 wurden veröffentlicht. 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.