All Projects → lnx-search → lnx

lnx-search / lnx

Licence: MIT license
⚡ Insanely fast, 🌟 Feature-rich searching. lnx is the adaptable, typo tollerant deployment of the tantivy search engine. Standing on the shoulders of giants.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to lnx

Meilisearch
Powerful, fast, and an easy to use search engine
Stars: ✭ 20,236 (+2297.63%)
Mutual labels:  search-engine, instant
sonar-tantivy
Search engine based on tantivy with a Node.js frontend
Stars: ✭ 30 (-96.45%)
Mutual labels:  search-engine, tantivy
Search Engine Rank
🐘根据网站关键词,获取网站在各大搜索引擎(百度、360、搜狗)的排名情况,有利于网站seo
Stars: ✭ 197 (-76.66%)
Mutual labels:  search-engine
Elasticsearch
Free and Open, Distributed, RESTful Search Engine
Stars: ✭ 57,778 (+6745.73%)
Mutual labels:  search-engine
Aquiladb
Drop in solution for Decentralized Neural Information Retrieval. Index latent vectors along with JSON metadata and do efficient k-NN search.
Stars: ✭ 222 (-73.7%)
Mutual labels:  search-engine
Examine
A .NET indexing and search engine powered by Lucene.Net
Stars: ✭ 208 (-75.36%)
Mutual labels:  search-engine
Magnetissimo
Web application that indexes all popular torrent sites, and saves it to the local database.
Stars: ✭ 2,551 (+202.25%)
Mutual labels:  search-engine
Idt
Image Dataset Tool (idt) is a cli tool designed to make the otherwise repetitive and slow task of creating image datasets into a fast and intuitive process.
Stars: ✭ 202 (-76.07%)
Mutual labels:  search-engine
first-contrib-app
A search engine to find good beginner issues across Github and become an open source contributor !
Stars: ✭ 33 (-96.09%)
Mutual labels:  search-engine
Magnetico
Autonomous (self-hosted) BitTorrent DHT search engine suite.
Stars: ✭ 2,626 (+211.14%)
Mutual labels:  search-engine
Conceptualsearch
Train a Word2Vec model or LSA model, and Implement Conceptual Search\Semantic Search in Solr\Lucene - Simon Hughes Dice.com, Dice Tech Jobs
Stars: ✭ 245 (-70.97%)
Mutual labels:  search-engine
Search Engine Parser
Lightweight package to query popular search engines and scrape for result titles, links and descriptions
Stars: ✭ 216 (-74.41%)
Mutual labels:  search-engine
Alfanous
Alfanous is an Arabic search engine API provides the simple and advanced search in Quran , more features and many interfaces...
Stars: ✭ 209 (-75.24%)
Mutual labels:  search-engine
Dweb.page
Your Gateway to the Distributed Web
Stars: ✭ 239 (-71.68%)
Mutual labels:  search-engine
Tntsearch
A fully featured full text search engine written in PHP
Stars: ✭ 2,693 (+219.08%)
Mutual labels:  search-engine
mqtt-broker
A tokio-based MQTT v5 broker written in pure Rust [WIP]
Stars: ✭ 110 (-86.97%)
Mutual labels:  tokio
Googlescraper
A Python module to scrape several search engines (like Google, Yandex, Bing, Duckduckgo, ...). Including asynchronous networking support.
Stars: ✭ 2,363 (+179.98%)
Mutual labels:  search-engine
Scout
RESTful search server written in Python, powered by SQLite.
Stars: ✭ 213 (-74.76%)
Mutual labels:  search-engine
Addok
Search engine for address. Only address.
Stars: ✭ 226 (-73.22%)
Mutual labels:  search-engine
FUTURE
A private, free, open-source search engine built on a P2P network
Stars: ✭ 19 (-97.75%)
Mutual labels:  search-engine

lnx v0.10.0-alpha

lnx Logo

Feature Rich | Insanely Fast

An ultra-fast, adaptable deployment of the tantivy search engine via REST.

Join our community for support, updates and more:

🌟 Standing On The Shoulders of Giants

lnx is built to not re-invent the wheel, it stands on top of the tokio-rs work-stealing runtime, hyper web framework combined with the raw compute power of the tantivy search engine.

Together this allows lnx to offer millisecond indexing on tens of thousands of document inserts at once (No more waiting around for things to get indexed!), Per index transactions and the ability to process searches like it's just another lookup on the hashtable 😲

Features

lnx although very new offers a wide range of features thanks to the ecosystem it stands on.

  • 🤓 Complex Query Parser.
  • ❤️ Typo tolerant fuzzy queries.
  • ⚡️ Typo tolerant fast-fuzzy queries. (pre-computed spell correction)
  • 🔥 More-Like-This queries.
  • Order by fields.
  • Fast indexing.
  • Fast Searching.
  • Several Options for fine grain performance tuning.
  • Multiple storage backends available for testing and developing.
  • Permissions based authorization access tokens.

Demo video

Here you can see lnx doing search as you type on a 27 million document dataset coming in at reasonable 18GB once indexed, ran on my i7-8700k using ~3GB of RAM with our fast-fuzzy system Got a bigger dataset for us to try? Open an issue!

Performance

lnx can provide the ability to fine tune the system to your particular use case. You can customise the async runtime threads. The concurrency thread pool, threads per reader and writer threads, all per index.

This gives you the ability to control in detail where your computing resources are going. Got a large dataset but lower amount of concurrent reads? Bump the reader threads in exchange for lower max concurrency.

The bellow figures were taken by our lnx-cli on the small movies.json dataset, we didn't try any higher as Meilisearch takes an incredibly long time to index millions of docs although the new Meilisearch engine has improved this somewhat.

💔 Limitations

As much as lnx provides a wide range of features, it can not do it all being such a young system. Naturally, it has some limitations:

  • lnx is not distributed (yet) so this really does just scale vertically.
  • Simple but not too simple, lnx can't offer the same level of ease of use compared to MeiliSearch due to its schema-full nature and wide range of tuning options. With more tuning comes more settings, unfortunately.
  • Metrics (yet)

Local Development

Setup and usage is overall, as simple as cloning the repo and running cargo build or cargo run but on linux there is an additional caveat due to the DIRECT_IO implementation requirements:

lnx requires a kernel with a recent enough io_uring support, at least current enough to run discovery probes. The minimum version at this time is 5.8.

Please also note lnx requires at least 512 KiB of locked memory for io_uring to work. You can increase the memlock resource limit (rlimit) as follows:

$ vi /etc/security/limits.conf
*    hard    memlock        512
*    soft    memlock        512

Please note that 512 KiB is the minimum needed to spawn a single executor. Spawning multiple executors (multi-core runtime) may require you to raise the limit accordingly.

To make the new limits effective, you need to log in to the machine again. You can verify that the limits are updated by running the following:

$ ulimit -l
512
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].