956af77655
Add a message when there are no pages in the Page Index to list so it's less confusing than just an empty table. |
||
---|---|---|
orcinus | ||
.gitattributes | ||
.gitignore | ||
example.html | ||
example.php | ||
LICENSE | ||
README.md |
Orcinus Site Search
ℹ️ NOTE: This project is not yet officially released and thus probably contains bugs and other nasties. Please use at your own risk! If you do try it out, I would very much appreciate your feedback and issue reports.
The Orcinus Site Search PHP script is an all-in-one website crawler, indexer and search engine that extracts searchable content from plain text, XML, HTML and PDF files at a single, or multiple websites. It replaces 3rd party, remote search solutions such as Google etc.
Orcinus will crawl your website content on a schedule, or at your command via the admin UI or even by CLI / crontab. Crawler log output conveniently informs you of missing pages, broken links or links that redirect, and other errors that a webmaster can fix to keep the user experience tight. A full-featured, responsive administration GUI allows you to adjust crawl settings, view and edit all crawled pages, customize search results, and view a log of user search queries. You also have complete control over the appearance of your search results with a convenient templating system.
Optionally, Orcinus can generate a sitemap .xml or .xml.gz file of your pages after every crawl, suitable for uploading to the Google Search Console. It can also export a JavaScript version of the entire search engine that works with offline mirrors, such as those generated by HTTrack.
Requirements:
- PHP >= 8.0.x
- MySQL >= 8.0.17 / MariaDB >= 10.0.5
3rd Party Libraries:
Included:
Optional:
Getting Started
- Copy the
orcinus
directory to your root web directory. - Fill out your SQL and desired credential details in the
orcinus/config.ini.php
file. - Visit
yourdomain.com/orcinus/admin.php
in your favourite web browser and log in. - Optionally follow the instructions in
orcinus/geoip2/README.md
to enable geolocation of search queries.
Examples of search interface integration are given in the example.php
(online / PHP) and example.html
(offline / JavaScript) files.