AppSearch
| Последнее обновление | Стабильный релиз | Кандидат на релиз | Бета-релиз | Альфа-релиз | 
|---|---|---|---|---|
| 2 июля 2025 г. | 1.1.0 | - | - | - | 
Объявление зависимостей
Чтобы добавить зависимость от AppSearch, необходимо добавить репозиторий Google Maven в свой проект. Прочитайте репозиторий Google Maven для получения дополнительной информации.
 Добавьте зависимости для необходимых артефактов в файл build.gradle для вашего приложения или модуля:
классный
dependencies { def appsearch_version = "1.1.0" 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" // PlayServicesStorage is compatible with all devices that support Google Play Services on // all API levels. It offers the same features as PlatformStorage and is the recommended // solution for lower API levels on which PlatformStorage is not supported. implementation "androidx.appsearch:appsearch-play-services-storage:$appsearch_version" }
Котлин
dependencies { val appsearch_version = "1.1.0" 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") // PlayServicesStorage is compatible with all devices that support Google Play Services on // all API levels. It offers the same features as PlatformStorage and is the recommended // solution for lower API levels on which PlatformStorage is not supported. implementation("androidx.appsearch:appsearch-play-services-storage:$appsearch_version") }
Дополнительную информацию о зависимостях см. в разделе Добавление зависимостей сборки .
Обратная связь
Ваши отзывы помогают сделать Jetpack лучше. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.
Более подробную информацию смотрите в документации Issue Tracker .
Версия 1.1
Версия 1.1.0
2 июля 2025 г.
 Выпущен androidx.appsearch:appsearch-*:1.1.0 . Версия 1.1.0 содержит эти коммиты .
Версия 1.1.0-rc01
20 мая 2025 г.
 Выпущен androidx.appsearch:appsearch-*:1.1.0-rc01 . Версия 1.1.0-rc01 содержит эти коммиты .
Новые возможности
-  Модуль AppSearchвходит в RC.
-  Добавляет новый экспериментальный API для накопления действий для метода PutDocumentsRequest#addTakenAction( I7b726 )
-  Добавить SearchResult#TextMatchInfo,SearchResult#EmbeddingMatchInfo; реструктурироватьSearchResult#MatchInfoдля предоставления информации о совпадениях для встраиваний ( I8f78d )
- Ввести функции ранжирования для манипулирования списками ( Ifa4ab )
Изменения API
-  Поддержка процессора аннотаций AppSearchдля свойства дескриптора двоичного двоичного объекта. ( I9520b )
-  Обновите процессор аннотаций AppSearchдля поддержки квантования. ( Ie0c85 )
-  Добавляет статический метод getFeatures()кPlatformStorageиLocalStorage( I5a206 )
Исправление ошибок
- Эта библиотека теперь использует аннотации nullness JSpecify , которые являются type-use. Разработчики Kotlin должны использовать следующие аргументы компилятора для обеспечения правильного использования: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode ( I91f42 , b/326456246 )
Версия 1.1.0-beta01
15 января 2025 г.
 Выпущен androidx.appsearch:appsearch-*:1.1.0-beta01 . Версия 1.1.0-beta01 содержит эти коммиты .
Новые возможности
-  Модуль AppSearchпереходит в стадию бета-тестирования.
Изменения API
-  Отключить экспериментальный API распространения удаления AppSearchиз-за проблем со стабильностью. ( Iea386 )
-  Создать API GlobalSearchApplicationInfo, экспериментальный и необязательный способ для производителей и потребителей указывать интерес к определенным типам. ( I116fd )
- Незначительные изменения в экспериментальных API AST (конструктор запросов) ( Ibd852 )
Исправление ошибок
-  Эта библиотека теперь использует аннотации nullness JSpecify , которые являются type-use. Разработчики Kotlin должны использовать следующий аргумент компилятора для обеспечения правильного использования: -Xjspecify-annotations=strict(это значение по умолчанию, начиная с версии 2.1.0 компилятора Kotlin). ( Ic2976 , b/326456246 )
-  Добавляет требуемое разрешение для searchPersonCorpus( I4431d )
Версия 1.1.0-альфа07
11 декабря 2024 г.
 Выпущен androidx.appsearch:appsearch-*:1.1.0-alpha07 . Версия 1.1.0-alpha07 содержит эти коммиты .
Новые возможности
-  Добавьте аннотацию ExperimentalAppSearchApiк новым поверхностям API, которые еще не стабилизировались. ( Ib09f4 )
-  Поддержка эффективного хранения и совместного использования двоичных данных BLOB-объектов с помощью AppSearchSession#openBlobForWriteAsyncи связанных методов
-  Поддержка фильтрации результатов запроса путем оценки выражения с помощью функции matchScoreExpression( Id525a )
- Поддержка распространения удаления из родительского документа на дочерние документы. ( Ia032d )
- Поддержка API квантования встраивания для повышения производительности встраивания с небольшой потерей качества. ( Id8a07 )
-  Поддержка ограничения поиска определенными документами с помощью API addFilterDocumentIdsвSearchSpec. ( I7c6f1 )
Изменения API
-  Переместить информацию о родительском типе из GenericDocumentвSearchResult. ( I34a1d )
-  Поддержка новых типов действий в API TakenAction, включаяDismissActionиImpressionAction. ( I0c6c7 )
-  Добавлена новая встроенная схема AppSearch WebPage. ( I28127 )
Версия 1.1.0-альфа06
16 октября 2024 г.
 Выпущен androidx.appsearch:appsearch-*:1.1.0-alpha06 . Версия 1.1.0-alpha06 содержит эти коммиты .
Изменения API
-  Добавлен узел, представляющий функцию запроса PropertyDefined. ( I1aeaf )
- Добавьте узлы для представления числового поиска и ограничения свойств. ( I963a9 )
-  Добавьте узел, представляющий функцию запроса GetSearchStringParameter. ( I4f99b )
-  Добавьте узел, представляющий функцию запроса HasProperty. ( I9c1c5 )
- Добавлен интерфейс для реализации функций в AST. ( I9d42e )
- Добавьте операторы И и ИЛИ. ( Iaa442 )
-  Добавить NegationNodeдля представления логического отрицания запросов в AST. ( Ia855a )
-  Добавьте интерфейс Node в AppSearchдля определения узлов. ( If42fb )
-  Добавляет аннотацию экспериментального API для AppSearch. ( I3e57c )
Исправление ошибок
-  Добавьте TextNodesдля хранения терминов. ( Iefd02 )
Исправление безопасности
-  С этого изменения androidx компилируется с protobuf 4.28.2 для устранения CVE-2024-7254 . Обновите свою зависимость от androidx.appsearch:appsearch-external-protobufдо последней версии 1.1.0-alpha06 для устранения риска уязвимости.
Версия 1.1.0-альфа05
4 сентября 2024 г.
 Выпущен androidx.appsearch:appsearch-*:1.1.0-alpha05 . Версия 1.1.0-alpha05 содержит эти коммиты .
Изменения API
-  Удаляет ненужные setEmbeddingSearchEnabledиgetEmbeddingSearchEnabled. УдаляетsetListFilterTokenizeFunctionEnabledиgetListFilterTokenizeFunctionEnabled. Удаляет функцию запроса 'tokenize'. Заменена на функцию запросаgetSearchStringParameterи функциюaddSearchStringParameter. ( I09f5a )
-  Переименуйте Alarm#getComputingDeviceвgetOriginatingDevice. ( I63121 )
Версия 1.1.0-альфа04
7 августа 2024 г.
 Выпущен androidx.appsearch:appsearch-*:1.1.0-alpha04 . Версия 1.1.0-alpha04 содержит эти коммиты .
Новые возможности
-  Поддержка новой реализации PlayServicesStorage, которая позволяет использоватьAppSearchна старых устройствах без значительных затрат на размер apkLocalStorage. Эта реализация хранилища работает путем хранения данных приложений в приложении Play Services.
- Поддержка новых API на устройствах под управлением Android 15.
- Поддержка поиска в базе данных путем внедрения векторов, что позволяет выполнять нечеткое сопоставление. ( I2b41b )
-  Поддержка родительских типов и полиморфизма в модели схемы AppSearch. ( I06118 )
-  Поддержка API TakenAction, который позволяет приложениям сообщать о переходах по результатам поиска или отказе от них, что повышает качество последующих поисков. ( I54091 )
-  Поддержка классов с построителями в процессоре аннотаций путем введения новой аннотации @Document.BuilderProducer. ( Iec30a )
- Поддержка более точного контроля над тем, какие свойства вложенного документа индексируются. ( Iec30a )
- Поддержка фильтрации поиска по определенным свойствам документа. ( Ib2659 )
- Поддерживать более детальные настройки видимости, разрешая использование ИЛИ и И для настроек видимости. ( I0274b )
- Поддержка предоставления видимости данных всем приложениям, которые могут видеть существование приложения-владельца (публичная видимость). ( I992e4 )
- Поддержка извлечения только тех результатов, которые содержат данные, содержащиеся в определенном свойстве. ( I7d94f )
- Поддержка извлечения корпоративных контактов в личном профиле. ( Idd587 )
Изменения API
-  Добавьте параметры аннотации indexableNestedPropertiesListиinheritIndexableNestedPropertiesFromSuperclassв аннотациюDocument.DocumentPropertyAppSearch, чтобы разрешить индексацию определенных вложенных путей свойств. ( Iec30a )
-  Поддержка конструктора строителя для создания экземпляров строителя в процессоре аннотаций AppSearch( I265c9 )
-  Обновление процессора аннотаций AppSearchдля поддержки установки родительских типов для полиморфизма ( I06118 )
-  Добавляет метод GetSchemaRequestдля очистки настроек видимости ( I38379 )
-  Поддержка addParentTypeв AppSearch для полиморфизма ( Ida14a )
- Добавить API для дополнительных выражений ранжирования ( I5d9f4 )
-  Добавить API SearchAction( I54091 )
-  Добавляет поле описания для типов AppSearch( I84762 )
-  Встроенные API поисковых запросов и ранжирования в AppSearch( I0f6c3 )
-  Удаляет getDeletionPropagation( I21192 )
Версия 1.1.0-альфа03
24 мая 2023 г.
 Выпущен androidx.appsearch:appsearch-*:1.1.0-alpha03 . Версия 1.1.0-alpha03 содержит эти коммиты.
Новые возможности
- Поддержка API расширенных запросов, API расширенной оценки и числового поиска. ( I02d48 )
-  Добавляет API LocalStorage.createGlobalSearchSessionдля поиска по всем базам данных в локальном хранилище одного приложения. ( Id3c89 )
- Добавлен API для объединения документов по идентификатору ( Iaecfa )
-  Поддержка весов свойств для обозначения определенных свойств, которые более важны при использовании RANKING_STRATEGY_RELEVANCE_SCORING. ( I069b9 )
-  Добавьте Person и ContactPointдля запроса корпуса Person вAppSearch. ( Ia58f9 )
-  Добавлен новый тип документа ImageObject, созданный по образцу http://schema.org/ImageObject. ( I6a0c0 )
-  Добавить токенизатор VERBATIM, который позволяет добавлять свойства без интерпретацииAppSearch. ( I47bc0 )
-  Добавлен RFC822_TOKENIZATIONв качестве типа токенизатора, позволяющий токенизировать адреса электронной почты. ( I8a390 )
- Включить глобальный поиск в представлении отладки. ( I51fb2 )
Изменения API
-  Удалены методы, возвращающие ListenableFutureи не имеющие суффикса Async. ( I0515f )
-  Добавляет возможность настраивать проекции по классу Document. ( I94576 )
-  Добавьте поля из ThingвAlarm,AlarmInstance,Timer,Stopwatch,StopwatchLap,ContactPointиPerson( Id876c )
Исправление ошибок
- Полная поддержка функций Android 13 в appsearch-platform-storage ( Ia8e61 )
- Исправлены проблемы с переопределением имен схем и закрытых полей при использовании наследования.
Версия 1.1.0-альфа02
24 августа 2022 г.
 Выпущен androidx.appsearch:appsearch-*:1.1.0-alpha02 . Версия 1.1.0-alpha02 содержит эти коммиты.
Новые возможности
- Ускоренный процесс оптимизации с использованием сжатия индекса вместо перестроения индекса с нуля
- Изменен собственный тег ведения журнала с «icing» на «AppSearchIcing», по умолчанию регистрируются сообщения INFO.
Изменения API
-  Добавляет новый объект PropertyPathдля работы с путями и новые методыaddProjectionдля принятияPropertyPath. ( I45588 )
-  Добавлен builtin:Thingво встроенные типыAppSearch( I55427 )
-  Предотвращать пустые имена свойств в GenericDocumentраньше — раньше они предотвращались во время индексации, теперь они предотвращаются во времяGenericDocument.Builder.build()( I9e780 )
Исправление ошибок
- Удалено ненужное форматирование строк для улучшения производительности оценки РЕЛЕВАНТНОСТИ
- Более эффективная навигация по страницам при обнаружении нечитаемых или удаленных документов.
- Реализована сборка мусора для заброшенных запросов.
- Исправлена поддержка вложенной индексации для документов. Ранее indexNestedProperties игнорировался. ( Iae9a6 )
Внешний вклад
- Ши Смит: Исправлена поддержка вложенной индексации для документов. ( Iae9a6 )
Версия 1.1.0-альфа01
15 июня 2022 г.
 Выпущен androidx.appsearch:appsearch-*:1.1.0-alpha01 . Версия 1.1.0-alpha01 была разработана в закрытой предрелизной ветке и не имеет публичных коммитов.
Изменения API
-  Все методы, возвращающие ListenableFuture, были переименованы и теперь имеют суффикс Async. Например,getSchemaбыл переименован вgetSchemaAsync. Предыдущие версии устарели и будут удалены в будущем выпуске.
Новые возможности
- Первый выпуск appsearch-builtin-types. Этот проект содержит несколько встроенных типов на основе schema.org, которые клиенты могут счесть удобными для использования вместо определения собственных типов для общих объектов. В будущих выпусках будет добавлено больше типов.
-  Возможность использовать ShortcutAdapterдля преобразования документаAppSearchвShortcutInfoCompat. Это дает клиентам возможность делиться документамиAppSearchс Google с помощью библиотеки core-google-shortcuts
-  Возможность использования наследования с классами @Document. Поля не могут быть заменены или изменены, но новые поля могут быть добавлены путем расширения класса, аннотированного@Document.
- Новый API Observer, который позволяет клиентам регистрироваться для получения уведомлений, когда типы, к которым у них есть доступ, изменились или когда документы этих типов были добавлены, изменены или удалены. ВАЖНО: Текущая реализация доставляет уведомления только тогда, когда ваше приложение запущено. В настоящее время нет способа проверить изменения, которые произошли, пока ваше приложение было остановлено. Соответственно, вам не следует полагаться на этот API для полноты.
-  API анализатора свойств, который позволяет полностью обрабатывать и проверять пути свойств, возвращаемые MatchInfo#getPropertyPath.
-  Глобальный API getByIdиgetSchemaдля извлечения документов и схем из других приложений, которые предоставили вам видимость.
-  Возможность извлечения информации о видимости в getSchemaдля данных, к которым у вас есть доступ
- Возможность предоставления видимости приложениям, имеющим определенное разрешение Android (ограниченное узким набором разрешений из списка разрешений)
-  Поддержка геттеров в стиле isFoo()для логических полей в процессоре аннотаций в дополнение к предыдущему поддерживаемому стилюhasFoo()
-  Поддержка новых функций защищена @RequiresFeature. ИспользуйтеAppSearchSession#getFeaturesчтобы определить, что поддерживает текущий бэкэнд.
- Убрать ограничение в ~13 тыс. токенов для отдельных документов
- Разрешить сопоставление не-ASCII+не-буквенно-цифровых символов, таких как эмодзи
Исправление ошибок
-  Исправлена ошибка, приводившая к сбою SetSchemaпри переопределении вложенного несовместимого типа.
-  Исправления для полной поддержки классов с аннотацией @AutoValue, используемых в качестве классов AppSearch@Document
- Исправлены некоторые сбои, связанные с повторяющимися списками классов документов и другими проблемами.
- Исправлена ошибка, которая приводила к сбою поиска префикса при определенных обстоятельствах.
-  Исправлена незначительная ошибка в GetStorageInfo, из-за которой возвращались неверные значения при возникновении сбоев ввода-вывода.
-  Исправление проблем BUSADDERRпри чтении документа
- Исправление повреждения logcat, вызванного печатью неформатированного отпечатка пальца.
- Исправление NPE, вызванных сбоями ввода-вывода
-  Исправлена утечка памяти в GetSchemaType,Get,Delete,DeleteByNamespaceиDeleteBySchemaType
Версия 1.0.0
Версия 1.0.0-альфа04
3 ноября 2021 г.
 Выпущен androidx.appsearch:appsearch-*:1.0.0-alpha04 . Версия 1.0.0-alpha04 содержит эти коммиты.
Новые возможности
- Зависимость Guava ListenableFuture автоматически добавляется как зависимость API
Изменения API
- Добавьте SearchResult#getSubmatchRange() и SearchResult#getSubmatch(), чтобы предоставить больше информации о каждом совпадении. ( I2fef6 )
- Уточнение документации по созданию отпечатков PackageIdentifier для обмена данными по имени пакета+сертификат
Исправление ошибок
- Исправлен сбой, если пользователь пытается получить страницы результатов после окончания набора результатов.
- Исправлена проблема со всеми пространствами имен, запрашиваемыми, если в качестве фильтров запроса были указаны только недействительные пространства имен.
- Исправлена проблема с удалением всех пространств имен, если в качестве фильтров удаления по запросу были указаны только недействительные пространства имен.
- Исправлена ошибка, из-за которой данные документа переставали индексироваться после определенного момента для очень больших документов.
- Исправлена ошибка, из-за которой при токенизации удалялись сегменты с цифровыми символами, не входящими в набор ASCII.
- Добавьте проверку последовательных неудачных попыток инициализации, чтобы помочь выйти из потенциально неисправного состояния, препятствующего успешной инициализации.
Версия 1.0.0-альфа03
21 июля 2021 г.
 Выпущен androidx.appsearch:appsearch-*:1.0.0-alpha03 . Версия 1.0.0-alpha03 содержит эти коммиты.
Новые возможности
-  Выпуск Platform Storage Backend, позволяющий клиентам использовать API AppSearch с новым сервисом android.app.appsearch.AppSearchManager, запущенным в Android S. Для получения более подробной информации посетите Руководство разработчика AppSearch.
- Поддержка процессора аннотаций для AutoValue
- Удаление ограничения максимального размера свойства одной строки
- Новый формат хранения для сокращения задержки инициализации
- Единовременная внутренняя миграция данных из старого формата хранения в новый формат хранения
Исправление ошибок
- Правильно применяет максимальный лимит документов при вставке новых документов.
- Исправлен сбой при создании AppSearchSession.
- Исправлены ошибки в SetSchema, из-за которых не обнаруживались некоторые случаи обратной несовместимости и несовместимости индексов.
Версия 1.0.0-альфа02
30 июня 2021 г.
 Выпущены androidx.appsearch:appsearch:1.0.0-alpha02 , androidx.appsearch:appsearch-compiler:1.0.0-alpha02 и androidx.appsearch:appsearch-local-storage:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит эти коммиты.
Новые возможности
- Полная поддержка китайского/японского/корейского/тайского языков
-  Уменьшен размер androidx.appsearch:appsearch-local-storage
- Удаление ограничения максимального размера повторяющихся свойств
- Разрешить повторное использование классов конструктора
-  Улучшения в toString()некоторых объектов для упрощения отладки
- Улучшения документации Javadoc
Изменения API
-  SearchResult#getMatchesпереименован вSearchResult#getMatchInfos
-  @Document.Int64Propertyпереименован в@Document.LongProperty
Исправление ошибок
- Улучшения и исправления в вычислении фрагментов результатов
- Исправления ошибок в инициализации AppSearchSession
Версия 1.0.0-альфа01
5 мая 2021 г.
 Выпущены androidx.appsearch:appsearch:1.0.0-alpha01 , androidx.appsearch:appsearch-compiler:1.0.0-alpha01 и androidx.appsearch:appsearch-local-storage:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит эти коммиты.
Новые возможности
 AppSearch — это поисковая библиотека для управления локально хранимыми структурированными данными с API для индексации данных и извлечения данных с помощью полнотекстового поиска. Используйте ее для создания пользовательских возможностей поиска в приложении для ваших пользователей. Первоначальный выпуск — 1.0.0-alpha01 .
