Three moving parts: the app on your phone, the Opensolr platform, and the phone's own Opensolr Index. The app talks to each of them over HTTPS and to nothing else.
Figure 1 — how a photo becomes searchable.
- Finds photos through Android's MediaStore, in the folders you chose.
- Reads each photo's camera details itself: date, camera, lens, exposure, place.
- Makes a small upright JPEG copy, 640 px on its long edge, for the reader. The copy is re-encoded from pixels and carries no metadata.
- Writes the documents into the index, and searches the index directly.
- Runs sync in the background, one at a time, and keeps a cache of what it already learned.
- Watches the photo library and syncs on its own when photos are added, changed or deleted.
opensolr.com
The sign-in and approval pages, and the account API: creating the index, uploading its configuration, reading its address and password, reading plan limits and usage, and nearby_places, which turns a GPS position into the nearest place: city, region, country.
api.opensolr.com
image_clip reads a picture into words with CLIP, the same model and vocabulary as Opensolr's image search, and stores nothing. batch_embed and embed turn words into search vectors.
A regular Opensolr Index named photos_<ANDROID_ID>__dense, created in your account on a server that runs vector search, with the app's own schema. The app reads and writes it directly with its credentials: /select to search and list, /update to add and delete. See the phone's index.
Figure 2 — where each piece of data lives. Every arrow is HTTPS.
- You take a photo; the camera saves it in
DCIM/Camera/. - At the next sync the app finds it, gives it its id and sees it is not in the index.
- The app reads its date, camera and GPS position, and makes the 640 px copy.
image_clipanswers twelve words, for example dog, beach, sand, sea, ….nearby_placesturns the position into Constanţa, Constanţa, Romania.batch_embedturns those words into a 1024-number vector.- The document — words, vector, date, camera, place, path — is written to the index, and the photo appears in search.
- You edit the photo in your gallery; a minute later a sync notices the changed file and reads it again.
- You delete the photo from your gallery; a minute later its id is missing from the phone, and its document is deleted from the index.