It was written to replace Google Photos on one phone without a single picture being uploaded to Google; to find one photo out of twenty thousand by typing what you remember; to find a gas receipt by the number printed on it and share it in two taps; to keep your people, places and tags in an index of your own rather than in a database you do not own; to clear out the duplicates; and to be open source on an Opensolr account that is free forever. Everything below is in service of those six.
Opensolr Photos is a free, open-source, MIT-licensed Android app that turns the photo folders on your phone into a search engine. Each photo becomes a document — its dates, its camera, where it was taken, its file name, the people named on it, your own tags and wording, and, on a plan with vector search, the words it was read into and the text printed on it — in an Opensolr Index of your own. The phone keeps its own copy of every one of those documents, so it browses, syncs and suggests without asking the network. This is the complete documentation for it.
On a plan with vector search, four things make a photo findable, and a photo can be found by any of them at once: what it shows, read into words and into a search vector; the text printed in it — a receipt, an invoice, a shelf label, a screenshot — read on Opensolr’s own servers; the names of the people in it, named by you or already written on the file by another app; and its own facts — when, where, which camera, which folder, and your own tags.
Without vector search on your plan, no photo is sent to be read at all. A photo is still indexed by its own facts — when, where, which camera, which folder, the file name — and by what you write on it yourself: the people you name, your tags and your wording. Search is then lexical: it matches the words you typed against those. Nothing is read into words, no printed text is extracted, and no search vector is made.
Figure 1 — how a photo becomes searchable: read on the phone, labelled and embedded by Opensolr, stored in your own index, and searched by words, by meaning and by filter.
The phone’s copy is read out of the index once, when you install or reinstall the app, and from then on every write keeps it in step. Because of it, a sync with nothing to do makes no requests at all, where before it took about 21 requests and 1.8 MB for a library of 10,000 photos, and plain browsing — no words typed, no filters — makes none either. Tags, names and wording are saved on the phone and are finished there; the sync that starts straight after carries them up.
What Opensolr Photos is says what it does and what it deliberately does not do. Privacy says exactly what leaves your phone.
- Check the requirements: Android 8.0 or newer and an Opensolr account. A plan with vector search decides whether your photos are read at all; without it they are still indexed and still searched, lexically.
- Install the signed APK from GitHub.
- Sign in with Opensolr in your browser and read what your plan covers.
- Choose your folders. DCIM is proposed.
- Let the app read your index into its own copy — this happens once, on a first install or a reinstall, and is what the first screen is doing. Then let the first sync run, and search as soon as the first photos arrive.
- github.com/phpcip/opensolr-photos — the source, the issues and the releases with their signed APKs.
- opensolr.com/opensolr-photos — the product overview, if you are still deciding.
- The Opensolr platform documentation — for the account, the control panel and the index the app sits on.
- Want to work on the app? Read the project structure, then ask to become a contributor.