Peer-to-Peer Search Engine System

Overview

Kamilata

Kamilata

License: MIT Lines of code GitHub last commit wakatime GitHub closed issues

A Peer-to-Peer Search Engine System

Abstract

Search engines have always been quintessentially centralized systems. The need for a central database to store and index gigantic amounts of data has consecrated big companies as the only ones able to provide such a service. After years of accumulating power and influence, these same companies have started abusing their position, manipulating search results, censoring content, and spying on their users. As those in control of searches rule which content is reachable, they have become the new gatekeepers of the Internet.

A purely peer-to-peer version of a search engine would allow the search of data without the need of relying on any authority. The network formed by users would be directly in charge of the content, with no intermediaries. This is Kamilata. It features a routing algorithm for redirecting search queries to the peers that are most likely to have matching results. Thanks to this approach, no central index is required. As a result, peers can join and leave the network freely, without any coordination needed at the network level.

Scope

Kamilata is relevant and able to provide a good search experience if one of the following conditions is met:

  • Queries are specific (a few words)
  • The corpus is small (less than a million documents)
  • A small share of the corpus drives a large share of the traffic

General Technical Description

The Kamilata routing algorithm is based on Attenuated Bloom Filters. Bloom filters are compact data structures used to determine if an element is present in a set. Here, we check the presence of words in documents. From a node's point of view, a Kamilata network is divided into virtual node groups of varying sizes. This divides the corpus into multiple sets ranging from a few documents to all documents of the corpus. Each having its corresponding Bloom filter, it is then easy to locate words in the network and know which nodes to query for given words.

You might also like...
fas stand for Find all stuff and it's a go app that simplify the find command and allow you to easily search everything you nedd
fas stand for Find all stuff and it's a go app that simplify the find command and allow you to easily search everything you nedd

fas fas stands for Find all stuff and it's a rust app that simplify the find command and allow you to easily search everything you need. Note: current

🧠 A command-line utility for switching git branches more easily. Switch branches interactively or use a fuzzy search to find that long-forgotten branch name.
🧠 A command-line utility for switching git branches more easily. Switch branches interactively or use a fuzzy search to find that long-forgotten branch name.

git-smart-checkout A git command extension for switching git branches more efficiently. About Interactively switch branches or fuzzy search for that f

Search on google in your terminal

goog Search on google from your terminal. Supported Browsers: Chrome Firefox Supported Operating Systems Linux Unsupported or not tested operating sys

Navigating around TUM with excellence – An API and website to search for rooms, buildings and other places
Navigating around TUM with excellence – An API and website to search for rooms, buildings and other places

NavigaTUM NavigaTUM is a non-official tool developed by students for students, that aims to help you get around at TUM. Feel free to contribute. Featu

Workflows make it easy to browse, search, execute and share commands (or a series of commands)--without needing to leave your terminal.
Workflows make it easy to browse, search, execute and share commands (or a series of commands)--without needing to leave your terminal.

Workflows The repo for all public Workflows that appear within Warp and within commands.dev. To learn how to create local or repository workflows, see

Workflows make it easy to browse, search, execute and share commands (or a series of commands)--without needing to leave your terminal.
Workflows make it easy to browse, search, execute and share commands (or a series of commands)--without needing to leave your terminal.

Workflows The repo for all public Workflows that appear within Warp and within commands.dev. To learn how to create local or repository workflows, see

Jump Point Search Implementation for Path Finding, in Rust

jps : Jump Point Search in Rust. Jump Point Search Algorithm Implementation in Rust. Current implementation status JPS Implementation 3D case ✅ Lifeti

Pathfinding on grids using jumping point search and connected components.

grid_pathfinding A grid-based pathfinding system. Implements Jump Point Search with improved pruning rules for speedy pathfinding. Pre-computes connec

🔍 quickly search with your favorite websites straight from the terminal

gg Search with your favorite websites straight from the terminal! gg-example.mp4 Configure gg To add more websites, just edit the ~/.gg.toml or %APP_D

Owner
19 yo Cypherpunk
null
A command line tool that resembles a debugger as well as Cheat Engine, to search for values in memory

Summary This is a small command-line tool designed to peek around memory of a running Linux process. It also provides filtering mechanisms similar to

null 213 Jul 4, 2023
a search engine for your events!

event engine description event engine is a search engine for your events! too many websites and emails to keep track of? event engine takes care of th

Tao Tien 3 Apr 7, 2024
First project in rust which will be to make an accounts system & Leaderboard/Score system

rust-backend this is my first project in rust which will be to make a backend for compsci project it will include: Accounts, Player Achievements (if I

NaughtyDog6000 2 Jul 13, 2023
CLI search and replace | Space Age seD

SAD! Space Age seD What does it do? Basically sad is a Batch File Edit tool. It will show you a really nice diff of proposed changes before you commit

i love my dog 986 Dec 29, 2022
Like grep, but uses tree-sitter grammars to search

tree-grepper Works like grep, but uses tree-sitter to search for structure instead of strings. Installing This isn't available packaged anywhere. That

Brian Hicks 219 Dec 25, 2022
full text search manpages

buke full text search manpages cargo run --release -- --build builds an sqlite3 database out of all manpages in your $MANPATH cargo run --release -- "

Manos Pitsidianakis 29 Oct 28, 2022
Search PyPI for packages from the command line.

PPS -- Python Package Index Search Search the PyPI for packages by name, which was done by pip search in the past. This was heavily inspired by pip_se

null 5 Nov 2, 2021
Grep with human-friendly search output

hgrep: Human-friendly GREP hgrep is a grep tool to search files with given pattern and print the matched code snippets with human-friendly syntax high

Linda_pp 345 Jan 4, 2023
🔭 Search Dash.app from Neovim with Telescope. Built with Rust 🦀 and Lua

Dash.nvim Query Dash.app within Neovim with a Telescope picker! The theme used in the recording is lighthaus.nvim. Note: Dash is a Mac-only app, so yo

Mat Jones 193 Dec 28, 2022
A small unix and windows lib to search for executables in PATH folders.

A small unix and windows lib to search for executables in path folders.

Robiot 2 Dec 25, 2021