Sync from upstream.

Descriptions:
==========
Switch DocumentStore to using PortableFileBackedProtoLog instead of
FileBackedProtoLog, and migrate any existing FileBackedProtoLog's to the
Portable* version.
==========
Add more fields to SchemaStats to capture the types that were newly
added, modified and modified with an index rebuild.
==========
Create a new DeleteByQueryStatsProto to capture query-specific stats
related to the performance of DeleteByQuery.
==========
Fix bugs in SetSchema:
1. Property id reassignments when a property is deleted and a new one
added was not being detected
2. Property id reassignments due to changes to the
index_nested_properties field were not detected.
3. Backward incompatible changes should invalidate dependent types.
==========
Fix IcingSearchEngineTest.CJKSnippets test by choosing a simpler
multi-byte character (when encoded in UTF-8) string that ICU will always
segment in the same way regardless of api level.

Bug: 185806837
Bug: 187205195
Bug: 187726282

Change-Id: I07cc8bf3fc5b3a7c5e8f0d24d1724297f3bfba5d
52 files changed
tree: 637287af89eeb5568bd0dc1193f2dceb1d5c3b2b
  1. icing/
  2. java/
  3. proto/
  4. .gitignore
  5. Android.bp
  6. AndroidManifest.xml
  7. build.gradle
  8. CMakeLists.txt
  9. CONTRIBUTING.md
  10. jarjar-rules.txt
  11. LICENSE
  12. METADATA
  13. MODULE_LICENSE_APACHE2
  14. README.md
  15. synced_AOSP_CL_number.txt
  16. TEST_MAPPING
README.md

Icing Search Library

Icing is a fast, embedded, mobile-friendly full-text-search library written in C++.

This is not an officially supported Google product.