AppSearch

AppSearch là một thư viện tìm kiếm trên thiết bị để quản lý dữ liệu có cấu trúc được lưu trữ cục bộ, kèm theo các API để lập chỉ mục dữ liệu và truy xuất dữ liệu bằng phương thức tìm kiếm toàn bộ văn bản. Bạn có thể sử dụng thư viện này để xây dựng chức năng tìm kiếm tuỳ chỉnh trong ứng dụng cho người dùng.
Bản cập nhật mới nhất Bản phát hành ổn định Bản phát hành dùng thử Bản phát hành beta Bản phát hành alpha
Ngày 24 tháng 8 năm 2022 - - - 1.1.0-alpha02

Khai báo phần phụ thuộc

Để thêm một phần phụ thuộc trên AppSearch, bạn phải thêm kho lưu trữ Google Maven vào dự án. Hãy đọc bài viết Kho lưu trữ Maven của Google để biết thêm thông tin.

Thêm các phần phụ thuộc cho cấu phần phần mềm bạn cần trong tệp build.gradle cho ứng dụng hoặc mô-đun của mình:

Groovy

dependencies {
    def appsearch_version = "1.1.0-alpha02"

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

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

Để biết thêm thông tin về các phần phụ thuộc, hãy xem nội dung Thêm phần phụ thuộc cho bản dựng.

Ý kiến phản hồi

Ý kiến phản hồi của bạn có thể giúp chúng tôi cải thiện Jetpack. Hãy cho chúng tôi biết nếu bạn phát hiện lỗi mới hoặc có ý tưởng cải thiện thư viện này. Vui lòng xem các lỗi hiện có trong thư viện này trước khi báo một lỗi mới. Bạn có thể thêm lượt bình chọn cho lỗi hiện có bằng cách nhấp vào nút dấu sao.

Báo lỗi mới

Xem tài liệu về Công cụ theo dõi lỗi để biết thêm thông tin.

Phiên bản 1.1

Phiên bản 1.1.0-alpha02

Ngày 24 tháng 8 năm 2022

Phát hành androidx.appsearch:appsearch-*:1.1.0-alpha02. Phiên bản 1.1.0-alpha02 bao gồm các thay đổi sau.

Tính năng mới

  • Tăng tốc quy trình của Optimize bằng cách sử dụng tính năng nén chỉ mục thay vì tạo lại chỉ mục từ đầu
  • Thay đổi thẻ ghi nhật ký gốc từ "icing" thành "AppSearchIcing", các thông báo INFO được ghi theo mặc định

Thay đổi về API

  • Thêm đối tượng PropertyPath mới để xử lý các đường dẫn cũng như thêm các phương thức addProjection mới để chấp nhận PropertyPath. (I45588)
  • Thêm builtin:Thing vào loại tích hợp AppSearch (I55427)
  • Chặn sớm các tên thuộc tính trống trong GenericDocument. Trước đây, các tên thuộc tính này bị chặn tại thời điểm lập chỉ mục; giờ đây, chúng sẽ bị chặn tại thời điểm GenericDocument.Builder.build() (I9e780)

Sửa lỗi

  • Xoá định dạng chuỗi không cần thiết để cải thiện hiệu suất tính điểm RELEVANCE
  • Phân trang hiệu quả hơn khi gặp tài liệu không đọc được hoặc đã bị xoá
  • Thực hiện thu gom rác cho những truy vấn bị bỏ qua
  • Khắc phục tính năng hỗ trợ lập chỉ mục được lồng ghép cho Tài liệu. Trước đây, indexNestedProperties bị bỏ qua. (Iae9a6)

Đóng góp bên ngoài

  • Shea Smith: Khắc phục tính năng hỗ trợ lập chỉ mục được lồng ghép cho Tài liệu. (Iae9a6)

Phiên bản 1.1.0-alpha01

Ngày 15 tháng 6 năm 2022

Phát hành androidx.appsearch:appsearch-*:1.1.0-alpha01. Phiên bản 1.1.0-alpha01 được phát triển trong một nhánh phát hành riêng trước và không có nhật ký cam kết.

Thay đổi về API

  • Tất cả các phương thức trả về ListenableFuture đều đã được đổi tên thành hậu tố Không đồng bộ. Chẳng hạn như getSchema đã được đổi tên thành getSchemaAsync. Các phiên bản trước đã ngừng hoạt động và sẽ bị xoá trong bản phát hành sau này.

Tính năng mới

  • Bản phát hành đầu tiên của loại tích hợp tìm kiếm ứng dụng. Dự án này chứa một vài loại tích hợp dựa trên schema.org thuận tiện cho khách hàng trong việc sử dụng thay vì xác định loại của riêng họ cho các đối tượng chung. Nhiều loại khác sẽ được thêm vào các bản phát hành trong tương lai.
  • Khả năng sử dụng ShortcutAdapter để chuyển đổi Tài liệu AppSearch thành ShortcutInfoCompat. Nhờ đó, khách hàng có thể chia sẻ tài liệu AppSearch với Google bằng cách sử dụng thư viện core-google-shortcuts
  • Có thể dùng tính năng kế thừa với các lớp @Document. Bạn không thể thay thế hoặc sửa đổi các trường, nhưng có thể thêm các trường mới bằng cách mở rộng một lớp chú thích bằng @Document.
  • Observer API mới cho phép khách hàng đăng ký nhận thông báo khi các loại mà họ có quyền truy cập vào đã thay đổi hoặc khi tài liệu của các loại đó được thêm, sửa đổi hoặc xoá. LƯU Ý QUAN TRỌNG: Cách triển khai hiện tại chỉ ra thông báo khi ứng dụng của bạn đang chạy. Hiện không có cách nào để kiểm tra những thay đổi đã xảy ra khi ứng dụng của bạn đang bị dừng. Do đó, bạn không nên dựa vào API này để hoàn tất.
  • API trình phân tích cú pháp thuộc tính cho phép bạn xử lý và kiểm tra đầy đủ các đường dẫn thuộc tính do MatchInfo#getPropertyPath trả về.
  • API getById chung và getSchema chung dùng để truy xuất tài liệu cũng như giản đồ từ các ứng dụng khác đã cấp cho bạn khả năng hiển thị.
  • Khả năng truy xuất thông tin hiển thị trong getSchema đối với dữ liệu mà bạn có quyền truy cập
  • Khả năng cấp quyền hiển thị cho các ứng dụng có một số quyền nhất định trên Android (bị hạn chế trong một nhóm nhỏ các quyền có trong danh sách cho phép)
  • Hỗ trợ phương thức getter kiểu isFoo() cho các trường boolean trong trình xử lý chú thích, ngoài kiểu hasFoo() được hỗ trợ trước đó
  • Hỗ trợ các tính năng mới được bảo vệ sau @RequiresFeature. Dùng AppSearchSession#getFeatures để xác định những phần phụ trợ hiện đang hỗ trợ.
  • Xóa giới hạn mã thông báo ~13k trên từng tài liệu riêng lẻ
  • Cho phép so khớp trên các ký tự không phải là ascii + không phải là chữ hay số, chẳng hạn như biểu tượng cảm xúc

Sửa lỗi

  • Khắc phục lỗi không thành công SetSchema khi ghi đè một loại không tương thích lồng.
  • Khắc phục lỗi để được hỗ trợ đầy đủ các lớp được chú thích @AutoValue đang được dùng làm lớp AppSearch @Document
  • Khắc phục một số sự cố liên quan đến việc lặp lại các danh sách của lớp Tài liệu và những vấn đề khác
  • Khắc phục lỗi dẫn đến sự cố tìm kiếm tiền tố trong một số trường hợp nhất định
  • Khắc phục lỗi nhỏ trong GetStorageInfo do trả về các giá trị không chính xác khi gặp lỗi IO
  • Khắc phục vấn đề BUSADDERR khi đọc một tài liệu
  • Khắc phục tình trạng hỏng logcat xảy ra do việc in vân tay chưa được định dạng
  • Khắc phục NPE do lỗi IO gây ra
  • Khắc phục sự cố rò rỉ bộ nhớ trong GetSchemaType, Get, Delete, DeleteByNamespaceDeleteBySchemaType

Phiên bản 1.0.0

Phiên bản 1.0.0-alpha04

Ngày 3 tháng 11 năm 2021

Phát hành androidx.appsearch:appsearch-*:1.0.0-alpha04. Phiên bản 1.0.0-alpha04 bao gồm các thay đổi sau.

Tính năng mới

  • Phần phụ thuộc Guava ListenableFuture được tự động đưa vào dưới dạng phần phụ thuộc API

Thay đổi về API

  • Hãy thêm SearchResult#getSubmatchRange() và SearchResult#getSubmatch() để cung cấp thêm thông tin về từng kết quả khớp. (I2fef6)
  • Làm rõ tài liệu về cách tạo vân tay PackageIdentifier để chia sẻ dữ liệu theo packagename+certificate

Sửa lỗi

  • Khắc phục sự cố khi người dùng tìm nạp các trang kết quả sau khi kết thúc bộ kết quả
  • Khắc phục vấn đề liên quan đến tất cả không gian tên được truy vấn nếu chỉ có vùng chứa tên không hợp lệ được cung cấp làm bộ lọc truy vấn
  • Khắc phục vấn đề với tất cả các vùng chứa tên bị xoá nếu chỉ có vùng chứa tên không hợp lệ được cung cấp dưới dạng remove-by-query filtersLo
  • Khắc phục vấn đề về việc dữ liệu tài liệu ngừng được lập chỉ mục sau một điểm nhất định đối với các tài liệu có kích thước rất lớn
  • Khắc phục vấn đề việc mã hoá sẽ làm loại bỏ phân khúc với các ký tự số không phải ASCII
  • Thêm tính năng kiểm tra các lần khởi chạy không thành công liên tiếp để giúp thoát khỏi trạng thái xấu có thể ngăn chặn việc khởi chạy thành công.

Phiên bản 1.0.0-alpha03

Ngày 21 tháng 7 năm 2021

Phát hành androidx.appsearch:appsearch-*:1.0.0-alpha03. Phiên bản 1.0.0-alpha03 bao gồm các thay đổi sau.

Tính năng mới

  • Phát hành Phần phụ trợ bộ nhớ nền tảng để cho phép khách hàng sử dụng API AppSearch với dịch vụ android.app.appsearch.AppSearchManager mới phát hành trong Android S. Để biết thêm thông tin, vui lòng truy cập Hướng dẫn cho nhà phát triển AppSearch.
  • Hỗ trợ trình xử lý chú giải cho AutoValue
  • Xoá giới hạn kích thước tối đa của thuộc tính chuỗi đơn
  • Định dạng bộ nhớ mới để giảm độ trễ khởi chạy
  • Di chuyển dữ liệu nội bộ một lần từ định dạng bộ nhớ cũ sang định dạng bộ nhớ mới

Sửa lỗi

  • Thực thi chính xác giới hạn tài liệu tối đa khi chèn tài liệu mới
  • Khắc phục sự cố trong quá trình tạo AppSearchSession
  • Khắc phục các lỗi trong SetSchema không phát hiện được một số trường hợp không có khả năng tương thích ngược và không có khả năng tương thích với chỉ mục

Phiên bản 1.0.0-alpha02

Ngày 30 tháng 6 năm 2021

Phát hành androidx.appsearch:appsearch:1.0.0-alpha02, androidx.appsearch:appsearch-compiler:1.0.0-alpha02androidx.appsearch:appsearch-local-storage:1.0.0-alpha02. Phiên bản 1.0.0-alpha02 bao gồm các thay đổi sau.

Tính năng mới

  • Hỗ trợ đầy đủ tiếng Trung/Tiếng Nhật/Tiếng Hàn/Tiếng Thái
  • Giảm kích thước của androidx.appsearch:appsearch-local-storage
  • Xoá giới hạn kích thước tối đa của các thuộc tính lặp lại
  • Cho phép sử dụng lại các lớp trình tạo
  • Những điểm cải tiến trong toString() đối tượng nhất định để dễ dàng gỡ lỗi hơn
  • Những điểm cải tiến trong tài liệu Javadoc

Thay đổi về API

  • Đổi tên SearchResult#getMatches thành SearchResult#getMatchInfos
  • Đổi tên @Document.Int64Property thành @Document.LongProperty

Sửa lỗi

  • Những điểm cải tiến và sửa lỗi để tính toán đoạn trích kết quả
  • Sửa lỗi trong quá trình khởi chạy AppSearchSession

Phiên bản 1.0.0-alpha01

Ngày 5 tháng 5 năm 2021

Phát hành androidx.appsearch:appsearch:1.0.0-alpha01, androidx.appsearch:appsearch-compiler:1.0.0-alpha01androidx.appsearch:appsearch-local-storage:1.0.0-alpha01. Phiên bản 1.0.0-alpha01 bao gồm các thay đổi sau.

Tính năng mới

AppSearch là một thư viện tìm kiếm trên thiết bị để quản lý dữ liệu có cấu trúc được lưu trữ cục bộ, kèm theo các API để lập chỉ mục dữ liệu và truy xuất dữ liệu bằng phương thức tìm kiếm toàn bộ văn bản. Bạn có thể sử dụng thư viện này để xây dựng chức năng tìm kiếm tuỳ chỉnh trong ứng dụng cho người dùng. Bản phát hành đầu tiên này là 1.0.0-alpha01.