Wyszukiwanie aplikacji

AppSearch to biblioteka wyszukiwania na urządzeniu służąca do zarządzania lokalnie zapisanymi danymi strukturalnymi, zawierająca interfejsy API do indeksowania danych i pobierania danych za pomocą wyszukiwania pełnotekstowego. Korzystając z niej, możesz stworzyć niestandardowe funkcje wyszukiwania w aplikacji dla użytkowników.
Najnowsza aktualizacja Wersja stabilna Kandydat do publikacji Wersja Beta Wersja alfa
24 maja 2023 r. - - - 1.1.0-alfa03

Deklarowanie zależności

Aby dodać zależność od AppSearch, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w repozytorium Google Maven.

W pliku build.gradle aplikacji lub modułu dodaj zależności artefaktów, których potrzebujesz:

Odlotowy

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

Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.

Opinia

Twoja opinia pomoże nam ulepszyć Jetpack. Daj nam znać, jeśli znajdziesz nowe wydania lub masz pomysły na ulepszenie tej biblioteki. Zanim utworzysz nową bibliotekę, przejrzyj problemy z tą biblioteką. Możesz oddać głos w ramach istniejącego problemu, klikając przycisk gwiazdki.

Utwórz nowy numer

Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.

Wersja 1.1

Wersja 1.1.0-alfa03

24 maja 2023 r.

Aplikacja androidx.appsearch:appsearch-*:1.1.0-alpha03 została zwolniona. Wersja 1.1.0-alpha03 zawiera te zatwierdzenia.

Nowe funkcje

  • Obsługa zaawansowanego interfejsu API zapytań, interfejsu API do zaawansowanego oceniania oraz wyszukiwania liczbowego. (I02d48)
  • Dodaje interfejs LocalStorage.createGlobalSearchSession API, który umożliwia wyszukiwanie we wszystkich bazach danych w pamięci lokalnej pojedynczej aplikacji. (Id3c89)
  • Dodaliśmy interfejs API umożliwiający złączanie dokumentów za pomocą identyfikatora (Iaecfa).
  • W przypadku korzystania z atrybutu RANKING_STRATEGY_RELEVANCE_SCORING wagi właściwości w celu oznaczenia niektórych właściwości mają większe znaczenie. (I069b9)
  • Dodaj osobę i ContactPoint, aby wysłać zapytanie do korpusu osób w AppSearch. (Ia58f9)
  • Dodano nowy typ dokumentu ImageObject modelowany na podstawie http://schema.org/ImageObject. (I6a0c0)
  • Dodaj tokenizator VERBATIM, który umożliwia dodawanie właściwości bez interpretacji według metody AppSearch. (I47bc0)
  • Dodano usługę RFC822_TOKENIZATION jako typ tokenizatora, co umożliwia tokenizację adresów e-mail. (I8a390)
  • Włącz wyszukiwanie globalne w widoku debugowania. (I51fb2)

Zmiany w interfejsie API

  • Usunięto metody, które zwracają wartość ListenableFuture i nie mają sufiksu asynchronicznego. (I0515f)
  • Dodaje możliwość konfigurowania prognoz według klasy Document. (I94576)
  • Dodaj pola z Thing do Alarm, AlarmInstance, Timer, Stopwatch, StopwatchLap, ContactPoint i Person (Id876c)

Poprawki błędów

  • Pełna obsługa funkcji Androida 13 w usłudze appsearch-platform-storage (Ia8e61)
  • Rozwiąż problemy z zastępowaniem nazw schematów i pól prywatnych podczas korzystania z dziedziczenia.

Wersja 1.1.0-alfa02

24 sierpnia 2022 r.

Aplikacja androidx.appsearch:appsearch-*:1.1.0-alpha02 została zwolniona. Wersja 1.1.0-alpha02 zawiera te zatwierdzenia.

Nowe funkcje

  • Przyspieszenie procesu Optimize przez kompresowanie indeksu zamiast jego ponownej kompilacji
  • Tag logowania natywnego został zmieniony z „icing” na „AppSearchIcing”. Komunikaty INFO domyślnie są rejestrowane.

Zmiany w interfejsie API

  • Dodaje nowy obiekt PropertyPath do pracy ze ścieżkami i nowe metody addProjection umożliwiające akceptowanie PropertyPath. (I45588)
  • Dodano builtin:Thing do AppSearch typów wbudowanych (I55427)
  • Zapobiegaj pustym nazwom właściwości w GenericDocument wcześniej – wcześniej zablokowano je podczas indeksowania, a teraz zablokowane o GenericDocument.Builder.build() (I9e780)

Poprawki błędów

  • Usunięto zbędne formatowanie ciągu znaków, aby poprawić wydajność oceny TRAFNOŚĆ
  • Bardziej skuteczny podział na strony w przypadku napotkania nieczytelnych lub usuniętych dokumentów
  • Implementacja czyszczenia pamięci w przypadku porzuconych zapytań
  • Napraw obsługę indeksowania zagnieżdżonego w Dokumentach. Poprzednio pominięto funkcję indexNestedProperty. (Iae9a6)

Wkład z zewnątrz

  • Shea Smith: naprawa obsługi zagnieżdżonego indeksowania dokumentów. (Iae9a6)

Wersja 1.1.0-alfa01

15 czerwca 2022 r.

Aplikacja androidx.appsearch:appsearch-*:1.1.0-alpha01 została zwolniona. Wersja 1.1.0-alfa01 została opracowana w prywatnej gałęzi przedpremierowej i nie ma publicznych zatwierdzeń.

Zmiany w interfejsie API

  • Nazwy wszystkich metod zwracających wartość ListenableFuture zostały zmienione tak, aby miały sufiks asynchroniczny. Na przykład nazwa getSchema została zmieniona na getSchemaAsync. Poprzednie wersje zostały wycofane i zostaną usunięte w kolejnej wersji.

Nowe funkcje

  • Pierwsza wersja funkcji wbudowanego wyszukiwania aplikacji. Ten projekt zawiera kilka typów wbudowanych opartych na schema.org, które mogą być wygodne dla klientów, zamiast definiować własne typy typowych obiektów. W kolejnych wersjach dodamy więcej typów.
  • Możliwość konwertowania dokumentu AppSearch na ShortcutInfoCompat za pomocą ShortcutAdapter. Dzięki temu klienci mogą udostępniać Google dokumenty AppSearch za pomocą biblioteki podstawowych skrótów Google
  • Możliwość dziedziczenia z @Document klasami. Pola nie można zastępować ani modyfikować, ale można dodawać nowe pola, rozszerzając klasę z adnotacją @Document.
  • Nowy interfejs API Observer umożliwiający klientom rejestrowanie powiadomień, gdy typy, do których mają dostęp, zostały zmienione lub gdy dokumenty danego typu zostały dodane, zmodyfikowane lub usunięte. WAŻNE: bieżąca implementacja generuje powiadomienia tylko wtedy, gdy aplikacja jest uruchomiona. Obecnie nie można sprawdzić zmian, które zaszły po zatrzymaniu aplikacji. W związku z tym nie należy polegać na tym interfejsie API w celu zapewnienia kompletności.
  • Interfejs API parsera właściwości, który umożliwia pełną obsługę i sprawdzanie ścieżek właściwości zwróconych przez MatchInfo#getPropertyPath.
  • Globalny interfejs getById i globalny interfejs API getSchema do pobierania dokumentów i schematów z innych aplikacji, które przyznały Ci widoczność.
  • Możliwość pobierania w usłudze getSchema informacji o widoczności danych, do których masz dostęp
  • Możliwość przyznawania widoczności aplikacjom, które mają określone uprawnienia na Androidzie (ograniczone do wąskiego zestawu uprawnień z listy dozwolonych)
  • Oprócz poprzedniego obsługiwanego stylu hasFoo() w procesorze adnotacji obsługuje metody pobierania w stylu isFoo() dla pól wartości logicznych
  • Obsługa nowych funkcji niedostępnych w wersji @RequiresFeature. Użyj AppSearchSession#getFeatures, aby określić, co obsługuje bieżący backend.
  • Usuń limit tokenów wynoszący ok. 13 tys. w pojedynczych dokumentach
  • Zezwalaj na dopasowywanie w przypadku znaków innych niż ASCII i niealfanumerycznych, np. emotikonów

Poprawki błędów

  • Napraw błąd, który powoduje wystąpienie błędu SetSchema w przypadku zastępowania zagnieżdżonego niezgodnego typu.
  • Poprawki w celu pełnej obsługi klas z adnotacjami @AutoValue używanych jako klasy AppSearch @Document
  • Poprawki niektórych awarii związanych z powtarzającymi się listami klas dokumentów i innymi problemami
  • Naprawiono błąd, który w pewnych okolicznościach powodował wyszukiwanie prefiksów awarii
  • Popraw drobny błąd w GetStorageInfo, który zwracał nieprawidłowe wartości w przypadku błędów operacji wejścia-wyjścia
  • Rozwiązywanie problemów (BUSADDERR) podczas czytania dokumentu
  • Naprawianie uszkodzenia pliku logcat spowodowanego drukowaniem niesformatowanego odcisku palca
  • Naprawianie identyfikatora NPE spowodowanego błędami wejścia-wyjścia
  • Napraw wyciek pamięci w systemach GetSchemaType, Get, Delete, DeleteByNamespace i DeleteBySchemaType

Wersja 1.0.0

Wersja 1.0.0-alfa04

3 listopada 2021 r.

Aplikacja androidx.appsearch:appsearch-*:1.0.0-alpha04 została zwolniona. Wersja 1.0.0-alpha04 zawiera te zatwierdzenia.

Nowe funkcje

  • Zależność Guava ListenableFuture automatycznie włączana jako zależność interfejsu API

Zmiany w interfejsie API

  • Dodano funkcje SearchResult#getSubmatchRange() i SearchResult#getSubmatch(), aby podać więcej informacji o każdym dopasowaniu. (I2fef6)
  • Doprecyzować dokumentację dotyczącą generowania odcisków cyfrowych identyfikatora PackageIdentifier na potrzeby udostępniania danych według nazwy pakietu i certyfikatu

Poprawki błędów

  • Naprawianie awarii, gdy użytkownik próbuje pobrać strony wyników po zakończeniu zestawu wyników
  • Rozwiązanie problemu ze wszystkimi przestrzeniami nazw, w przypadku których jako filtry zapytań podano tylko nieprawidłowe przestrzenie nazw
  • Rozwiązanie problemu polegającego na tym, że wszystkie przestrzenie nazw były usuwane, jeśli jako filtry usuwania według zapytania podano tylko nieprawidłowe przestrzenie nazw
  • Rozwiązanie problemu polegającego na tym, że w przypadku bardzo dużych dokumentów dane dokumentów przestały być indeksowane po pewnym czasie
  • Rozwiązanie problemu polegającego na tym, że tokenizacja powodowała pomijanie segmentów zawierających znaki numeryczne spoza zakresu ASCII
  • Dodaj sprawdzanie następujących po sobie kolejnych nieudanych prób zainicjowania, aby ułatwić przerwanie potencjalnego nieprawidłowego stanu uniemożliwiającego udane zainicjowanie.

Wersja 1.0.0-alfa03

21 lipca 2021 r.

Aplikacja androidx.appsearch:appsearch-*:1.0.0-alpha03 została zwolniona. Wersja 1.0.0-alpha03 zawiera te zatwierdzenia.

Nowe funkcje

  • Wersja backendu platformy Cloud Storage, która umożliwia klientom korzystanie z interfejsu AppSearch API z nową usługą android.app.appsearch.AppSearchManager wprowadzaną w Androidzie S. Więcej szczegółów znajdziesz w przewodniku dla programistów AppSearch.
  • Obsługa procesora adnotacji w przypadku wartości AutoValue
  • Usunięcie limitu maksymalnego rozmiaru właściwości pojedynczego ciągu znaków
  • Nowy format pamięci masowej zmniejszający opóźnienie inicjowania
  • Jednorazowa migracja danych wewnętrznych ze starego formatu pamięci do nowego

Poprawki błędów

  • Prawidłowo wymusza maksymalną liczbę dokumentów podczas wstawiania nowych dokumentów
  • Usunięto awarię podczas tworzenia AppSearchSession
  • Naprawiliśmy błędy w elemencie SetSchema, które nie wykrywały niektórych przypadków niezgodności wstecznej i niezgodności indeksu.

Wersja 1.0.0-alfa02

30 czerwca 2021 r.

Opublikowano androidx.appsearch:appsearch:1.0.0-alpha02, androidx.appsearch:appsearch-compiler:1.0.0-alpha02 i androidx.appsearch:appsearch-local-storage:1.0.0-alpha02. Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.

Nowe funkcje

  • Pełna obsługa języków chińskiego, japońskiego, koreańskiego i tajskiego.
  • Zmniejszono rozmiar pliku androidx.appsearch:appsearch-local-storage
  • Usunięcie maksymalnego rozmiaru powtarzających się właściwości
  • Zezwalaj na ponowne używanie klas kreatora
  • Ulepszenia toString() niektórych obiektów ułatwiające debugowanie
  • Ulepszenia dokumentacji Javadoc

Zmiany w interfejsie API

  • Nazwa tematu zmieniona z SearchResult#getMatches na SearchResult#getMatchInfos
  • Nazwa tematu zmieniona z @Document.Int64Property na @Document.LongProperty

Poprawki błędów

  • Ulepszenia i poprawki związane z obliczaniem fragmentów wyników
  • Poprawki błędów związanych z inicjowaniem sesji AppSearchSession

Wersja 1.0.0-alfa01

5 maja 2021 roku

Opublikowano androidx.appsearch:appsearch:1.0.0-alpha01, androidx.appsearch:appsearch-compiler:1.0.0-alpha01 i androidx.appsearch:appsearch-local-storage:1.0.0-alpha01. Wersja 1.0.0-alpha01 zawiera te zatwierdzenia.

Nowe funkcje

AppSearch to biblioteka wyszukiwania do zarządzania lokalnie przechowywanymi danymi strukturalnymi, zawierająca interfejsy API do indeksowania danych i pobierania danych za pomocą wyszukiwania pełnotekstowego. Korzystając z niej, możesz utworzyć dla użytkowników niestandardowe funkcje wyszukiwania w aplikacji. Pierwsza wersja to 1.0.0-alpha01.