AppSearch

AppSearch는 전체 텍스트 검색으로 데이터 색인을 생성하고 데이터를 검색하는 API를 사용하여 로컬에 저장된 구조화된 데이터를 관리하는 기기 전용 검색 라이브러리입니다. 사용자를 위한 맞춤 인앱 검색 기능을 빌드하는 데 사용합니다.
최근 업데이트 공개 버전 출시 후보 베타 버전 알파 버전
2022년 6월 15일 - - - 1.1.0-alpha01

종속 항목 선언

AppSearch의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용은 Google Maven 저장소를 읽어보세요.

다음과 같이 앱 또는 모듈의 build.gradle 파일에 필요한 아티팩트의 종속 항목을 추가합니다.

Groovy

dependencies {
    def appsearch_version = "1.1.0-alpha01"

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

    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을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.

새로운 문제 제출하기

자세한 내용은 Issue Tracker 문서를 참고하세요.

버전 1.1

버전 1.1.0-alpha01

2022년 6월 15일

androidx.appsearch:appsearch-*:1.1.0-alpha01이 출시되었습니다. 버전 1.1.0-alpha01은 비공개 출시 전 브랜치에서 개발되었으며 공개 커밋이 없습니다.

API 변경사항

  • ListenableFuture를 반환하는 모든 메서드의 이름에 Async 접미사가 붙도록 바뀌었습니다. 예를 들어 getSchema의 이름은 getSchemaAsync로 바뀌었습니다. 이전 버전은 지원 중단되었으며 향후 출시에서 삭제될 예정입니다.

새로운 기능

  • appsearch-built-types의 첫 번째 버전. 이 프로젝트에는 schema.org 기반의 몇 가지 기본 유형이 포함되어 있어 클라이언트가 공통 객체를 위한 자체 유형을 정의하는 대신 편리하게 사용할 수 있습니다. 향후 버전에는 더 많은 유형이 추가될 예정입니다.
  • ShortcutAdapter를 사용하여 AppSearch 문서를 ShortcutInfoCompat으로 변환하는 기능. 이렇게 하면 클라이언트가 core-google-shortcuts 라이브러리를 사용하여 AppSearch 문서를 Google에 공유할 수 있습니다.
  • @Document 클래스로 상속을 사용하는 기능. 필드를 교체하거나 수정할 수는 없지만, @Document 주석이 달린 클래스를 확장하여 새 필드를 추가할 수 있습니다.
  • 클라이언트가 액세스할 수 있는 유형이 변경되었거나 이러한 유형의 문서가 추가, 수정 또는 삭제될 때 알림을 등록할 수 있는 새로운 Observer API. 중요: 현재 구현에서는 앱이 실행 중일 때만 알림을 전달합니다. 현재로서는 앱이 중지된 동안 발생한 변경사항을 검사할 수 있는 방법이 없습니다. 따라서 완전성을 위해 이 API를 사용해서는 안 됩니다.
  • MatchInfo#getPropertyPath에서 반환한 속성 경로를 완전히 처리하고 검사할 수 있는 속성 파서 API
  • 보기 권한을 부여한 다른 앱의 문서와 스키마를 가져올 수 있는 전역 getById 및 전역 getSchema API
  • 액세스할 수 있는 데이터의 공개 상태 정보를 getSchema로 가져오는 기능
  • 특정 Android 권한을 보유한 앱에 공개 상태를 부여하는 기능(허용 목록에 있는 일부 권한으로 제한)
  • 이전에 지원되던 hasFoo() 스타일 외에 주석 프로세서의 불리언 필드를 위한 isFoo() 스타일의 getter 지원
  • @RequiresFeature로 보호되는 새로운 기능 지원. AppSearchSession#getFeatures를 사용하여 현재 백엔드에서 지원하는 항목을 확인할 수 있습니다.
  • 개별 문서의 13,000개 토큰 한도 삭제
  • ASCII가 아닌 문자 및 영숫자가 아닌 문자(예: 그림 이모티콘)에 매칭 허용

버그 수정

  • 호환되지 않는 중첩된 유형을 재정의할 때 SetSchema에 실패하는 버그를 수정했습니다.
  • AppSearch @Document 클래스로 사용되고 있는 @AutoValue 주석이 달린 클래스를 완전히 지원하도록 수정했습니다.
  • Document 클래스의 반복되는 목록 및 기타 문제와 관련된 일부 비정상 종료 문제를 수정했습니다.
  • 특정 상황에서 접두어 검색이 다운되는 버그를 수정했습니다.
  • GetStorageInfo에서 IO 실패가 발생했을 때 잘못된 값을 반환하는 일부 버그를 수정했습니다.
  • 문서를 읽을 때 발생하던 BUSADDERR 오류를 수정했습니다.
  • 형식이 지정되지 않은 지문 인쇄로 인해 발생하는 Logcat 손상을 수정했습니다.
  • IO 실패로 인한 NPE 문제를 수정했습니다.
  • GetSchemaType, Get, Delete, DeleteByNamespace, DeleteBySchemaType의 메모리 누수를 수정했습니다.

버전 1.0.0

버전 1.0.0-alpha04

2021년 11월 3일

androidx.appsearch:appsearch-*:1.0.0-alpha04가 출시되었습니다. 버전 1.0.0-alpha04에 포함된 커밋을 확인하세요.

새로운 기능

  • Guava ListenableFuture 종속 항목을 자동으로 API 종속 항목으로 가져옵니다.

API 변경사항

  • 각각의 일치 항목에 관한 자세한 정보를 제공하는 SearchResult#getSubmatchRange()와 SearchResult#getSubmatch()를 추가했습니다. (I2fef6)
  • 패키지 이름과 인증서별로 데이터를 공유하기 위한 PackageIdentifier 지문 생성 방법을 명확하게 문서화했습니다.

버그 수정

  • 결과 집합이 끝난 후에 사용자가 결과 페이지를 가져오려고 하면 발생하는 비정상 종료 문제를 수정했습니다.
  • 잘못된 네임스페이스만 쿼리 필터로 제공된 경우 모든 네임스페이스를 쿼리하는 문제를 수정했습니다.
  • 잘못된 네임스페이스만 remove-by-query filtersLo로 제공된 경우 모든 네임스페이스가 삭제되는 문제를 수정했습니다.
  • 대용량 문서에서 특정 지점 이후 문서 데이터의 색인 생성이 중지되는 문제를 수정했습니다.
  • 토큰화할 때 ASCII가 아닌 숫자가 포함된 세그먼트가 누락되는 문제를 수정했습니다.
  • 초기화를 방해하는 잠재적 불량 상태를 해결하기 위해 초기화 시도가 연속 실패할 때 실행되는 검사를 추가합니다.

버전 1.0.0-alpha03

2021년 7월 21일

androidx.appsearch:appsearch-*:1.0.0-alpha03이 출시되었습니다. 버전 1.0.0-alpha03에 포함된 커밋을 확인하세요.

새로운 기능

  • 클라이언트가 Android S에서 출시되는 새로운 android.app.appsearch.AppSearchManager 서비스와 함께 AppSearch API를 사용할 수 있도록 플랫폼 저장소 백엔드가 출시되었습니다. 자세한 내용은 AppSearch 개발자 가이드를 참고하세요.
  • AutoValue에 주석 프로세서를 지원합니다.
  • 단일 문자열 속성의 최대 크기 제한을 삭제했습니다.
  • 초기화 지연 시간을 줄이기 위한 새로운 저장 형식을 제공합니다.
  • 이전 저장 형식에서 새 저장 형식으로의 일회성 내부 데이터를 이전했습니다.

버그 수정

  • 새 문서 삽입 시 최대 문서 한도가 정확하게 적용됩니다.
  • AppSearchSession 생성 중 발생하는 비정상 종료 문제가 해결되었습니다.
  • SetSchema에서 이전 버전과의 비호환성 및 색인 비호환성을 일부 감지하지 못하는 버그를 수정했습니다.

버전 1.0.0-alpha02

2021년 6월 30일

androidx.appsearch:appsearch:1.0.0-alpha02, androidx.appsearch:appsearch-compiler:1.0.0-alpha02androidx.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-alpha01

2021년 5월 5일

androidx.appsearch:appsearch:1.0.0-alpha01, androidx.appsearch:appsearch-compiler:1.0.0-alpha01androidx.appsearch:appsearch-local-storage:1.0.0-alpha01이 출시되었습니다. 버전 1.0.0-alpha01에 포함된 커밋을 확인하세요.

새로운 기능

AppSearch는 전체 텍스트 검색을 통해 데이터 색인을 생성하고 데이터를 검색하는 API를 사용하여 로컬에 저장된 구조화된 데이터를 관리하는 검색 라이브러리입니다. 사용자를 위한 맞춤 인앱 검색 기능을 빌드하는 데 사용합니다. 최초 출시 버전은 1.0.0-alpha01입니다.