AppSearch
Ostatnia aktualizacja | Wersja stabilna | Wersja kandydująca | Wersja Beta | Wersja alfa |
---|---|---|---|---|
15 stycznia 2025 r. | - | - | 1.1.0-beta01 | - |
Deklarowanie zależności
Aby dodać zależność od AppSearch, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w repozytorium Maven firmy Google.
Dodaj zależności dla artefaktów, których potrzebujesz, w pliku build.gradle
aplikacji lub modułu:
Odlotowe
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") }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Opinia
Twoja opinia pomoże nam ulepszyć Jetpacka. Daj nam znać, jeśli zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz zagłosować na istniejący problem, klikając przycisk z gwiazdką.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 1.1
Wersja 1.1.0-beta01
15 stycznia 2025 r.
androidx.appsearch:appsearch-*:1.1.0-beta01
został zwolniony. Wersja 1.1.0-beta01 zawiera te commity.
Nowe funkcje
- Moduł
AppSearch
przechodzi do wersji beta.
Zmiany w interfejsie API
- Wyłącz eksperymentalny interfejs API do propagowania usuwania plików z powodu problemów ze stabilnością.
AppSearch
(Iea386) - Utwórz interfejs API
GlobalSearchApplicationInfo
, który jest eksperymentalną i opcjonalną metodą umożliwiającą producentom i konsumentom wyrażenie zainteresowania określonymi typami. (I116fd) - Drobne zmiany w eksperymentalnych interfejsach AST (query builder) (Ibd852)
Poprawki błędów
- Ta biblioteka korzysta teraz z adnotacji JSpecify dotyczących nullowości, które są używane w ramach typu. Aby wymusić prawidłowe użycie, deweloperzy Kotlina powinni używać tych argumentów kompilatora:
-Xjspecify-annotations=strict
,-Xtype-enhancement-improvements-strict-mode
. (Ic2976, b/326456246) - Dodanie wymaganego uprawnienia do
searchPersonCorpus
(I4431d)
Wersja 1.1.0-alpha07
11 grudnia 2024 r.
androidx.appsearch:appsearch-*:1.1.0-alpha07
został zwolniony. Wersja 1.1.0-alpha07 zawiera te komity.
Nowe funkcje
- Dodaj adnotację
ExperimentalAppSearchApi
do nowych interfejsów API, które nie są jeszcze stabilne. (Ib09f4) - Obsługa efektywnego przechowywania i udostępniania binarnych danych blob za pomocą
AppSearchSession#openBlobForWriteAsync
i powiązanych metod - Obsługa filtrowania wyników zapytania według wyrażenia punktacji za pomocą funkcji
matchScoreExpression
(Id525a) - Obsługa propagowania usunięcia z dokumentu nadrzędnego do dokumentów podrzędnych. (Ia032d)
- Obsługa interfejsu API do kodowania kwantowego, która zwiększa wydajność kodowania z niewielkim spadkiem jakości. (Id8a07)
- Obsługa ograniczania wyszukiwania do określonych dokumentów za pomocą interfejsu API
addFilterDocumentIds
wSearchSpec
. (I7c6f1)
Zmiany w interfejsie API
- Przenieś informacje o rodzaju rodzica z
GenericDocument
doSearchResult
. (I34a1d) - Obsługa nowych typów działań w interfejsie API
TakenAction
, w tymDismissAction
iImpressionAction
. (I0c6c7) - Dodano nowy schemat AppSearch
WebPage
. (I28127)
Wersja 1.1.0-alpha06
16 października 2024 r.
androidx.appsearch:appsearch-*:1.1.0-alpha06
został zwolniony. Wersja 1.1.0-alpha06 zawiera te komity.
Zmiany w interfejsie API
- Dodano węzeł reprezentujący funkcję zapytania
PropertyDefined
. (I1aeaf) - Dodaj węzły reprezentujące wyszukiwanie liczbowe i ograniczenie właściwości. (I963a9)
- Dodaj węzeł reprezentujący funkcję zapytania
GetSearchStringParameter
. (I4f99b) - Dodaj węzeł reprezentujący funkcję zapytania
HasProperty
. (I9c1c5) - Dodano interfejs do implementowania funkcji w AST. (I9d42e)
- Dodaj operatory AND i OR. (Iaa442)
- Dodaj
NegationNode
, aby reprezentować logiczne zaprzeczenie zapytań w AST. (Ia855a) - Dodaj interfejs węzła do
AppSearch
, aby definiować węzły. (If42fb) - Dodaje adnotację Experimental API dla
AppSearch
. (I3e57c)
Poprawki błędów
- Dodaj
TextNodes
, aby określić warunki blokady. (Iefd02)
Naprawa zabezpieczeń
- Od momentu wprowadzenia tej zmiany androidx kompiluje się z użyciem protobuf 4.28.2, aby rozwiązać problem CVE-2024-7254. Aby rozwiązać problem z luką w zabezpieczeniach, zaktualizuj zależność od
androidx.appsearch:appsearch-external-protobuf
do najnowszej wersji 1.1.0-alpha06.
Wersja 1.1.0-alpha05
4 września 2024 r.
androidx.appsearch:appsearch-*:1.1.0-alpha05
został zwolniony. Wersja 1.1.0-alpha05 zawiera te komity.
Zmiany w interfejsie API
- Usunięcie zbędnych instrukcji
setEmbeddingSearchEnabled
igetEmbeddingSearchEnabled
. usuwasetListFilterTokenizeFunctionEnabled
igetListFilterTokenizeFunctionEnabled
. Usunięto funkcję zapytania „tokenize”. Zastąpione funkcją zapytaniagetSearchStringParameter
i funkcjąaddSearchStringParameter
. (I09f5a) - Zmień nazwę
Alarm#getComputingDevice
nagetOriginatingDevice
. (I63121)
Wersja 1.1.0-alpha04
7 sierpnia 2024 r.
androidx.appsearch:appsearch-*:1.1.0-alpha04
został zwolniony. Wersja 1.1.0-alpha04 zawiera te komity.
Nowe funkcje
- Obsługa nowej implementacji
PlayServicesStorage
, która umożliwia korzystanie zAppSearch
na starszych urządzeniach bez ponoszenia znacznych kosztów związanych z rozmiarem pliku APKLocalStorage
. Ta implementacja pamięci polega na przechowywaniu danych aplikacji w aplikacji Usługi Google Play. - Obsługa nowych interfejsów API na urządzeniach z Androidem 15.
- Obsługa wyszukiwania w bazie danych według wektorów dystrybucyjnych, co umożliwia dopasowanie przybliżone. (I2b41b)
- Obsługa typów nadrzędnych i polimorfizmu w ramach modelu schematu
AppSearch
. (I06118) - Obsługa interfejsu API
TakenAction
, który umożliwia aplikacjom zgłaszanie, kiedy wyniki zostały kliknięte lub porzucone, aby zwiększyć jakość podczas kolejnych wyszukiwań. (I54091) - Wsparcie klas z twórcami w procesorze adnotacji poprzez wprowadzenie nowej adnotacji
@Document.BuilderProducer
. (Iec30a) - Więcej kontroli nad tym, które właściwości dokumentu zagnieżdżonego mają być indeksowane. (Iec30a)
- Obsługa filtrowania wyszukiwania pod kątem określonych właściwości dokumentu. (Ib2659)
- Obsługa bardziej szczegółowych ustawień widoczności dzięki zastosowaniu operatorów LUB i ALBO. (I0274b)
- Obsługa przyznawania widoczności danych wszystkim aplikacjom, które mogą zobaczyć aplikację właściciela (widoczność publiczna). (I992e4)
- Obsługa pobierania tylko wyników, które mają dane wypełnione w określonej usłudze. (I7d94f)
- Obsługa pobierania kontaktów firmowych w profilu osobistym. (Idd587)
Zmiany w interfejsie API
- Dodaj parametry adnotacji
indexableNestedPropertiesList
iinheritIndexableNestedPropertiesFromSuperclass
do adnotacjiDocument.DocumentProperty
w AppSearch, aby umożliwić indeksowanie określonych zagnieżdżonych ścieżek właściwości. (Iec30a) - Obsługa konstruktora buildera do tworzenia instancji buildera w procesorze adnotacji
AppSearch
(I265c9) - Zaktualizowano procesor adnotacji
AppSearch
, aby obsługiwał ustawianie typów nadrzędnych w przypadku polimorfizmu (I06118) - Dodanie metody
GetSchemaRequest
do wyczyszczania ustawień widoczności (I38379) - Obsługa
addParentType
w AppSearch na potrzeby polimorfizmu (Ida14a) - Dodawanie interfejsów API do dodatkowych wyrażeń rankingu (I5d9f4)
- Dodaj interfejs API
SearchAction
(I54091) - Dodaje pole opisu dla typów
AppSearch
(I84762) - Wdrożenie interfejsów API zapytań i rankingu do
AppSearch
(I0f6c3) - Usunięcie
getDeletionPropagation
(I21192)
Wersja 1.1.0-alpha03
24 maja 2023 r.
androidx.appsearch:appsearch-*:1.1.0-alpha03
został zwolniony. Wersja 1.1.0-alpha03 zawiera te commity.
Nowe funkcje
- Obsługa zaawansowanego interfejsu API zapytań, zaawansowanego interfejsu API oceny i wyszukiwania numerycznego. (I02d48)
- Dodaje interfejs API
LocalStorage.createGlobalSearchSession
do wyszukiwania we wszystkich bazach danych w pamięci lokalnej pojedynczej aplikacji (Id3c89). - Dodano interfejs API do złączania dokumentów według identyfikatora (Iaecfa).
- Obsługuje wagi właściwości, aby oznaczyć, że niektóre właściwości są ważniejsze podczas korzystania z funkcji
RANKING_STRATEGY_RELEVANCE_SCORING
. (I069b9) - Dodaj Person i
ContactPoint
, aby zapytać o korpus Person wAppSearch
. (Ia58f9) - Dodano nowy typ dokumentu
ImageObject
na wzór http://schema.org/ImageObject. (I6a0c0) - Dodaj tokenizer
VERBATIM
, który umożliwia dodawanie właściwości bez interpretacji przezAppSearch
. (I47bc0) - Dodano
RFC822_TOKENIZATION
jako typ tokena, 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ą
ListenableFuture
i nie mają przyrostka Async. (I0515f) - Dodaje możliwość konfigurowania projekcji na podstawie klasy
Document
. (I94576) - Dodaj pola
Thing
–Alarm
,AlarmInstance
,Timer
,Stopwatch
,StopwatchLap
,ContactPoint
iPerson
(Id876c)
Poprawki błędów
- Pełna obsługa funkcji Androida 13 w appsearch-platform-storage (Ia8e61)
- Rozwiązanie problemów z zastępowaniem nazw schematów i pól prywatnych podczas korzystania z dziedziczenia.
Wersja 1.1.0-alpha02
24 sierpnia 2022 r.
androidx.appsearch:appsearch-*:1.1.0-alpha02
został zwolniony. Wersja 1.1.0-alpha02 zawiera te commity.
Nowe funkcje
- przyspieszenie procesu optymalizacji dzięki zastosowaniu kompresji indeksu zamiast odtwarzania indeksu od początku;
- Zmieniono tag logowania natywnych z „icing” na „AppSearchIcing” i domyślnie rejestrowano komunikaty INFO.
Zmiany w interfejsie API
- Dodaje nowy obiekt
PropertyPath
do pracy z ścieżkami oraz nowe metodyaddProjection
do obsługiPropertyPath
. (I45588) - Dodano typy wbudowane
builtin:Thing
iAppSearch
(I55427). - Zapobieganie pustym nazwom właściwości w
GenericDocument
wcześniej – wcześniej były one blokowane w momencie indeksowania, a teraz są blokowane w momencieGenericDocument.Builder.build()
(I9e780)
Poprawki błędów
- Usunięto niepotrzebne formatowanie ciągów znaków, aby poprawić skuteczność oceniania trafności
- bardziej wydajne pobieranie stron w przypadku nieczytelnych lub usuniętych dokumentów;
- Wdrożenie czyszczenia pamięci dla porzuconych zapytań
- Poprawiono obsługę indeksowania zagnieżdżonego w Dokumentach. Wcześniej funkcja indexNestedProperties była ignorowana. (Iae9a6)
Darowizna zewnętrzna
- Shea Smith: naprawiono obsługę indeksowania zagnieżdżonego w Dokumentach. (Iae9a6)
Wersja 1.1.0-alpha01
15 czerwca 2022 r.
androidx.appsearch:appsearch-*:1.1.0-alpha01
został zwolniony. Wersja 1.1.0-alpha01 została opracowana w ramach prywatnej gałęzi wstępnej wersji i nie zawiera publicznych zatwierdzeń.
Zmiany w interfejsie API
- Wszystkie metody zwracające
ListenableFuture
zostały przemianowane i mają teraz przyrostek Async. Na przykładgetSchema
ma teraz nazwęgetSchemaAsync
. Wcześniejsze wersje zostały wycofane i w przyszłej wersji zostaną usunięte.
Nowe funkcje
- Pierwsza wersja pakietu appsearch-builtin-types. Ten projekt zawiera wbudowane typy oparte na schema.org, które mogą być wygodne dla klientów zamiast definiowania własnych typów dla typowych obiektów. W przyszłych wersjach dodamy więcej typów.
- Możliwość konwertowania dokumentu
AppSearch
na dokumentShortcutInfoCompat
za pomocą narzędziaShortcutAdapter
. Dzięki temu klienci mogą udostępniać dokumentyAppSearch
w Google przy użyciu biblioteki core-google-shortcuts. - Możliwość korzystania z klas
@Document
z dziedziczeniem. Pola nie mogą być zastępowane ani modyfikowane, ale można dodawać nowe pola, rozszerzając klasę oznaczoną adnotacją@Document
. - Nowy interfejs Observer API, który umożliwia klientom rejestrowanie się w celu otrzymywania powiadomień, gdy typy, do których mają dostęp, ulegną zmianie lub gdy dokumenty tego typu zostaną dodane, zmodyfikowane lub usunięte. WAŻNE: obecna implementacja wysyła powiadomienia tylko wtedy, gdy aplikacja jest uruchomiona. Obecnie nie ma możliwości sprawdzenia zmian, które nastąpiły, gdy aplikacja była zatrzymana. W związku z tym nie należy polegać na tym interfejsie API.
- Interfejs Property parser API, który umożliwia pełne przetwarzanie i sprawdzanie ścieżek usług zwracanych przez
MatchInfo#getPropertyPath
. - globalny interfejs API
getById
i globalny interfejs APIgetSchema
do pobierania dokumentów i schematów z innych aplikacji, które udostępniły Ci widoczność. - Możliwość pobierania informacji o widoczności w
getSchema
w przypadku danych, do których masz dostęp - możliwość przyznania widoczności aplikacjom, które mają określone uprawnienia Androida (ograniczone do wąskiego zestawu dozwolonych uprawnień);
- Obsługa metod
isFoo()
w przypadku pól logicznych w procesorze adnotacji (obok poprzedniego obsługiwanego styluhasFoo()
). - Obsługa nowych funkcji chronionych za pomocą
@RequiresFeature
. Aby sprawdzić, co obsługuje bieżący backend, użyjAppSearchSession#getFeatures
. - Usunięcie limitu 13 tys. tokenów na pojedynczy dokument
- zezwalanie na dopasowywanie znaków spoza zestawu ASCII i znaków innych niż alfanumeryczne, np. emotikonów;
Poprawki błędów
- Naprawiono błąd, który powodował niepowodzenie
SetSchema
podczas zastępowania zagnieżdżonego niezgodnego typu. - Poprawki mające na celu pełne obsługiwanie klas z adnotacjami
@AutoValue
używanych jako klasy@Document
AppSearch - Rozwiązania 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ł awarię wyszukiwania prefiksów
- Naprawiono błąd w funkcji
GetStorageInfo
, który powodował zwracanie nieprawidłowych wartości w przypadku niepowodzeń operacji wejścia/wyjścia. - Rozwiązywanie problemów z
BUSADDERR
podczas czytania dokumentu - Naprawianie uszkodzenia pliku logcat spowodowanego wydrukowaniem niesformatowanego odcisku palca
- Naprawianie NPE spowodowanego błędami IO
- Naprawiono wyciek pamięci w usługach
GetSchemaType
,Get
,Delete
,DeleteByNamespace
iDeleteBySchemaType
Wersja 1.0.0
Wersja 1.0.0-alpha04
3 listopada 2021 r.
androidx.appsearch:appsearch-*:1.0.0-alpha04
został zwolniony. Wersja 1.0.0-alpha04 zawiera te commity.
Nowe funkcje
- Zależność od Guava ListenableFuture automatycznie dodana jako zależność od interfejsu API
Zmiany w interfejsie API
- Aby uzyskać więcej informacji o każdym dopasowaniu, dodaj metody SearchResult#getSubmatchRange() i SearchResult#getSubmatch(). (I2fef6)
- Udostępnianie danych według nazwy pakietu i certyfikatu
Poprawki błędów
- Naprawiono błąd powodujący awarię, gdy użytkownik próbuje pobrać strony wyników po zakończeniu zestawu wyników.
- Rozwiązanie problemu z zapytaniem dotyczącym wszystkich przestrzeni nazw, jeśli jako filtry zapytań podano tylko nieprawidłowe przestrzenie nazw
- Rozwiązanie problemu z usuwaniem wszystkich przestrzeni nazw, 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 dokumentu przestawały być indeksowane po pewnym czasie.
- Rozwiązanie problemu, który powodował pomijanie segmentów z liczbami spoza zestawu ASCII podczas tokenizacji
- Dodaliśmy sprawdzanie kolejnych nieudanych prób inicjalizacji, aby pomóc w wyjściu z potencjalnie nieprawidłowego stanu, który uniemożliwia prawidłową inicjalizację.
Wersja 1.0.0-alpha03
21 lipca 2021 r.
androidx.appsearch:appsearch-*:1.0.0-alpha03
został zwolniony. Wersja 1.0.0-alpha03 zawiera te commity.
Nowe funkcje
- wydanie platformy backendowej Platform Storage, aby umożliwić klientom korzystanie z interfejsu AppSearch API w ramach nowej usługi
android.app.appsearch.AppSearchManager
, która zostanie uruchomiona w Androidzie S. Więcej informacji znajdziesz w przewodniku dla programistów AppSearch. - Obsługa procesora adnotacji w AutoValue
- Usunięcie limitu maksymalnego rozmiaru właściwości typu pojedynczy ciąg znaków
- Nowy format pamięci masowej w celu zmniejszenia opóźnienia inicjalizacji
- jednorazowa wewnętrzna migracja danych ze starego formatu na nowy;
Poprawki błędów
- prawidłowo stosuje maksymalny limit dokumentów podczas wstawiania nowych dokumentów,
- Usunięto awarię podczas tworzenia sesji wyszukiwania w aplikacji
- Naprawiono błędy w SetSchema, które nie wykrywały niektórych przypadków niezgodności wstecznej i niezgodności indeksu.
Wersja 1.0.0-alpha02
30 czerwca 2021 r.
Funkcje 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
są dostępne. Wersja 1.0.0-alpha02 zawiera te commity.
Nowe funkcje
- Pełna obsługa języków: chiński, japoński, koreański, tajski
- Zmniejszony rozmiar
androidx.appsearch:appsearch-local-storage
- Usunięcie limitu maksymalnego rozmiaru powtarzających się właściwości
- Zezwalanie na ponowne używanie klas konstruktora
- Ulepszenia w
toString()
niektórych obiektów, które ułatwiają debugowanie - Ulepszenia dokumentacji Javadoc
Zmiany w interfejsie API
- Zmieniono nazwę użytkownika z „
SearchResult#getMatches
” na „SearchResult#getMatchInfos
”. - Zmieniono nazwę użytkownika z „
@Document.Int64Property
” na „@Document.LongProperty
”.
Poprawki błędów
- Ulepszenia i poprawki dotyczące obliczania fragmentów wyników
- Poprawki błędów w inicjalizowaniu sesji wyszukiwania w aplikacji
Wersja 1.0.0-alpha01
5 maja 2021 roku
Funkcje 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
są dostępne. Wersja 1.0.0-alpha01 zawiera te commity.
Nowe funkcje
AppSearch to biblioteka wyszukiwania służąca do zarządzania lokalnie przechowywanymi uporządkowanymi danymi. Zawiera interfejsy API do indeksowania danych i ich pobierania za pomocą wyszukiwania pełnego tekstu. Używaj go do tworzenia niestandardowych funkcji wyszukiwania w aplikacji dla użytkowników. Ta pierwsza wersja to 1.0.0-alpha01
.