AppSearch
| 最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
|---|---|---|---|---|
| 2025 年 7 月 2 日 | 1.1.0 | - | - | - |
依存関係の宣言
AppSearch への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。
Groovy
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" }
Kotlin
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
2025 年 7 月 2 日
androidx.appsearch:appsearch-*:1.1.0 がリリースされました。バージョン 1.1.0 にはこれらの commit が含まれています。
バージョン 1.1.0-rc01
2025 年 5 月 20 日
androidx.appsearch:appsearch-*:1.1.0-rc01 がリリースされました。バージョン 1.1.0-rc01 にはこれらの commit が含まれています。
新機能
AppSearchモジュールが RC に入ります。PutDocumentsRequest#addTakenActionメソッドのアクションを蓄積する新しい試験運用版 API を追加しました(I7b726)SearchResult#TextMatchInfo、SearchResult#EmbeddingMatchInfoを追加し、エンベディング一致のマッチ情報を取得するためにSearchResult#MatchInfoを再構築しました(I8f78d)- リスト操作用のランキング関数を導入(Ifa4ab)
API の変更
- blob ハンドル プロパティの
AppSearchアノテーション プロセッサをサポートします。(I9520b) - 量子化をサポートするように
AppSearchアノテーション プロセッサを更新します。(Ie0c85) PlatformStorageとLocalStorageの両方に静的getFeatures()メソッドを追加(I5a206)
バグの修正
- このライブラリは、型使用である JSpecify nullness アノテーションを使用するようになりました。Kotlin デベロッパーは、次のコンパイラ引数を使用して正しい使用法を適用する必要があります: -Xjspecify-annotations=strict、-Xtype-enhancement-improvements-strict-mode(I91f42、b/326456246)
バージョン 1.1.0-beta01
2025 年 1 月 15 日
androidx.appsearch:appsearch-*:1.1.0-beta01 がリリースされました。バージョン 1.1.0-beta01 にはこれらの commit が含まれています。
新機能
AppSearchモジュールがベータ版になりました。
API の変更
- 安定性の問題のため、試験運用版の
AppSearch削除伝播 API を無効にしました。(Iea386) GlobalSearchApplicationInfoAPI を作成します。これは、プロデューサーとコンシューマーが特定のタイプに関心があることを示すための試験運用中のオプションの方法です。(I116fd)- 試験運用版 AST(クエリビルダー)API のマイナーな変更(Ibd852)
バグの修正
- このライブラリは、型使用である JSpecify nullness アノテーションを使用するようになりました。Kotlin を使用している場合、次のコンパイラ引数を使用して正しい使用法を適用する必要があります。
-Xjspecify-annotations=strict(Kotlin コンパイラのバージョン 2.1.0 以降ではこれがデフォルトです)。(Ic2976、b/326456246) searchPersonCorpusに必要な権限を追加(I4431d)
バージョン 1.1.0-alpha07
2024 年 12 月 11 日
androidx.appsearch:appsearch-*:1.1.0-alpha07 がリリースされました。バージョン 1.1.0-alpha07 にはこれらの commit が含まれています。
新機能
- まだ安定化されていない新しい API サーフェスに
ExperimentalAppSearchApiアノテーションを追加します。(Ib09f4) AppSearchSession#openBlobForWriteAsyncおよび関連メソッドによるバイナリ BLOB データの効率的な保存と共有のサポートmatchScoreExpression関数によるスコアリング式でのクエリ結果のフィルタリングのサポート(Id525a)- 親ドキュメントから子ドキュメントへの削除の伝播をサポート。(Ia032d)
- 埋め込み量子化 API のサポートにより、品質の低下を抑えながら埋め込みのパフォーマンスを向上させます。(Id8a07)
SearchSpecのaddFilterDocumentIdsAPI を使用して、検索を特定のドキュメントに制限する機能のサポート。(I7c6f1)
API の変更
- 親タイプの情報を
GenericDocumentからSearchResultに移動します。(I34a1d) TakenActionAPI で新しいアクション タイプ(DismissAction、ImpressionActionなど)をサポート。(I0c6c7)- 新しい AppSearch 組み込みスキーマ
WebPageを追加しました。(I28127)
バージョン 1.1.0-alpha06
2024 年 10 月 16 日
androidx.appsearch:appsearch-*:1.1.0-alpha06 がリリースされました。バージョン 1.1.0-alpha06 にはこれらの commit が含まれています。
API の変更
PropertyDefinedクエリ関数を表すノードを追加しました。(I1aeaf)- 数値検索とプロパティ制限を表すノードを追加しました。(I963a9)
GetSearchStringParameterクエリ関数を表すノードを追加します。(I4f99b)HasPropertyクエリ関数を表すノードを追加します。(I9c1c5)- AST で関数を実装するためのインターフェースを追加しました。(I9d42e)
- AND 演算子と OR 演算子を追加します。(Iaa442)
- AST でクエリの論理否定を表す
NegationNodeを追加しました。(Ia855a) - ノードを定義するための
AppSearchに Node インターフェースを追加します。(If42fb) AppSearchの試験運用版 API アノテーションを追加します。(I3e57c)
バグの修正
- 保持期間の
TextNodesを追加しました。(Iefd02)
セキュリティに関する修正
- この変更により、androidx は CVE-2024-7254 に対応するため、protobuf 4.28.2 に対してコンパイルされます。脆弱性リスクに対処するため、
androidx.appsearch:appsearch-external-protobufへの依存関係を最新の 1.1.0-alpha06 にアップグレードしてください。
バージョン 1.1.0-alpha05
2024 年 9 月 4 日
androidx.appsearch:appsearch-*:1.1.0-alpha05 がリリースされました。バージョン 1.1.0-alpha05 には、これらの commit が含まれています。
API の変更
- 不要な
setEmbeddingSearchEnabledとgetEmbeddingSearchEnabledを非推奨にします。setListFilterTokenizeFunctionEnabledとgetListFilterTokenizeFunctionEnabledを削除します。「tokenize」クエリ関数を削除しました。getSearchStringParameterクエリ関数とaddSearchStringParameter関数に置き換えられました。(I09f5a) Alarm#getComputingDeviceをgetOriginatingDeviceに変更しました。(I63121)
バージョン 1.1.0-alpha04
2024 年 8 月 7 日
androidx.appsearch:appsearch-*:1.1.0-alpha04 がリリースされました。バージョン 1.1.0-alpha04 には、これらの commit が含まれています。
新機能
- 新しい
PlayServicesStorage実装のサポート。これにより、LocalStorageの APK サイズのコストを大幅に増やすことなく、古いデバイスでAppSearchを使用できます。このストレージ実装は、アプリデータを Google Play 開発者サービス アプリ内に保存することで機能します。 - Android 15 を搭載したデバイスでの新しい API のサポート。
- エンベディング ベクトルによるデータベースの検索をサポートし、ファジー マッチングを可能にします。(I2b41b)
AppSearchスキーマモデル内の親タイプとポリモーフィズムをサポートします。(I06118)TakenActionAPI をサポートします。この API を使用すると、アプリは結果がクリックされたときや放棄されたときを報告し、その後の検索で品質を高めることができます。(I54091)- 新しい
@Document.BuilderProducerアノテーションを導入することで、アノテーション プロセッサでビルダーを持つクラスをサポートします。(Iec30a) - ネストされたドキュメントのどのプロパティをインデックスに登録するかをより細かく制御できるようになりました。(Iec30a)
- 検索を特定のドキュメント プロパティにフィルタする機能のサポート。(Ib2659)
- 可視性設定の OR と AND を許可することで、よりきめ細かい可視性設定をサポートします。(I0274b)
- 所有アプリの存在を確認できるすべてのアプリにデータの可視性を付与する(公開設定)サポート。(I992e4)
- 特定のプロパティにデータが入力されている結果のみを取得する機能のサポート。(I7d94f)
- 個人用プロファイルで企業連絡先を取得するためのサポート。(Idd587)
API の変更
- AppSearch の
Document.DocumentPropertyアノテーションにindexableNestedPropertiesListとinheritIndexableNestedPropertiesFromSuperclassアノテーション パラメータを追加して、特定のネストされたプロパティ パスのインデックス登録を許可します。(Iec30a) AppSearchアノテーション プロセッサでビルダー インスタンスを作成するためのビルダー コンストラクタをサポート(I265c9)AppSearchアノテーション プロセッサを更新して、ポリモーフィズムの親タイプの設定をサポート(I06118)- 公開設定をクリアするための
GetSchemaRequestメソッドを追加しました(I38379) - AppSearch でポリモーフィズムの
addParentTypeをサポート(Ida14a) - 追加のランキング式用の API を追加(I5d9f4)
SearchActionAPI を追加(I54091)AppSearchタイプの説明フィールドを追加(I84762)AppSearchに埋め込み検索クエリとランキング API をオンボーディング(I0f6c3)getDeletionPropagationを削除(I21192)
バージョン 1.1.0-alpha03
2023 年 5 月 24 日
androidx.appsearch:appsearch-*:1.1.0-alpha03 がリリースされました。バージョン 1.1.0-alpha03 に含まれる commit については、こちらをご覧ください。
新機能
- 高度なクエリ API、高度なスコアリング API、数値検索のサポート。(I02d48)
- 単一アプリのローカル ストレージ内のすべてのデータベースを検索する
LocalStorage.createGlobalSearchSessionAPI を追加します。(Id3c89) - ID でドキュメントを結合する API を追加しました(Iaecfa)
RANKING_STRATEGY_RELEVANCE_SCORINGを使用する際に特定のプロパティがより重要であることを示すために、プロパティの重みをサポートします。(I069b9)AppSearchで Person コーパスをクエリするための Person とContactPointを追加。(Ia58f9)- http://schema.org/ImageObject をモデルにした新しいドキュメント タイプ
ImageObjectを追加しました。(I6a0c0) AppSearchによる解釈なしでプロパティを追加できるVERBATIMトークナイザーを追加します。(I47bc0)- トークナイザーのタイプとして
RFC822_TOKENIZATIONを追加し、メールアドレスのトークン化を可能にしました。(I8a390) - デバッグ ビューでグローバル検索を有効にします。(I51fb2)
API の変更
ListenableFutureを返し、Async という接尾辞が付いていないメソッドを削除しました。(I0515f)Documentクラスでプロジェクションを設定する機能が追加されています。(I94576)ThingからAlarm、AlarmInstance、Timer、Stopwatch、StopwatchLap、ContactPoint、Personにフィールドを追加(Id876c)
バグの修正
- appsearch-platform-storage で Android 13 の機能を完全にサポート(Ia8e61)
- 継承を使用する際のスキーマ名とプライベート フィールドのオーバーライドに関する問題を修正しました。
バージョン 1.1.0-alpha02
2022 年 8 月 24 日
androidx.appsearch:appsearch-*:1.1.0-alpha02 がリリースされました。バージョン 1.1.0-alpha02 に含まれる commit については、こちらをご覧ください。
新機能
- インデックスを最初から作り直すのではなく、インデックスの圧縮を使用して最適化プロセスを高速化しました
- ネイティブ ロギングタグを「icing」から「AppSearchIcing」に変更し、INFO メッセージをデフォルトで記録するようになりました
API の変更
- パスを操作するための新しい
PropertyPathオブジェクトと、PropertyPathを受け入れるための新しいaddProjectionメソッドを追加しました。(I45588) AppSearch組み込みタイプにbuiltin:Thingを追加しました(I55427)GenericDocument内の空のプロパティ名の阻止を早めました。以前はインデックス登録時に阻止していましたが、GenericDocument.Builder.build()時に防止するようになりました(I9e780)
バグの修正
- 不要な文字列形式を削除して、関連性スコアのパフォーマンスを改善しました
- 読み取れないドキュメントや削除されたドキュメントに対処する際のページ分けの効率を改善しました
- 放棄されたクエリに対するガベージ コレクションを実装しました
- ドキュメントのインデックス登録のネストに関するサポートを修正しました。以前は indexNestedProperties が無視されていました。(Iae9a6)
外部からの協力
- Shea Smith: ドキュメントのインデックス登録のネストに関するサポートを修正しました。(Iae9a6)
バージョン 1.1.0-alpha01
2022 年 6 月 15 日
androidx.appsearch:appsearch-*:1.1.0-alpha01 がリリースされました。バージョン 1.1.0-alpha01 は非公開のプレリリース ブランチで開発されており、公開版の commit はありません。
API の変更
ListenableFutureを返すすべてのメソッドの名前が変更され、Async という接尾辞が付くようになりました。たとえば、getSchemaはgetSchemaAsyncに変更されました。以前のバージョンのサポートは終了しました。今後のリリースで削除される予定です。
新機能
- appsearch-builtin-type の最初のリリースです。このプロジェクトには schema.org をベースとする組み込みのタイプがいくつか含まれます。クライアントにとって、一般的なオブジェクトに対して独自のタイプを定義するよりも使いやすい可能性があります。今後のリリースで、さらにタイプが追加される予定です。
ShortcutAdapterを使用してAppSearchドキュメントをShortcutInfoCompatに変換できるようになりました。これにより、クライアントは core-google-shortcuts ライブラリを使用してAppSearchドキュメントを Google と共有できます。@Documentクラスで継承を使用できるようになりました。フィールドの置換や変更は行えませんが、新しいフィールドは、@Documentのアノテーションを付けてクラスを拡張することで追加できます。- 新しい Observer API を使用して、クライアントは、アクセス権のあるタイプが変更されたとき、またはそれらのタイプのドキュメントが追加、変更、削除されたときの通知を登録できるようになりました。重要: 現在の実装では、通知はアプリの実行時のみ配信されます。現時点では、アプリの停止中に発生した変更を確認する方法はありません。そのため、完全性を求めてこの API を利用しないでください。
- Property Parser API を使用して、
MatchInfo#getPropertyPathから返されるプロパティパスを完全に処理、検査できるようになりました。 - グローバル
getByIdとグローバルgetSchemaの API を使用して、公開設定が許可されている他のアプリからドキュメントとスキーマを取得できるようになりました。 - アクセス権のあるデータの公開設定情報を
getSchemaで取得できるようになりました。 - 特定の Android 権限(許可リストに登録された一部の権限のみ)を保持しているアプリの公開設定を許可できるようになりました。
- 以前のサポートされているスタイル
hasFoo()に加えて、アノテーション プロセッサでブール値フィールドに対しisFoo()スタイルのゲッターをサポートするようになりました。 @RequiresFeatureで保護されている新しい機能をサポートするようになりました。AppSearchSession#getFeaturesを使用して、現在のバックエンドのサポート対象を確認します。- ドキュメントごとの 13,000 件のトークン上限を廃止しました。
- 絵文字など、ASCII 以外 + 英数字以外での一致を許可しました。
バグの修正
- ネストされた互換性のないタイプをオーバーライドすると
SetSchemaが失敗するバグを修正しました。 - AppSearch の
@Documentクラスとして使用される@AutoValueアノテーション付きクラスを完全にサポートするよう修正しました。 - ドキュメント クラスの繰り返しリストに関連するクラッシュやその他の問題を修正しました。
- 特定の状況で接頭辞の検索がクラッシュするバグを修正しました。
- IO 障害が発生した場合に間違った値を返す
GetStorageInfoの軽微なバグを修正しました。 - ドキュメントを読み取る際の
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 に含まれる commit については、こちらをご覧ください。
新機能
- Guava ListenableFuture 依存関係が API 依存関係として自動的に導入されました
API の変更
- 各一致に関する詳細情報を提供するため、SearchResult#getSubmatchRange() と SearchResult#getSubmatch() を追加しました。(I2fef6)
- パッケージ名と証明書でデータを共有するために PackageIdentifier のフィンガープリントを生成する方法について、ドキュメントを明確化しました
バグの修正
- 結果セットの終了後にユーザーが結果ページを取得しようとした場合にクラッシュする問題を修正しました
- 無効な名前空間のみがクエリフィルタとして提供された場合に、すべての名前空間に対してクエリが実行される問題を修正しました
- 無効な名前空間のみが削除のクエリフィルタとして提供された場合に、すべての名前空間が削除される問題を修正しました
- 非常に大きなドキュメントで、特定の時点以降、ドキュメント データのインデックス登録が停止する問題を修正しました
- トークン化により ASCII 以外の数字を含むセグメントがドロップされる問題を修正しました
- 初期化が連続して失敗する場合の確認を追加し、初期化を妨げる不適切な状態から抜け出せるようにしました
バージョン 1.0.0-alpha03
2021 年 7 月 21 日
androidx.appsearch:appsearch-*:1.0.0-alpha03 がリリースされました。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください。
新機能
- プラットフォーム ストレージ バックエンドがリリースされ、Android S でリリースされる新しい
android.app.appsearch.AppSearchManagerサービスで AppSearch API を使用できるようになりました。詳しくは、AppSearch デベロッパー ガイドをご覧ください。 - AutoValue に対するアノテーション プロセッサのサポート
- 1 つの文字列プロパティのサイズの上限の削除
- 初期化レイテンシを短縮するための新しいストレージ形式の追加
- 古いストレージ形式から新しいストレージ形式への 1 回限りの内部データ移行
バグの修正
- 新しいドキュメントを挿入するときに、ドキュメント数の上限を正しく適用するようになりました
- AppSearchSession の作成中にクラッシュする問題を修正しました
- 一部の下位非互換性とインデックスの非互換性が検出されない SetSchema のバグを修正しました
バージョン 1.0.0-alpha02
2021 年 6 月 30 日
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 に含まれる commit については、こちらをご覧ください。
新機能
- 中国語、日本語、韓国語、タイ語の完全サポート
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-alpha01、androidx.appsearch:appsearch-local-storage:1.0.0-alpha01 がリリースされました。バージョン 1.0.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
AppSearch は、全文検索を介してデータをインデックスに登録する API とデータを取得する API を備えた、ローカルに保存されている構造化データを管理するための検索ライブラリです。ユーザー向けにカスタムのアプリ内検索機能を構築するのに使用します。この初回リリースは 1.0.0-alpha01 です。