AppSearch
androidx.appsearch.annotation
androidx.appsearch.app
androidx.appsearch.exceptions
androidx.appsearch.localstorage
androidx.appsearch.platformstorage
Dernière mise à jour | Version stable | Version finale | Version bêta | Version alpha |
---|---|---|---|---|
11 décembre 2024 | - | - | - | 1.1.0-alpha07 |
Déclarer des dépendances
Pour ajouter une dépendance sur AppSearch, vous devez ajouter le dépôt Google Maven à votre projet. Pour en savoir plus, consultez la section Dépôt Maven de Google.
Ajoutez les dépendances des artefacts dont vous avez besoin dans le fichier build.gradle
de votre application ou module :
Groovy
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") }
Pour en savoir plus sur les dépendances, consultez la page Ajouter des dépendances de compilation.
Commentaires
Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.
Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.
Version 1.1
Version 1.1.0-alpha07
11 décembre 2024
Publication d'androidx.appsearch:appsearch-*:1.1.0-alpha07
. La version 1.1.0-alpha07 contient ces commits.
Nouvelles fonctionnalités
- Ajout d'une annotation
ExperimentalAppSearchApi
aux nouvelles surfaces d'API qui ne sont pas encore stabilisées. (Ib09f4) - Prise en charge du stockage et du partage efficaces des données de blob binaires via
AppSearchSession#openBlobForWriteAsync
et les méthodes associées - Possibilité de filtrer les résultats de requête en fonction d'une expression de pondération via la fonction
matchScoreExpression
(Id525a) - Prise en charge de la propagation de la suppression du document parent vers les documents enfants. (Ia032d)
- Prise en charge de l'API de quantification de l'intégration pour améliorer les performances d'intégration avec une légère perte de qualité. (Id8a07)
- Possibilité de limiter les recherches à certains documents à l'aide de l'API
addFilterDocumentIds
dansSearchSpec
. (I7c6f1)
Modifications apportées à l'API
- Déplacez les informations sur le type de parent de
GenericDocument
versSearchResult
. (I34a1d) - Prise en charge de nouveaux types d'actions dans l'API
TakenAction
, y comprisDismissAction
etImpressionAction
. (I0c6c7) - Ajout du schéma intégré AppSearch
WebPage
. (I28127)
Version 1.1.0-alpha06
16 octobre 2024
Publication d'androidx.appsearch:appsearch-*:1.1.0-alpha06
. La version 1.1.0-alpha06 contient ces commits.
Modifications apportées à l'API
- Ajout d'un nœud représentant la fonction de requête
PropertyDefined
. (I1aeaf) - Ajoutez des nœuds pour représenter la recherche numérique et la restriction de propriété. (I963a9)
- Ajoutez un nœud représentant la fonction de requête
GetSearchStringParameter
. (I4f99b) - Ajoutez un nœud représentant la fonction de requête
HasProperty
. (I9c1c5) - Ajout d'une interface pour implémenter des fonctions dans l'AST. (I9d42e)
- Ajoutez les opérateurs AND et OR. (Iaa442)
- Ajout de
NegationNode
pour représenter la négation logique des requêtes dans l'AST. (Ia855a) - Ajoutez l'interface de nœud à
AppSearch
pour définir des nœuds. (If42fb) - Ajoute une annotation d'API expérimentale pour
AppSearch
. (I3e57c)
Correction de bugs
- Ajout de
TextNodes
pour les termes de conservation. (Iefd02)
Correctif de sécurité
- Depuis cette modification, androidx compile avec protobuf 4.28.2 afin de corriger CVE-2024-7254. Mettez à niveau votre dépendance sur
androidx.appsearch:appsearch-external-protobuf
vers la dernière version 1.1.0-alpha06 pour atténuer le risque de faille.
Version 1.1.0-alpha05
4 septembre 2024
Publication d'androidx.appsearch:appsearch-*:1.1.0-alpha05
. La version 1.1.0-alpha05 contient ces commits.
Modifications apportées à l'API
- Déprécie les
setEmbeddingSearchEnabled
etgetEmbeddingSearchEnabled
inutiles. SupprimesetListFilterTokenizeFunctionEnabled
etgetListFilterTokenizeFunctionEnabled
. Suppression de la fonction de requête "tokenize". Remplacement par la fonction de requêtegetSearchStringParameter
et la fonctionaddSearchStringParameter
. (I09f5a) Alarm#getComputingDevice
a été renommégetOriginatingDevice
. (I63121)
Version 1.1.0-alpha04
7 août 2024
Publication d'androidx.appsearch:appsearch-*:1.1.0-alpha04
. La version 1.1.0-alpha04 contient ces commits.
Nouvelles fonctionnalités
- Prise en charge de la nouvelle implémentation de
PlayServicesStorage
, qui permet d'utiliserAppSearch
sur des appareils plus anciens sans encourir le coût de taille d'APK important deLocalStorage
. Cette implémentation de stockage consiste à stocker les données de l'application dans l'application Play Services. - Prise en charge des nouvelles API sur les appareils équipés d'Android 15.
- Permet de rechercher dans la base de données à l'aide de représentations vectorielles continues, ce qui permet une mise en correspondance floue. (I2b41b)
- Prise en charge des types parent et du polymorphisme dans le modèle de schéma
AppSearch
. (I06118) - Prise en charge de l'API
TakenAction
, qui permet aux applications de signaler quand les résultats ont été cliqués ou abandonnés, afin d'améliorer la qualité lors des recherches ultérieures. (I54091) - Prise en charge des classes avec des outils de création dans le processeur d'annotations grâce à la nouvelle annotation
@Document.BuilderProducer
. (Iec30a) - Contrôle plus précis des propriétés d'un document imbriqué à indexer. (Iec30a)
- Possibilité de filtrer les recherches en fonction de certaines propriétés de document. (Ib2659)
- Prise en charge de paramètres de visibilité plus précis en autorisant les valeurs OR et AND des paramètres de visibilité. (I0274b)
- Prise en charge de l'attribution de la visibilité des données à toutes les applications pouvant voir l'existence de l'application propriétaire (visibilité publique). (I992e4)
- Possibilité de ne récupérer que les résultats pour lesquels des données sont renseignées dans une propriété spécifique. (I7d94f)
- Possibilité de récupérer les contacts professionnels dans le profil personnel. (Idd587)
Modifications apportées à l'API
- Ajoutez les paramètres d'annotation
indexableNestedPropertiesList
etinheritIndexableNestedPropertiesFromSuperclass
à l'annotationDocument.DocumentProperty
d'AppSearch pour permettre l'indexation de chemins de propriété imbriqués spécifiques. (Iec30a) - Prise en charge du constructeur du compilateur pour créer des instances de compilateur dans le processeur d'annotation
AppSearch
(I265c9) - Mise à jour du processeur d'annotation
AppSearch
pour permettre de définir des types parent pour le polymorphisme (I06118) - Ajout de la méthode
GetSchemaRequest
pour effacer les paramètres de visibilité (I38379) - Prise en charge de
addParentType
dans AppSearch pour le polymorphisme (Ida14a) - Ajout d'API pour des expressions de classement supplémentaires (I5d9f4)
- Ajout de l'API
SearchAction
(I54091) - Ajout d'un champ de description pour les types
AppSearch
. (I84762) - Intégration des API d'intégration de la requête de recherche et de classement à
AppSearch
(I0f6c3) - Suppression de
getDeletionPropagation
(I21192)
Version 1.1.0-alpha03
24 mai 2023
Publication d'androidx.appsearch:appsearch-*:1.1.0-alpha03
. Liste des commits de la version 1.1.0-alpha03
Nouvelles fonctionnalités
- Prise en charge d'une API de requête avancée, d'une API de calcul de scores avancé et de la recherche numérique. (I02d48)
- Ajoute l'API
LocalStorage.createGlobalSearchSession
pour effectuer des recherches dans toutes les bases de données du stockage local d'une seule application. (ID 3c89) - Ajout d'une API pour joindre des documents par ID (Iaecfa)
- Les poids des propriétés d'acceptation pour marquer certaines propriétés sont plus importants lorsque vous utilisez
RANKING_STRATEGY_RELEVANCE_SCORING
. (I069b9) - Ajoutez "Person" et
ContactPoint
pour interroger le corpus "Person" dansAppSearch
. (Ia58f9) - Ajout du nouveau type de document
ImageObject
, basé sur http://schema.org/ImageObject. (I6a0c0) - Ajoutez un tokenizer
VERBATIM
qui permet d'ajouter des propriétés sans interprétation parAppSearch
. (I47bc0) - Ajout de
RFC822_TOKENIZATION
en tant que type de tokenizer, ce qui permet de tokeniser les adresses e-mail. (I8a390) - Activez la recherche globale dans la vue de débogage. (I51fb2)
Modifications apportées à l'API
- Suppression des méthodes qui renvoient
ListenableFuture
et qui ne comportent pas de suffixe "Async". (I0515f) - Ajout de la possibilité de configurer des projections par classe
Document
. (I94576) - Ajout de champs de
Thing
àAlarm
,AlarmInstance
,Timer
,Stopwatch
,StopwatchLap
,ContactPoint
etPerson
(Id876c)
Correction de bugs
- Compatibilité totale avec les fonctionnalités d'Android 13 dans appsearch-platform-storage (Ia8e61)
- Correction des problèmes liés au forçage des noms de schéma et des champs privés lors de l'utilisation de l'héritage.
Version 1.1.0-alpha02
24 août 2022
Publication de androidx.appsearch:appsearch-*:1.1.0-alpha02
. Liste des commits de la version 1.1.0-alpha02
Nouvelles fonctionnalités
- Accélération du processus Optimize à l'aide du compactage d'index au lieu de recréer l'index à partir de zéro.
- Remplacement de la balise de journalisation native "icing" par "AppSearchIcing", journalisation des messages INFO par défaut.
Modifications apportées à l'API
- Ajout d'un nouvel objet
PropertyPath
pour utiliser les chemins, ainsi que de nouvelles méthodesaddProjection
pour accepterPropertyPath
. (I45588) - Ajout de
builtin:Thing
aux typesAppSearch
intégrés. (I55427) - Les noms de propriété vides sont évités plus tôt dans
GenericDocument
: auparavant, ils étaient bloqués au moment de l'indexation. Désormais, ils le sont pendant la phaseGenericDocument.Builder.build()
. (I9e780).
Corrections de bugs
- Suppression de la mise en forme superflue des chaînes pour améliorer les performances d'attribution de scores pour la pertinence.
- Pagination plus efficace en cas de documents illisibles ou supprimés.
- Implémentation de la récupération de mémoire pour les requêtes abandonnées.
- Résolution de la prise en charge de l'indexation imbriquée pour les documents. Auparavant, la propriété indexNestedProperties était ignorée. (Iae9a6)
Contribution externe
- Shea Smith : résolution de la prise en charge de l'indexation imbriquée pour les documents. (Iae9a6)
Version 1.1.0-alpha01
15 juin 2022
Publication de androidx.appsearch:appsearch-*:1.1.0-alpha01
. La version 1.1.0-alpha01 a été développée dans une branche de version préliminaire privée et ne comporte aucun commit public.
Modifications apportées à l'API
- Toutes les méthodes renvoyant
ListenableFuture
ont été renommées pour inclure le suffixe "Async". Par exemple,getSchema
a été renommégetSchemaAsync
. Les versions précédentes ont été abandonnées et seront supprimées dans une prochaine version.
Nouvelles fonctionnalités
- Première version d'appsearch-builtin-types. Ce projet contient des types intégrés basés sur schema.org, que les clients peuvent trouver pratiques à utiliser au lieu d'avoir à définir leurs propres types pour les objets communs. D'autres types intégrés seront ajoutés dans les prochaines versions.
- Possibilité d'utiliser
ShortcutAdapter
pour convertir un documentAppSearch
enShortcutInfoCompat
. Les clients peuvent ainsi partager des documentsAppSearch
avec Google à l'aide de la bibliothèque core-google-shortcuts. - Possibilité d'utiliser l'héritage avec les classes
@Document
. Les champs ne peuvent pas être remplacés ni modifiés, mais vous pouvez en ajouter en étendant une classe annotée avec@Document
. - Nouvelle API Observer qui permet aux clients de demander à recevoir des notifications en cas de modification des types auxquels ils ont accès ou en cas d'ajout, de modification ou de suppression de documents de ces types. IMPORTANT : l'implémentation actuelle n'envoie des notifications que lorsque votre application est en cours d'exécution. Il n'existe actuellement aucun moyen d'inspecter les modifications qui se sont produites lorsque votre application était à l'arrêt. Par conséquent, ne vous attendez pas à ce que cette API fournisse des informations exhaustives.
- API d'analyseur de propriétés, qui vous permet de gérer et d'inspecter entièrement les chemins de propriété renvoyés par
MatchInfo#getPropertyPath
. - API
getById
etgetSchema
globales permettant de récupérer des documents et des schémas à partir d'autres applications qui vous ont donné l'accès en lecture. - Possibilité de récupérer les informations de visibilité dans
getSchema
pour les données auxquelles vous avez accès. - Possibilité d'accorder un accès en lecture aux applications disposant d'une autorisation Android spécifique (limitée à un ensemble restreint d'autorisations figurant sur la liste d'autorisation).
- Prise en charge des getters de style
isFoo()
pour les champs booléens dans le processeur d'annotations, en plus du stylehasFoo()
pris en charge précédent. - Prise en charge des nouvelles fonctionnalités protégées par
@RequiresFeature
. Utilisation d'AppSearchSession#getFeatures
pour déterminer ce que le backend actuel prend en charge. - Suppression de la limite d'environ 13 000 jetons au niveau des documents individuels.
- Possibilité de mise en correspondance au niveau des caractères non ASCII et non alphanumériques, tels que les emoji.
Corrections de bugs
- Correction d'un bug qui entraînait l'échec de
SetSchema
lors du remplacement d'un type incompatible imbriqué. - Corrections visant à assurer la compatibilité totale avec les classes annotées
@AutoValue
utilisées comme classes@Document
AppSearch. - Corrections de certains plantages liés à des listes répétées de classes de document et d'autres problèmes.
- Correction d'un bug qui provoquait un plantage de la recherche de préfixe dans certaines circonstances.
- Correction d'un bug mineur dans
GetStorageInfo
qui renvoyait des valeurs incorrectes en cas d'échec des E/S. - Résolution des problèmes
BUSADDERR
lors de la lecture d'un document. - Résolution du problème de corruption des journaux logcat en raison de l'impression d'une empreinte digitale non mise en forme.
- Correction d'une exception NPE causée par des échecs d'E/S.
- Résolution du problème de fuite de mémoire dans
GetSchemaType
,Get
,Delete
,DeleteByNamespace
etDeleteBySchemaType
.
Version 1.0.0
Version 1.0.0-alpha04
3 novembre 2021
Publication de androidx.appsearch:appsearch-*:1.0.0-alpha04
. Liste des commits de la version 1.0.0-alpha04
Nouvelles fonctionnalités
- Dépendance Guava ListenableFuture automatiquement ajoutée comme dépendance d'API.
Modifications apportées à l'API
- Ajout de SearchResult#getSubmatchRange() et SearchResult#getSubmatch() pour fournir plus d'informations sur chaque correspondance. (I2fef6)
- Clarification de la documentation sur la génération d'empreintes digitales PackageIdentifier pour le partage de données par nom de package et certificat.
Corrections de bugs
- Résolution du problème de plantage si l'utilisateur tente de récupérer des pages de résultats après la fin de l'ensemble de résultats.
- Résolution du problème d'interrogation de tous les espaces de noms si seuls des espaces de noms non valides étaient fournis en tant que filtres de requête.
- Résolution du problème lié à la suppression de tous les espaces de noms si seuls des espaces de noms non valides étaient fournis en tant que filtres "remove-by-query".
- Résolution du problème d'arrêt de l'indexation des données des documents très volumineux après un certain stade.
- Résolution d'un problème où la tokenisation abandonnait les segments contenant des caractères numériques non ASCII.
- Ajout d'une vérification des tentatives d'initialisation infructueuses consécutives pour sortir d'un état potentiellement défectueux qui empêche une initialisation réussie.
Version 1.0.0-alpha03
21 juillet 2021
Publication de androidx.appsearch:appsearch-*:1.0.0-alpha03
. Liste des commits de la version 1.0.0-alpha03
Nouvelles fonctionnalités
- Lancement du backend de stockage de la plate-forme pour permettre aux clients d'utiliser l'API AppSearch avec le nouveau service
android.app.appsearch.AppSearchManager
lancé sur Android S. Pour en savoir plus, consultez le guide du développeur AppSearch. - Prise en charge d'AutoValue avec le processeur d'annotations.
- Suppression de la limite de taille maximale d'une propriété à chaîne unique.
- Nouveau format de stockage permettant de réduire la latence d'initialisation.
- Migration interne ponctuelle des données de l'ancien format de stockage vers le nouveau.
Corrections de bugs
- Mise en application correcte de la limite maximale de documents lors l'ajout de nouveaux documents.
- Résolution du problème de plantage qui survenait lors de la création d'une session AppSearch.
- Correction de bugs dans SetSchema qui ne détectaient pas certains cas d'incompatibilité ascendante et d'incompatibilité de l'index.
Version 1.0.0-alpha02
30 juin 2021
Publication d'androidx.appsearch:appsearch:1.0.0-alpha02
, androidx.appsearch:appsearch-compiler:1.0.0-alpha02
et androidx.appsearch:appsearch-local-storage:1.0.0-alpha02
. Liste des commits de la version 1.0.0-alpha02
Nouvelles fonctionnalités
- Compatibilité totale avec le chinois, le coréen, le japonais et le thaï.
- Réduction de la taille d'
androidx.appsearch:appsearch-local-storage
. - Suppression de la limite de taille maximale des propriétés répétées.
- Possibilité de réutiliser les classes de compilateur.
- Amélioration de
toString()
pour certains objets afin de faciliter le débogage. - Améliorations apportées à la documentation Javadoc.
Modifications apportées à l'API
- Remplacement du nom
SearchResult#getMatches
parSearchResult#getMatchInfos
. - Remplacement du nom
@Document.Int64Property
par@Document.LongProperty
.
Corrections de bugs
- Améliorations et corrections du calcul des extraits de résultats.
- Corrections de bugs liés à l'initialisation de la session AppSearch.
Version 1.0.0-alpha01
5 mai 2021
Publication d'androidx.appsearch:appsearch:1.0.0-alpha01
, androidx.appsearch:appsearch-compiler:1.0.0-alpha01
et androidx.appsearch:appsearch-local-storage:1.0.0-alpha01
. Liste des commits de la version 1.0.0-alpha01
Nouvelles fonctionnalités
AppSearch est une bibliothèque de recherche qui permet de gérer les données structurées stockées localement, avec des API permettant d'indexer et de récupérer les données à l'aide de la recherche en texte intégral. Avec AppSearch, créez des fonctionnalités de recherche in-app personnalisées pour vos utilisateurs. La version initiale est 1.0.0-alpha01
.