I want to self-host a search engine that indexes my static website(s).
I don’t want to use a CMS (which typically have a search engine built-in) for these sites, and I don’t want to refer my visitors to a third-party search engine service.
It doesn’t have to be a user-friendly search engine (like Google, Bing, etc.), it’s mostly for power users, so a complex search syntax may be required.
The search engine must be FLOSS.
It must run on a GNU/Linux server.
It must not use Java (I know there are several good search engine projects in Java, but, unfortunately, my host doesn’t support it).
The search engine must index (X)HTML5. Support for other formats is not needed.
I don’t want the crawler to find my pages on its own. Instead, I want to provide a list of URLs which should be crawled (ideally supporting one of the sitemaps.org formats).
I don’t want to add metadata about the documents somewhere else than in the documents themselves.
- It must not set cookies (unless the user explicitly submits a settings form or similar).
My wish list
Indexing: In addition to the full text, it should index as many signals as possible (e.g., in the form of name-value pairs), like meta tags, RDFa/JSON-LD, semantic elements, etc.
SERP: I want to be able to define how the results should look like, depending on the indexed data. Similar to Google’s Rich Snippets. For example: show an image, a list, a short table, etc.
Ranking: I’d like to be able to tweak the ranking algorithm, e.g., giving each field a certain score/priority.
Search operators: It should, at least, support the Boolean
NOTand brackets (e.g.,
(laptop OR notebook) (review OR reviews) -netbook). The more operators, the better (phrase/range/proximity search; field-based search; special characters, case-sensitivity; etc.).