Ricerca App

AppSearch è una libreria di ricerca su dispositivo per la gestione dei dati strutturati archiviati localmente, con API per l'indicizzazione dei dati e il recupero dei dati tramite la ricerca a testo intero. Utilizzalo per creare funzionalità di ricerca in-app personalizzate per i tuoi utenti.
Aggiornamento più recente Release stabile Candidato di rilascio Versione beta Versione alpha
24 maggio 2023 - - - 1.1.0-alpha03

Dichiarazione delle dipendenze

Per aggiungere una dipendenza ad AppSearch, devi aggiungere il Repository Maven di Google al tuo progetto. Per ulteriori informazioni, consulta il Repository Maven di Google.

Aggiungi le dipendenze per gli artefatti necessari nel file build.gradle per l'app o il modulo:

Trendy

dependencies {
    def appsearch_version = "1.1.0-alpha03"

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

    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")
}

Per ulteriori informazioni sulle dipendenze, vedi Aggiungere dipendenze di build.

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Contattaci se scopri nuovi problemi o hai idee per migliorare la libreria. Dai un'occhiata ai problemi esistenti in questa libreria prima di crearne uno nuovo. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.

Crea un nuovo problema

Per ulteriori informazioni, consulta la documentazione di Issue Tracker.

Versione 1.1

Versione 1.1.0-alpha03

24 maggio 2023

androidx.appsearch:appsearch-*:1.1.0-alpha03 viene rilasciato. La versione 1.1.0-alpha03 contiene questi commit.

Nuove funzionalità

  • Supporto per API query avanzata, API per il punteggio avanzato e ricerca numerica. (I02d48)
  • Aggiunge l'API LocalStorage.createGlobalSearchSession per eseguire ricerche in tutti i database all'interno dello spazio di archiviazione locale di una singola app. (Id3c89)
  • È stata aggiunta un'API per unire i documenti in base all'ID (Iaecfa)
  • Supporta le ponderazioni delle proprietà per contrassegnare determinate proprietà come più importanti quando utilizzi RANKING_STRATEGY_RELEVANCE_SCORING. (I069b9)
  • Aggiungi Persona e ContactPoint per eseguire query sul corpus di persone in AppSearch. (Ia58f9)
  • Aggiunto un nuovo tipo di documento ImageObject modellato dopo http://schema.org/ImageObject. (I6a0c0)
  • Aggiungi un tokenizzatore VERBATIM che consente di aggiungere proprietà senza interpretazioni da parte di AppSearch. (I47bc0)
  • RFC822_TOKENIZATION aggiunto come tipo di tokenizzatore, consentendo la tokenizzazione degli indirizzi email. (I8a390)
  • Attiva la ricerca globale nella visualizzazione debug. (I51fb2)

Modifiche alle API

  • Sono stati rimossi i metodi che restituiscono ListenableFuture e non hanno il suffisso asincrono. (I0515f)
  • Aggiunge la possibilità di configurare le proiezioni da parte di una classe Document. (I94576)
  • Aggiungi campi da Thing a Alarm, AlarmInstance, Timer, Stopwatch, StopwatchLap, ContactPoint e Person (Id876c)

Correzioni di bug

  • Supporto completo delle funzionalità di Android 13 nello spazio di archiviazione della piattaforma di ricerca delle app (Ia8e61)
  • Risolvi i problemi relativi all'override dei nomi degli schemi e dei campi privati quando utilizzi l'ereditarietà.

Versione 1.1.0-alpha02

24 agosto 2022

androidx.appsearch:appsearch-*:1.1.0-alpha02 viene rilasciato. La versione 1.1.0-alpha02 contiene questi commit.

Nuove funzionalità

  • Ha accelerato il processo di Optimize utilizzando la compattazione dell'indice anziché ricrearlo da zero
  • Tag di logging nativo cambiato da "icing" a "AppSearchIcing", per impostazione predefinita registra i messaggi INFO

Modifiche alle API

  • Aggiunge un nuovo oggetto PropertyPath per lavorare con i percorsi e nuovi metodi addProjection per accettare PropertyPath. (I45588)
  • Aggiunto builtin:Thing a AppSearch tipi integrati (I55427)
  • Impedisci i nomi di proprietà vuoti in GenericDocument prima della data indicata: in precedenza, al momento dell'indicizzazione, ora vengono bloccati alle GenericDocument.Builder.build() (I9e780)

Correzioni di bug

  • È stata rimossa la formattazione non necessaria delle stringhe per migliorare le prestazioni del punteggio di RELEVANCE
  • Impaginazione più efficiente nel caso di documenti illeggibili o eliminati
  • Implementata garbage collection per le query abbandonate
  • Correggi il supporto dell'indicizzazione nidificata per i documenti. In precedenza, indexNestedProperty veniva ignorato. (Iae9a6)

Contributo esterno

  • Shea Smith: correggi il supporto dell'indicizzazione nidificata per i documenti. (Iae9a6)

Versione 1.1.0-alpha01

15 giugno 2022

androidx.appsearch:appsearch-*:1.1.0-alpha01 viene rilasciato. La versione 1.1.0-alpha01 è stata sviluppata in un ramo di pre-release privato e non ha commit pubblici.

Modifiche alle API

  • Tutti i metodi che restituiscono ListenableFuture sono stati rinominati con il suffisso asincrono. Ad esempio, getSchema è stato rinominato getSchemaAsync. Le versioni precedenti sono state deprecate e verranno rimosse in una release futura.

Nuove funzionalità

  • Prima release dei tipi integrati di appsearch. Questo progetto contiene alcuni tipi integrati basati su schema.org che i client potrebbero trovare comodi da usare invece di definire i propri tipi per gli oggetti comuni. Nelle release future verranno aggiunti altri tipi.
  • Possibilità di utilizzare ShortcutAdapter per convertire un documento AppSearch in un file ShortcutInfoCompat. In questo modo, i clienti possono condividere AppSearch documenti con Google utilizzando la libreria di scorciatoie google principali.
  • Possibilità di utilizzare l'ereditarietà con le classi @Document. I campi non possono essere sostituiti o modificati, ma è possibile aggiungere nuovi campi estendendo una classe annotata con @Document.
  • Nuova API Observationr che consente ai client di registrarsi per ricevere notifiche quando i tipi a cui hanno accesso sono stati modificati o quando i documenti di questi tipi vengono aggiunti, modificati o rimossi. IMPORTANTE: l'implementazione corrente invia notifiche solo quando l'app è in esecuzione. Al momento non è possibile esaminare le modifiche apportate mentre l'app era arrestata. Di conseguenza, non dovresti fare affidamento su questa API per completezza.
  • API del parser delle proprietà che ti consente di gestire e ispezionare completamente i percorsi delle proprietà restituiti da MatchInfo#getPropertyPath.
  • API getById globale e getSchema globale per recuperare documenti e schemi da altre app che ti hanno concesso visibilità.
  • Possibilità di recuperare le informazioni sulla visibilità in getSchema per i dati a cui hai accesso
  • Possibilità di concedere visibilità alle app con una determinata autorizzazione Android (limitata a un insieme limitato di autorizzazioni consentite)
  • Supportano getter in stile isFoo() per i campi booleani nel processore di annotazioni, oltre al precedente stile supportato hasFoo()
  • Supporto per le nuove funzionalità protette da @RequiresFeature. Usa AppSearchSession#getFeatures per determinare ciò che supporta il backend attuale.
  • Rimuovi il limite di ~13.000 token sui singoli documenti
  • Consenti la corrispondenza con caratteri non ASCII+non alfanumerici, ad esempio le emoji

Correzioni di bug

  • Risolvi il bug che avrebbe avuto esito negativo per SetSchema durante la sostituzione di un tipo non compatibile nidificato.
  • Correzioni per supportare completamente le classi con annotazioni @AutoValue utilizzate come classi @Document di AppSearch
  • Correzioni di alcuni arresti anomali relativi a elenchi ripetuti di classi di documenti e altri problemi
  • Correzione del bug che causava l'arresto anomalo della ricerca con prefisso in determinate circostanze
  • Correggi un bug minore in GetStorageInfo che avrebbe restituito valori errati in caso di errori di I/O
  • Risolvi BUSADDERR problemi durante la lettura di un documento
  • Correggi il danneggiamento di logcat causato dalla stampa di un'impronta non formattata
  • Correggi gli NPE causati da errori di I/O
  • Correggi la perdita di memoria in GetSchemaType, Get, Delete, DeleteByNamespace e DeleteBySchemaType

Versione 1.0.0

Versione 1.0.0-alpha04

3 novembre 2021

androidx.appsearch:appsearch-*:1.0.0-alpha04 viene rilasciato. La versione 1.0.0-alpha04 contiene questi commit.

Nuove funzionalità

  • La dipendenza Guava AscoltaableFuture viene aggiunta automaticamente come dipendenza dell'API.

Modifiche alle API

  • Aggiungi SearchResult#getSubmatchRange() e SearchResult#getSubmatch() per fornire ulteriori informazioni su ogni corrispondenza. (I2fef6)
  • Chiarire la documentazione su come generare fingerprint PackageIdentifier per condividere dati in base a nome pacchetto+certificato

Correzioni di bug

  • Correggi l'arresto anomalo se l'utente tenta di recuperare le pagine dei risultati dopo la fine del set di risultati
  • Risolvi il problema relativo a tutti gli spazi dei nomi oggetto di query se vengono forniti solo spazi dei nomi non validi come filtri delle query
  • Risoluzione del problema a causa del quale tutti gli spazi dei nomi vengono rimossi se sono stati forniti solo spazi dei nomi non validi come filtri di rimozione per query
  • Risolvere il problema a causa del quale i dati dei documenti non venivano più indicizzati dopo un determinato momento per documenti di grandi dimensioni
  • Risoluzione del problema a causa del quale la tokenizzazione comportava la perdita di segmenti con caratteri numerici non ASCII
  • Aggiungi controllo per tentativi di inizializzazione consecutivi non riusciti per contribuire a uscire da un potenziale stato non valido che impedisce l'inizializzazione corretta.

Versione 1.0.0-alpha03

21 luglio 2021

androidx.appsearch:appsearch-*:1.0.0-alpha03 viene rilasciato. La versione 1.0.0-alpha03 contiene questi commit.

Nuove funzionalità

  • Rilascio del backend di Platform Storage per consentire ai client di utilizzare l'API AppSearch con il nuovo servizio android.app.appsearch.AppSearchManager che verrà lanciato su Android S. Per ulteriori dettagli, consulta la Guida per gli sviluppatori di AppSearch.
  • Supporto del processore di annotazione per AutoValue
  • Rimozione del limite di dimensioni massimo della proprietà a stringa singola
  • Nuovo formato di archiviazione per ridurre la latenza di inizializzazione
  • Una migrazione interna dei dati una tantum dal vecchio formato di archiviazione al nuovo formato di archiviazione

Correzioni di bug

  • Applica correttamente il limite massimo di documenti quando vengono inseriti nuovi documenti
  • Risolto l'arresto anomalo durante la creazione di AppSearchSession
  • Risolti bug in SetSchema che non rilevavano alcuni casi di incompatibilità con le versioni precedenti e di indice.

Versione 1.0.0-alpha02

30 giugno 2021

androidx.appsearch:appsearch:1.0.0-alpha02, androidx.appsearch:appsearch-compiler:1.0.0-alpha02 e androidx.appsearch:appsearch-local-storage:1.0.0-alpha02 vengono rilasciati. La versione 1.0.0-alpha02 contiene questi commit.

Nuove funzionalità

  • Supporto completo di cinese/giapponese/coreano/thailandese
  • Dimensioni ridotte di androidx.appsearch:appsearch-local-storage
  • Rimozione del limite di dimensioni massimo delle proprietà ripetute
  • Consenti il riutilizzo delle classi del builder
  • Miglioramenti in toString() di alcuni oggetti per semplificare il debug
  • Miglioramenti alla documentazione Javadoc

Modifiche alle API

  • SearchResult#getMatches ridenominato SearchResult#getMatchInfos
  • @Document.Int64Property ridenominato @Document.LongProperty

Correzioni di bug

  • Miglioramenti e correzioni al calcolo degli snippet dei risultati
  • Correzioni di bug nell'inizializzazione di AppSearchSession

Versione 1.0.0-alpha01

5 maggio 2021

androidx.appsearch:appsearch:1.0.0-alpha01, androidx.appsearch:appsearch-compiler:1.0.0-alpha01 e androidx.appsearch:appsearch-local-storage:1.0.0-alpha01 vengono rilasciati. La versione 1.0.0-alpha01 contiene questi commit.

Nuove funzionalità

AppSearch è una libreria di ricerca per la gestione di dati strutturati archiviati localmente, con API per l'indicizzazione dei dati e il recupero dei dati tramite la ricerca a testo intero. Utilizzalo per creare funzionalità di ricerca in-app personalizzate per i tuoi utenti. Questa release iniziale è 1.0.0-alpha01.