How it works

Four moving parts, what each one does, and how a photo becomes searchable.

Four moving parts: the app on your phone, the copy of the index it keeps on the phone, Opensolr, and the phone's own Opensolr Index. This page says what each does, with links to the details.

HOW A PHOTO BECOMES SEARCHABLE On the phonethe appPhoto in a folderEXIF read here1024 px copy madeKeeps a copy of the index photos_ingestapi.opensolr.comCLIP reads the copyFive photos per callCopy not stored The server writesapi.opensolr.comWords to a vectorPlace from the GPSDuplicate keys Your indexSolr, directOne complete documentWords and vectorPrinted text, peopleYour tags and wordingDate, camera, place Searchthe appWords, meaningFiltersOpens full screenBrowsing: the copy Paid for once per photoOpensolr keeps what a picture was read as,so a photo sent again costs nothing again.Ten photos read count as one AI request. The copy carries nothing elseRe-encoded from pixels, with only the tagsthe reader needs: time, camera, lens,exposure, position.Nothing else from the original travels withit.
HOW A PHOTO BECOMESSEARCHABLE On the phonethe appPhoto in a folderEXIF read here1024 px copy madeKeeps a copy of the index photos_ingestapi.opensolr.comCLIP reads the copyFive photos per callCopy not stored The server writesapi.opensolr.comWords to a vectorPlace from the GPSDuplicate keys Your indexSolr, directOne complete documentWords and vectorPrinted text, peopleYour tags and wordingDate, camera, place Searchthe appWords, meaningFiltersOpens full screenBrowsing: the copy Paid for once per photoOpensolr keeps what apicture was read as, so aphoto sent again costsnothing again.Ten photos read count asone AI request. The copy carriesnothing elseRe-encoded from pixels,with only the tags thereader needs: time,camera, lens, exposure,position.Nothing else from theoriginal travels with it.

Figure 1 — how a photo becomes searchable.

01 · The four parts
The app

Finds photos in your folders, reads their camera details, finds and compares faces, makes the small copy Opensolr reads, and runs the sync in the background. It never writes your words into a photo file. See sync.

The phone's copy of the index

Everything the index holds but the vector and the keys for similar photos. Browsing, Stats, the tag suggestions and the comparison a sync makes are answered from it. See the phone's copy.

Opensolr

opensolr.com signs you in and manages your account and index. api.opensolr.com reads each photo, its words and printed text, works out its place, makes its vector, and writes the document into your index; it also runs a search by meaning. See every call it makes.

The phone's index

A regular Opensolr Index in your account, with the app's own schema. It answers typed searches, filters, similar photos and the map. See the phone's index.

Besides Opensolr, the app reaches only GitHub and OpenStreetMap, carrying nothing about you or your photos: api.github.com, to ask whether a newer version exists, github.com, to download one when you tap to install it, and tile.openstreetmap.org, for the map tiles while the map screen is open.

02 · Where each piece of data lives
YOUR PHONEOriginal photos, fullsizeEXIF and GPS read hereThis phone's key,Keystore-encryptedYour tags and wordingThumbnails, from thephoneA copy of the index, novectorexcluded from phonebackups OPENSOLR.COMSign-in and approvalCreate index, uploadconfigPlan limits and usage API.OPENSOLR.COMReads a 1024 px copyWords, printed text,vector, placeThe copy is notstored YOUR OPENSOLRINDEXLabels (the meaning)Printed text (OCR)The people named on itYour tags and yourwordingSearch vectorDate, camera, placePath, folder, size,copy keysRemoved with the photoone per phone, in youraccount direct to Solr: HTTPS + indexpassword Every arrow is HTTPS. No analytics, no ads, no crash reporting, no third-party SDK that talks tothe network.Two other hosts, carrying nothing about you or your photos: GitHub for the app's updates,and tile.openstreetmap.org for the map tiles, only while the map screen is open.
YOUR PHONEOriginal photos, fullsizeEXIF and GPS read hereThis phone's key,Keystore-encryptedYour tags and wordingThumbnails, from thephoneA copy of the index, novectorexcluded from phone backups OPENSOLR.COMSign-in and approvalCreate index, uploadconfigPlan limits and usage API.OPENSOLR.COMReads a 1024 px copyWords, printed text,vector, placeThe copy is not stored direct to Solr: HTTPS +index password YOUR OPENSOLRINDEXLabels (the meaning)Printed text (OCR)The people named on itYour tags and yourwordingSearch vectorDate, camera, placePath, folder, size,copy keysRemoved with the photoone per phone, in youraccount Every arrow is HTTPS. Noanalytics, no ads, no crashreporting, no third-party SDKthat talks to the network.Two other hosts, carryingnothing about you or yourphotos: GitHub for the app'supdates, andtile.openstreetmap.org for themap tiles, only while the mapscreen is open.

Figure 2 — where each piece of data lives. The arrows cross the edge of the phone only for the few things that still go over the network.

03 · The life of one photo
  1. You take a photo; the camera saves it in DCIM/Camera/.
  2. Soon after, a sync finds it, gives it its id and sees it is not in the phone's copy of the index. Nothing is asked of the index for this. See when a sync runs.
  3. The app reads its camera details, finds its faces, and makes the 1024 px copy.
  4. photos_ingest, five photos per call, does the rest on Opensolr's side: the words it is read into, the text printed in it, its place, its search vector, and the write into your index.
  5. The answer goes into the phone's copy, and the photo appears in search about ten seconds after the write.
  6. You tag it. The save is finished on the phone; the sync right after carries the words up through photos_words, and Opensolr makes the vector again from them.
  7. You edit the picture; the next sync sees the file changed and has it read again.
  8. You delete it; the next sync deletes its document from the index and from the copy.

On a plan without vector search, step 4 reads nothing: the photo is written with its date, camera, place, file name and your words. See without photo recognition.

Opensolr Photos is open source and MIT licensed. Questions about your Opensolr account, index or plan go to opensolr.com/contact; questions about the app itself belong on GitHub.

Opensolr Photos Documentation