Adds full-text search to Community Solid Server. Powered by atomic-server

Overview

Solid Search for Community Solid Server

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.

Usage

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.

Run search back-end using docker

# Docker one-liner
docker run --platform linux/amd64 -p 80:80 -p 443:443 -v atomic-storage:/atomic-storage joepmeneer/atomic-server --rdf-search

Run Community Solid Server with this config

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"

Limitations

  • 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

Troubleshooting

  • If you're having mysterious errors, try removing local files rm -rf ./local-files.

Acknowledgements

  • 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.
You might also like...

Hasbik is a community based social token and the new paradigm in the crypto space. With the goal to build a community around a crypto token.

Hasbik is a community based social token and the new paradigm in the crypto space. With the goal to build a community around a crypto token.

Jan 5, 2022

A personal semantic search engine capable of surfacing relevant bookmarks, journal entries, notes, blogs, contacts, and more, built on an efficient document embedding algorithm and Monocle's personal search index.

A personal semantic search engine capable of surfacing relevant bookmarks, journal entries, notes, blogs, contacts, and more, built on an efficient document embedding algorithm and Monocle's personal search index.

Revery πŸ¦… Revery is a semantic search engine that operates on my Monocle search index. While Revery lets me search through the same database of tens o

Dec 30, 2022

Tesodev-search-app - Personal Search App with React-Hooks

Tesodev-search-app - Personal Search App with React-Hooks

Tesodev-search-app Personal Search App with React-Hooks View on Heroku : [https://tesodev-staff-search-app.herokuapp.com/] Instructions Clone this rep

Nov 10, 2022

Instant spotlight like search and actions in your browser with Sugu Search.

Instant spotlight like search and actions in your browser with Sugu Search.

Sugu Search Instant spotlight like search and actions in your browser with Sugu Search. Developed by Drew Hutton Grab it today for Firefox and Chrome

Oct 12, 2022

An efficient (and the fastest!) way to search the web privately using Brave Search Engine

Brave Search An efficient (and the fastest) way to search the web privately using Brave Search Engine. Not affiliated with Brave Search. Tested on Chr

Jun 2, 2022

🍭 search-buddy ultra lightweight javascript plugin that can help you create instant search and/or facilitate navigation between pages.

🍭 search-buddy ultra lightweight javascript plugin that can help you create instant search and/or facilitate navigation between pages.

🍭 search-buddy search-buddy is an open‑source ultra lightweight javascript plugin (* 1kb). It can help you create instant search and/or facilitate n

Jun 16, 2022

Allows users to quickly search highlighted items on Wikipedia. Inspired by the "search Wikipedia" function on the kindle mobile app.

Allows users to quickly search highlighted items on Wikipedia. Inspired by the

wikipedia-search Allows users to quickly search highlighted items on Wikipedia. Inspired by the "search Wikipedia" function on the kindle mobile app.

Aug 15, 2022

🟒 Music player app with a modern homepage, fully-fledged music player, search, lyrics, song exploration features, search, popular music around you, worldwide top charts, and much more.

🟒 Music player app with a modern homepage, fully-fledged music player, search, lyrics, song exploration features, search, popular music around you, worldwide top charts, and much more.

Music-player-app see the project here. 1. Key Features 2. Technologies I've used Key Features: 🟒 Fully responsive clean UI. 🟒 Entirely mobile respo

Nov 16, 2022

πŸ“ˆ AI powered web scraper that let's you scrape anything you want from the web including google search results

AI powered web scraper that let's you scrape anything you want from the web including google web search results from your terminal. And at the same ti

Dec 27, 2022
Comments
  • Fix various issues

    Fix various issues

    This was easier when I was looking at it anyway then explaining it over text πŸ˜‰ . After this the server can be started with npx community-solid-server file-search.json or npm start (and with the -f flag if you want to choose the data folder).

    Summary of some things:

    • The build command was missing a reference to the .componentsignore file. Was also missing the flag that made it so you can write "source" in the config instead of "SearchListener:_source" (last one is not needed anymore once we switch to components.js 5.x). It was also using a prefix that didn't match the repo.
    • The EventEmitter import was missing.
    • Moved the components.js SearchListener definition to a separate file so it can be imported by other configurations.
    • Fixed file-search.json with correct imports and contexts.
    • Fixed components.js URLs in package.json (only the major version number is used, rest needs to be 0).
    opened by joachimvh 1
Owner
Ontola
We love linked data. Creators of @argu-co. We also have repos at gitlab.com/ontola
Ontola
A community website built by the community for the community (Hacktoberfest 2022) :tada:

Hacktoberfest 2022 ?? : Built by the community for the community! This repository is an initiative which aims to help beginners kickstart their open-s

Your First Open Source Project 5 Oct 12, 2022
A plugin for Obsidian (https://obsidian.md) that adds a button to its search view for copying the Obsidian search URL.

Copy Search URL This plugin adds a button to Obsidian's search view. Clicking it will copy the Obsidian URL for the current search to the clipboard. T

Carlo Zottmann 6 Dec 26, 2022
"Jira Search Helper" is a project to search more detail view and support highlight than original jira search

Jira Search Helper What is Jira Search Helper? "Jira Search Helper" is a project to search more detail view and support highlight than original jira s

null 41 Dec 23, 2022
(Experimenting) Transform CSS Modules to enable Atomic CSS benefits 🌱

MatoCSS Transform CSS Modules to enable Atomic CSS benefits Please note that it is still experimenting. I do not recommend using this in production. U

Huy Nguyen 4 Nov 24, 2022
A ~2kb hotkeys library for solid that adds only 2 event listeners.

Solid Hotkeys - Cmd+S+H Solid Hotkeys is the easiest way to add hotkeys to your application. Built for and with Solid. Motivation You gotta have hotke

Alek Angelov 12 Aug 1, 2022
Tiny and powerful JavaScript full-text search engine for browser and Node

MiniSearch MiniSearch is a tiny but powerful in-memory fulltext search engine written in JavaScript. It is respectful of resources, and it can comfort

Luca Ongaro 2k Jan 3, 2023
Full text search based on InvertedIndex and ordinary approach

The Node js project that has CRUD operation and has a FullTextSearch.

Ali Nowrouzi 5 Jul 15, 2022
🌌 Fast, in-memory, full-text search engine written in TypeScript. Now in beta.

Installation You can install Lyra using npm, yarn, pnpm: npm i @nearform/lyra yarn add @nearform/lyra pnpm add @nearform/lyra Usage Lyra is quite simp

NearForm 5.1k Dec 30, 2022
Node starter kit for semantic-search. Uses Mighty Inference Server with Qdrant vector search.

Mighty Starter This project provides a complete and working semantic search application, using Mighty Inference Server, Qdrant Vector Search, and an e

MAX.IO LLC 8 Oct 18, 2022
Userscript that adds a search bar to tabnews.com.br

TabBusca Userscript that adds a search bar to tabnews.com.br Download This is a userscript. To use it you'll first need one of the following browser e

Ludwik Lejzer 4 Mar 5, 2023