AppSearch
Последнее обновление | Стабильный релиз | Кандидат на релиз | Бета-релиз | Альфа-релиз |
---|---|---|---|---|
20 мая 2025 г. | - | 1.1.0-rc01 | - | - |
Объявление зависимостей
Чтобы добавить зависимость от AppSearch, необходимо добавить репозиторий Google Maven в свой проект. Прочитайте репозиторий Google Maven для получения дополнительной информации.
Добавьте зависимости для необходимых артефактов в файл build.gradle
для вашего приложения или модуля:
классный
dependencies { def appsearch_version = "1.1.0-rc01" 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-rc01" 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-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.DocumentProperty
AppSearch, чтобы разрешить индексацию определенных вложенных путей свойств. ( 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
.