Giter Site home page Giter Site logo

changsongyang / redisearch Goto Github PK

View Code? Open in Web Editor NEW

This project forked from redisearch/redisearch

0.0 2.0 0.0 25.61 MB

A query and indexing engine for Redis, providing secondary indexing, full-text search, and aggregations.

Home Page: https://redisearch.io

License: Other

Makefile 0.64% C 70.04% C++ 6.69% Python 17.76% Yacc 1.31% Ragel 0.44% Smarty 1.70% Shell 0.75% Lex 0.04% CMake 0.63%

redisearch's Introduction

Release CircleCI Dockerhub Codecov Total alerts

RediSearch

Querying, secondary indexing, and full-text search for Redis

Forum Discord

logo

Overview

RediSearch is a Redis module that provides querying, secondary indexing, and full-text search for Redis. To use RediSearch, you first declare indexes on your Redis data. You can then use the RediSearch query language to query that data.

RediSearch uses compressed, inverted indexes for fast indexing with a low memory footprint.

RediSearch indexes enhance Redis by providing exact-phrase matching, fuzzy search, and numeric filtering, among many other features.

Getting started

If you're just getting started with RediSearch, check out the official RediSearch tutorial. Also, consider viewing our RediSearch video explainer.

The fastest way to get up and running with RediSearch is by using the RediSearch Docker image.

Trying RediSearch

To try RediSearch, either use the RediSearch Docker image, or create a free Redis Cloud Essentials account to get a RediSearch instance in the cloud.

Docker image

The RediSearch Docker image makes it easy to try RediSearch.

To create a local RediSearch container, run:

$ docker run -p 6379:6379 redislabs/redisearch:latest

To connect to this instance, run:

$ redis-cli

Documentation

The RediSearch documentation provides a complete overview of RediSearch. Helpful sections include:

Mailing list and forum

Got questions? Join us in #redisearch on the Redis Discord server.

If you have a more detailed question, drop us a line on the RediSearch Discussion Forum.

Client libraries

You can use any standard Redis client library to run RediSearch commands, but it's easiest to use a library that wraps the RediSearch API.

Language Library Author License Stars Comment
Python redis-py Redis BSD redis-py-stars
Python redis-om Redis BSD-3-Clause redis-om-python-stars
Java Jedis Redis MIT Jedis-stars
Java JRediSearch Redis BSD JRediSearch-stars Deprecated
Java lettusearch Redis Apache-2.0 lettusearch-stars
Java spring-redisearch Redis Apache-2.0 spring-redisearch-stars
Java redis-om-spring Redis BSD-3-Clause redis-om-spring-stars
Java redis-modules-java dengliming Apache-2.0 redis-modules-java-stars
Go redisearch-go Redis BSD redisearch-go-stars
JavaScript Redis-om Redis BSD-3-Clause redis-om-node-stars
TypeScript Node-Redis Redis MIT node-redis-stars
TypeScript redis-modules-sdk Dani Tseitlin BSD-3-Clause redis-modules-sdk-stars
C# NRediSearch Marc Gravell MIT NRediSearch-stars
C# Redis.OM Redis BSD-3-Clause redis-om-dotnet-stars
PHP redisearch-php Ethan Hann MIT redisearch-php-stars
PHP php-redisearch MacFJA MIT php-redisearch-stars
Rust redisearch-api-rs Redis BSD redisearch-api-rs-stars
Ruby on Rails redi_search_rails Dmitry Polyakovsky MIT redi_search_rails-stars
Ruby redisearch-rb Victor Ruiz MIT redisearch-rb-stars
Ruby redi_search Nick Pezza MIT redi_search-stars

RediSearch features

  • Full-Text indexing of multiple fields in Redis hashes
  • Incremental indexing without performance loss
  • Document ranking (using tf-idf, with optional user-provided weights)
  • Field weighting
  • Complex boolean queries with AND, OR, and NOT operators
  • Prefix matching, fuzzy matching, and exact-phrase queries
  • Support for double-metaphone phonetic matching
  • Auto-complete suggestions (with fuzzy prefix suggestions)
  • Stemming-based query expansion in many languages (using Snowball)
  • Support for Chinese-language tokenization and querying (using Friso)
  • Numeric filters and ranges
  • Geospatial searches using Redis geospatial indexing
  • A powerful aggregations engine
  • Supports for all utf-8 encoded text
  • Retrieve full documents, selected fields, or only the document IDs
  • Sorting results (for example, by creation date)

Cluster support

RediSearch has a distributed cluster version that scales to billions of documents across hundreds of servers. At the moment, distributed RediSearch is available as part of Redis Enterprise Cloud and Redis Enterprise Software.

See RediSearch on Redis Enterprise for more information.

License

RediSearch is licensed under the Redis Source Available License Agreement.

redisearch's People

Contributors

dvirsky avatar mnunberg avatar meirshpilraien avatar ashtul avatar rafie avatar gkorland avatar itamarhaber avatar dvirdukhan avatar k-jo avatar chayim avatar xushenkun avatar emmanuelkeller avatar mheiber avatar oshadmi avatar filipecosta90 avatar guyav46 avatar lemire avatar alonre24 avatar lamby avatar stockholmux avatar kerneljake avatar joeirimpan avatar leibale avatar swilly22 avatar amallia avatar devnexen avatar simonprickett avatar dnielsen avatar sazzad16 avatar pstuifzand avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.