Поиск приложений

AppSearch — это встроенная в устройство библиотека поиска для управления локально хранящимися структурированными данными с API-интерфейсами для индексации данных и получения данных с помощью полнотекстового поиска. Используйте его, чтобы создать собственные возможности поиска в приложении для ваших пользователей.
Последнее обновление Стабильный выпуск Кандидат на выпуск Бета-версия Альфа-релиз
11 декабря 2024 г. - - - 1.1.0-альфа07

Объявление зависимостей

Чтобы добавить зависимость от AppSearch, вам необходимо добавить в свой проект репозиторий Google Maven. Для получения дополнительной информации прочтите репозиторий Google Maven .

Добавьте зависимости для нужных вам артефактов в файл build.gradle для вашего приложения или модуля:

классный

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

Котлин

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

Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .

Обратная связь

Ваши отзывы помогают сделать Jetpack лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.

Создать новую задачу

Дополнительную информацию см . в документации по системе отслеживания проблем .

Версия 1.1

Версия 1.1.0-альфа07

11 декабря 2024 г.

Выпущен androidx.appsearch:appsearch-*:1.1.0-alpha07 . Версия 1.1.0-alpha07 содержит эти коммиты .

Новые возможности

  • Добавьте аннотацию ExperimentalAppSearchApi к новым поверхностям API, которые еще не стабилизировались. ( Ib09f4 )
  • Поддержка эффективного хранения и совместного использования двоичных данных больших двоичных объектов с помощью 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. ( Я855а )
  • Добавьте интерфейс Node в AppSearch для определения узлов. ( Если42фб )
  • Добавляет аннотацию экспериментального 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 . Удалена функция запроса «токенизировать». Заменено функцией запроса 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 на старых устройствах без значительных затрат на размер APK LocalStorage . Эта реализация хранилища работает путем хранения данных приложения в приложении Play Services.
  • Поддержка новых API на устройствах под управлением Android 15.
  • Поддержка поиска в базе данных путем встраивания векторов, обеспечивающего нечеткое сопоставление. ( I2b41b )
  • Поддержка родительских типов и полиморфизма в модели схемы AppSearch . ( I06118 )
  • Поддержите API TakenAction , который позволяет приложениям сообщать, когда результаты были нажаты или отменены, для повышения качества при последующих поисках. ( I54091 )
  • Поддержите классы с помощью построителей в обработчике аннотаций, представив новую аннотацию @Document.BuilderProducer . ( МЭК30а )
  • Поддержка более детального контроля над тем, какие свойства вложенного документа индексируются. ( МЭК30а )
  • Поддержка фильтрации поиска по определенным свойствам документа. ( Ib2659 )
  • Поддержите более детальные настройки видимости, разрешив ИЛИ и И для настроек видимости. ( I0274b )
  • Поддержка предоставления видимости данных всем приложениям, которые могут видеть существование приложения-владельца (публичная видимость). ( I992e4 )
  • Поддержка получения только результатов, данные которых заполнены в определенном свойстве. ( I7d94f )
  • Поддержка получения контактов предприятия в личном профиле. ( Idd587 )

Изменения API

  • Добавьте параметры аннотации indexableNestedPropertiesList и inheritIndexableNestedPropertiesFromSuperclass в аннотацию Document.DocumentProperty AppSearch, чтобы разрешить индексирование определенных путей вложенных свойств. ( МЭК30а )
  • Поддержка конструктора построителя для создания экземпляров построителя в обработчике аннотаций 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 в хранилище приложений ( 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. Этот проект содержит несколько встроенных типов на основе 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 содержит эти коммиты.

Новые возможности

  • Выпуск серверной части хранилища платформы, позволяющей клиентам использовать 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 .