Fuzzering
Fuzzering PostgreSQL Extension
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
About The Project
Fuzzering is the light weight PostgreSQL extension supports searching fuzzy string using Levenshtein Distance
Introduction
Fuzzering applies Levenshtein distance for comparing each content of two sentenses.
In the first step i made, this extension is suitable for find the probability of occurrence keyword from the whole content which type likes as TEXT
or VARCHAR
It will improve the result of
"SELECT name FROM users WHERE lower(REPLACE(name, ' ', '')) LIKE '%?%'", 'shane'
Getting Started
Prerequisites
You need to install some package for build the extension:
- Clang
# Ubuntu sudo apt install clang # Arch sudo pacman -S clang
- LLVM
# Ubuntu sudo apt install llvm # Arch sudo pacman -S llvm
Build and Install
- Build
sudo make USE_PGXS=1 install
- Install
CREATE EXTENSION fuzzering;
- For Rails Developers
- Create migration file
rails g migration add_fuzzering_extension
- Add change function
class AddFuzzeringExtension < ActiveRecord::Migration[6.1] def change enable_extension "fuzzering" end end
- Migrate
rake db:migrate
Usage
- SQL query
SELECT name, fuzzering('khăng giấy', name) rank FROM products WHERE fuzzering('khăng giấy', name) > 0.5 ORDER BY rank DESC ;
Roadmap
See the open issues for a list of proposed features (and known issues).
Contributing
Code Base
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
License
Distributed under the MIT License. See LICENSE
for more information.
Contact
Shanenoi - @shanenoi - shanenoi.org@gmail.com
Project Link: Fuzzering