This is an extension / plugin for the Community Solid Server. It adds full-text search to the Community Solid Server. The back-end is powered by Atomic-Server and Tantivy.
First, run Atomic-Server, which is the back-end that powers the search. You can do this using Docker (or a bunch of other ways).
Make sure you pass the --rdf-search
flag.
Check out more information in the readme.
Modify the URL of the /search
endpoint of your search backend in the ./config/search.json
file, if it's not running on it's default of http://0.0.0.0:9883/search
.
# Docker one-liner
docker run --platform linux/amd64 -p 80:80 -p 443:443 -v atomic-storage:/atomic-storage joepmeneer/atomic-server --rdf-search
npm i
npm run build
npm run start
Usage:
# Post a resource to your solid pod
curl -X PUT -H "Content-Type: text/turtle" -d '<http://localhost:3000/myfile.ttl> <ex:p> "testme".' http://localhost:3000/myfile.ttl
# query atomic-server, get the subjects of the resources that match
curl -H "Accept: application/json" "http://localhost:9883/search?q=testme"
- No authorization / authentication included, all resources are public. If you want to use this with private data, wrap it's
/search
query API in another project, and check ACL rights for every returned resource. - Only searches inside individual triples, not at resource level
- Requires
text/turtle
serialization - Does not support named graphs or blank nodes
- If you're having mysterious errors, try removing local files
rm -rf ./local-files
.
- Thanks to the NLnet Search & Discovery grant for making a financial contribution to this project!
- Thanks to Joachim Van Herwegen and Ruben Verborgh for helping out with the integration with Solid-Community Server.
- Thanks to Ruben Verborgh, Jos van den Oever and Thom van Kalkeren for helping out with the architectural design.
- Powered by amazing Rust libraries, most notably Tantivy, Actix and Rio_turtle.
- Written by Joep Meindertsma @joepio for Ontola.io.