AppSearch

AppSearch adalah library penelusuran di perangkat untuk mengelola data terstruktur yang disimpan secara lokal, dengan API untuk mengindeks data dan mengambil data menggunakan penelusuran teks lengkap. Gunakan AppSearch untuk membuat kemampuan penelusuran dalam aplikasi khusus untuk pengguna Anda.
Update Terbaru Rilis Stabil Kandidat Rilis Rilis Beta Rilis Alfa
24 Mei 2023 - - - 1.1.0-alpha03

Mendeklarasikan dependensi

Untuk menambahkan dependensi pada AppSearch, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk informasi selengkapnya.

Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle bagi aplikasi atau modul Anda:

Groovy

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

Untuk mengetahui informasi dependensi selengkapnya, lihat Menambahkan Dependensi Build.

Masukan

Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.

Laporkan masalah baru

Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.

Versi 1.1

Versi 1.1.0-alpha03

24 Mei 2023

androidx.appsearch:appsearch-*:1.1.0-alpha03 dirilis. Versi 1.1.0-alpha03 berisi commit ini.

Fitur Baru

  • Dukungan untuk API kueri lanjutan, API penskoran lanjutan, dan penelusuran numerik. (I02d48)
  • Menambahkan LocalStorage.createGlobalSearchSession API untuk menelusuri di semua database dalam penyimpanan lokal satu aplikasi. (Id3c89)
  • Menambahkan API untuk menggabungkan dokumen menurut ID (Iaecfa)
  • Mendukung bobot properti untuk menandai properti tertentu menjadi hal yang lebih penting saat menggunakan RANKING_STRATEGY_RELEVANCE_SCORING. (I069b9)
  • Menambahkan Orang dan ContactPoint untuk membuat kueri korpus Orang di AppSearch. (Ia58f9)
  • Menambahkan jenis Dokumen baru ImageObject sesuai model http://schema.org/ImageObject. (I6a0c0)
  • Menambahkan tokenizer VERBATIM yang memungkinkan penambahan properti tanpa interpretasi oleh AppSearch. (I47bc0)
  • Menambahkan RFC822_TOKENIZATION sebagai jenis tokenizer, yang memungkinkan tokenisasi alamat email. (I8a390)
  • Mengaktifkan Penelusuran Global di Tampilan Debug. (I51fb2)

Perubahan API

  • Menghapus metode yang menampilkan ListenableFuture dan tidak memiliki akhiran Asinkron. (I0515f)
  • Menambahkan kemampuan untuk mengonfigurasi proyeksi berdasarkan class Document. (I94576)
  • Menambahkan kolom dari Thing ke Alarm, AlarmInstance, Timer, Stopwatch, StopwatchLap, ContactPoint, dan Person (Id876c)

Perbaikan Bug

  • Mendukung fitur Android 13 sepenuhnya di appsearch-platform-storage (Ia8e61)
  • Memperbaiki masalah penggantian nama skema dan kolom pribadi saat menggunakan pewarisan.

Versi 1.1.0-alpha02

24 Agustus 2022

androidx.appsearch:appsearch-*:1.1.0-alpha02 dirilis. Versi 1.1.0-alpha02 berisi commit ini.

Fitur Baru

  • Mempercepat proses Optimize (Pengoptimalan) menggunakan pemadatan indeks, bukan membuat ulang indeks dari awal
  • Mengubah tag logging native dari "icing" menjadi "AppSearchIcing", secara default mencatat pesan INFO

Perubahan API

  • Menambahkan objek PropertyPath baru untuk digunakan dengan jalur, dan metode addProjection baru untuk menerima PropertyPath. (I45588)
  • Menambahkan builtin:Thing ke jenis bawaan AppSearch (I55427)
  • Mencegah nama properti kosong di GenericDocument lebih cepat – sebelumnya nama properti dicegah pada waktu pengindeksan, tetapi sekarang dicegah pada waktu GenericDocument.Builder.build() (I9e780)

Perbaikan Bug

  • Menghapus pemformatan string yang tidak perlu untuk meningkatkan performa penskoran RELEVANCE
  • Penomoran halaman yang lebih efisien saat menemukan dokumen yang dihapus atau tidak dapat dibaca
  • Menerapkan pembersihan sampah memori untuk kueri yang diabaikan
  • Memperbaiki dukungan pengindeksan bertingkat untuk Dokumen. Sebelumnya indexNestedProperties diabaikan. (Iae9a6)

Kontribusi Eksternal

  • Shea Smith: Memperbaiki dukungan pengindeksan bertingkat untuk Dokumen. (Iae9a6)

Versi 1.1.0-alpha01

15 Juni 2022

androidx.appsearch:appsearch-*:1.1.0-alpha01 dirilis. Versi 1.1.0-alpha01 dikembangkan di cabang pra-rilis pribadi dan tidak memiliki commit publik.

Perubahan API

  • Semua metode yang menampilkan ListenableFuture telah diganti namanya agar memiliki akhiran Async. Misalnya, getSchema telah diganti namanya menjadi getSchemaAsync. Versi sebelumnya tidak digunakan lagi dan akan dihapus pada rilis mendatang.

Fitur Baru

  • Rilis pertama appsearch-builtin-types. Project ini berisi beberapa jenis bawaan berdasarkan schema.org yang menurut klien mudah digunakan, bukan menentukan jenisnya sendiri untuk objek umum. Jenis lainnya akan ditambahkan dalam rilis mendatang.
  • Kemampuan menggunakan ShortcutAdapter untuk mengonversi Dokumen AppSearch menjadi ShortcutInfoCompat. Ini memberi klien cara untuk berbagi dokumen AppSearch ke Google menggunakan library core-google-shortcuts
  • Kemampuan untuk menggunakan warisan dengan class @Document. Kolom tidak dapat diganti atau diubah, tetapi kolom baru dapat ditambahkan dengan memperluas class yang dianotasi dengan @Document.
  • Observer API baru yang memungkinkan klien mendaftar untuk notifikasi jika jenis yang aksesnya mereka miliki telah berubah atau jika dokumen jenis tersebut ditambahkan, diubah, atau dihapus. PENTING: Implementasi saat ini hanya mengirimkan notifikasi saat aplikasi Anda sedang berjalan. Saat ini tidak ada cara untuk memeriksa perubahan yang telah terjadi saat aplikasi Anda dihentikan. Oleh karena itu, Anda tidak boleh mengandalkan API ini untuk kelengkapan.
  • Property parser API yang memungkinkan Anda sepenuhnya menangani dan memeriksa jalur properti yang ditampilkan oleh MatchInfo#getPropertyPath.
  • Global getById dan global getSchema API untuk mengambil dokumen dan skema dari aplikasi lain yang telah memberi Anda visibilitas.
  • Kemampuan untuk mengambil informasi visibilitas di getSchema untuk data yang dapat Anda akses
  • Kemampuan untuk memberikan visibilitas ke aplikasi yang memiliki izin Android tertentu (dibatasi untuk serangkaian daftar izin yang disetujui)
  • Mendukung pengambil gaya isFoo() untuk kolom boolean dalam pemroses anotasi, selain gaya hasFoo() yang didukung sebelumnya
  • Dukungan untuk fitur baru yang dilindungi @RequiresFeature. Gunakan AppSearchSession#getFeatures untuk menentukan apa yang didukung oleh backend saat ini.
  • Menghapus batas token ~13k pada setiap dokumen
  • Mengizinkan pencocokan pada karakter non-ascii+non-alfanumerik, seperti emoji

Perbaikan Bug

  • Memperbaiki bug yang akan menggagalkan SetSchema saat mengganti jenis bertingkat yang tidak kompatibel.
  • Memperbaiki agar sepenuhnya mendukung class beranotasi @AutoValue yang digunakan sebagai class @Document AppSearch
  • Memperbaiki beberapa error yang berkaitan dengan daftar berulang class Dokumen dan masalah lainnya
  • Memperbaiki bug yang akan menyebabkan error pada penelusuran awalan dalam keadaan tertentu
  • Memperbaiki bug minor di GetStorageInfo yang akan menampilkan nilai salah saat mengalami kegagalan IO
  • Memperbaiki masalah BUSADDERR saat membaca dokumen
  • Memperbaiki kerusakan logcat yang disebabkan oleh pencetakan sidik jari yang tidak diformat
  • Memperbaiki NPE yang disebabkan oleh kegagalan IO
  • Memperbaiki kebocoran memori dalam GetSchemaType, Get, Delete, DeleteByNamespace, dan DeleteBySchemaType

Versi 1.0.0

Versi 1.0.0-alpha04

3 November 2021

androidx.appsearch:appsearch-*:1.0.0-alpha04 dirilis. Versi 1.0.0-alpha04 berisi commit ini.

Fitur Baru

  • Dependensi ListenableFuture Guava otomatis disertakan sebagai dependensi API

Perubahan API

  • Menambahkan SearchResult#getSubmatchRange() dan SearchResult#getSubmatch() untuk memberikan informasi selengkapnya tentang setiap kecocokan. (I2fef6)
  • Memperjelas dokumentasi tentang cara membuat sidik jari PackageIdentifier untuk berbagi data menggunakan packagename+certificate

Perbaikan Bug

  • Memperbaiki error saat pengguna mencoba mengambil halaman hasil setelah akhir penetapan hasil
  • Memperbaiki masalah terkait semua namespace yang dikueri jika hanya namespace tidak valid yang disediakan sebagai filter kueri
  • Memperbaiki masalah terkait semua namespace yang dihapus jika hanya namespace tidak valid yang disediakan sebagai filter hapus menurut kueri
  • Memperbaiki masalah ketika data dokumen berhenti diindeks setelah titik tertentu, untuk dokumen berukuran sangat besar
  • Memperbaiki masalah saat tokenisasi akan menghapus segmen dengan karakter numerik non-ASCII
  • Menambahkan pemeriksaan terhadap upaya inisialisasi yang gagal berturut-turut guna membantu menghilangkan potensi status buruk yang mencegah inisialisasi berhasil.

Versi 1.0.0-alpha03

21 Juli 2021

androidx.appsearch:appsearch-*:1.0.0-alpha03 dirilis. Versi 1.0.0-alpha03 berisi commit ini.

Fitur Baru

  • Rilis Backend Penyimpanan Platform untuk memungkinkan klien menggunakan AppSearch API dengan layanan android.app.appsearch.AppSearchManager baru yang diluncurkan di Android S. Untuk detail selengkapnya, buka Panduan Developer AppSearch.
  • Dukungan pemroses anotasi untuk AutoValue
  • Penghapusan batas ukuran maksimum untuk properti string tunggal
  • Format penyimpanan baru untuk mengurangi latensi inisialisasi
  • Migrasi data internal satu kali dari format penyimpanan lama ke format penyimpanan baru

Perbaikan Bug

  • Menerapkan batas dokumen maksimum dengan benar saat memasukkan dokumen baru
  • Memperbaiki error selama pembuatan AppSearchSession
  • Memperbaiki bug di SetSchema yang tidak mendeteksi beberapa kasus inkompatibilitas mundur dan inkompatibilitas indeks

Versi 1.0.0-alpha02

30 Juni 2021

androidx.appsearch:appsearch:1.0.0-alpha02, androidx.appsearch:appsearch-compiler:1.0.0-alpha02, dan androidx.appsearch:appsearch-local-storage:1.0.0-alpha02 dirilis. Versi 1.0.0-alpha02 berisi commit berikut ini.

Fitur Baru

  • Dukungan penuh untuk bahasa Cina/Jepang/Korea/Thailand
  • Mengurangi ukuran androidx.appsearch:appsearch-local-storage
  • Penghapusan batas ukuran maksimum properti berulang
  • Mengizinkan penggunaan ulang class builder
  • Peningkatan pada toString() objek tertentu untuk memudahkan proses debug
  • Peningkatan dokumentasi Javadoc

Perubahan API

  • Mengganti nama SearchResult#getMatches menjadi SearchResult#getMatchInfos
  • Mengganti nama @Document.Int64Property menjadi @Document.LongProperty

Perbaikan Bug

  • Peningkatan dan perbaikan pada komputasi cuplikan hasil
  • Perbaikan bug pada inisialisasi AppSearchSession

Versi 1.0.0-alpha01

5 Mei 2021

androidx.appsearch:appsearch:1.0.0-alpha01, androidx.appsearch:appsearch-compiler:1.0.0-alpha01, dan androidx.appsearch:appsearch-local-storage:1.0.0-alpha01 dirilis. Versi 1.0.0-alpha01 berisi commit ini.

Fitur Baru

AppSearch adalah library penelusuran untuk mengelola data terstruktur yang disimpan secara lokal, dengan API untuk mengindeks data dan mengambil data melalui penelusuran teks lengkap. Gunakan AppSearch untuk membuat kemampuan penelusuran dalam aplikasi khusus untuk pengguna Anda. Rilis awalnya adalah 1.0.0-alpha01.