Giter Site home page Giter Site logo

redisearch / redisearchbenchmark Goto Github PK

View Code? Open in Web Editor NEW
44.0 44.0 7.0 180 KB

Benchmarks for the RediSearch module

Home Page: https://redisearch.io

License: BSD 3-Clause "New" or "Revised" License

Go 98.71% Makefile 1.29%
benchmark benchmarking-redisearch redis-search redisearch

redisearchbenchmark's Introduction

Dockerhub Codecov Forum Discord

Latest Release

Latest 2.8 Latest 2.6

RediSearch

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

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 Redis Stack Docker image.

How do I Redis?

Learn for free at Redis University

Build faster with the Redis Launchpad

Try the Redis Cloud

Dive in developer tutorials

Join the Redis community

Work at Redis

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 Redis Stack Docker image makes it easy to try RediSearch.

To create a local RediSearch container, run:

$ docker run -p 6379:6379 redis/redis-stack-server: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

Official clients

NRedisStack Jedis node-redis redis-py
Redis.OM Redis OM Spring redis-om-node redis-om

Community-maintained clients

Project Language License Author Stars
redisson Java MIT Redisson Stars
redisearch-go Go BSD Redis redisearch-go-stars
rueidis Go Apache 2.0 Rueian rueidis-stars
redisearch-php PHP MIT Ethan Hann redisearch-php-stars
php-redisearch PHP MIT MacFJA php-redisearch-stars
redisearch-api-rs Rust BSD Redis redisearch-api-rs-stars
redi_search_rails Ruby MIT Dmitry Polyakovsky redi_search_rails-stars
redisearch-rb Ruby MIT Victor Ruiz redisearch-rb-stars
redi_search Ruby MIT Nick Pezza redi_search-stars
coredis Python MIT Ali-Akber Saifee coredis-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 Cloud and Redis Enterprise Software.

See RediSearch on Redis Enterprise for more information.

License

RediSearch is licensed under the Redis Source Available License 2.0 (RSALv2) or the Server Side Public License v1 (SSPLv1).

redisearchbenchmark's People

Contributors

dvirsky avatar filipecosta90 avatar gkorland avatar kereno avatar meirshpilraien avatar mnunberg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

redisearchbenchmark's Issues

Seg fault while trying to ingest

While attempting to run the benchmark, I keep running into seg faults.

I'm running Redis 4.02 (OSS) / RediSearch 0.21.3 with 5 nodes. While running the benchmark using this:

./RediSearchBenchmark -engine redis -shards 5 -hosts "localhost:6379,localhost:6380,localhost:6381,localhost:6382,localhost:6383"     -file ~/enwiki-latest-abstract.xml

I'm guessing this is a RediSearch issue, so I'll x-post an issue over on that repo.

Here are the dumps - I was pretty consistently getting 2 out of 5 shards seg faulting.

redisearch-ingest-seg-fault2.txt
redisearch-ingest-seg-fault1.txt

document-benchmark crashed using wiki dataset

I'm using Redis 7.2.0 (29622276/0) 64 bit and RediSearch module 2.8.13. download document-benchmark tool: RediSeachBenchmark.
here is the steps to reproduce:

  1. wget https://s3.amazonaws.com/benchmarks.redislabs/redisearch/datasets/enwiki-abstract/enwiki-latest-abstract.xml
  2. ./document-benchmark -hosts "127.0.0.1:6379" -engine redis -file enwiki-latest-abstract.xml -maxdocs 100000
  3. ./document-benchmark -hosts "127.0.0.1:6379" -engine redis -benchmark search -file enwiki-latest-abstract.xml
    then RediSearchBenchmark crashed during running:
2024/07/18 09:00:59 Using a total of 256 concurrent benchmark workers
2024/07/18 09:00:59 Using input file to produce terms for the benchmarks
2024/07/18 09:00:59 Starting full-text queries benchmark
                 Test time                      Command Rate   Client p50 with RTT(ms)            Total Commands
panic: redis: unexpected type=map[interface {}]interface {} for Slice

goroutine 428 [running]:
main.Benchmark.func1()
        /github/workspace/benchmark.go:172 +0x21c
created by main.Benchmark
        /github/workspace/benchmark.go:166 +0x2bb

README out of date

It appears head of master is trying to load a reddit json file, I had to checkout an old commit to get things to work.
What is scores.csv and where can I get it, how is it used in the bench?
What versions of Elasticsearch are supported by this benchmark?

value is too large to be recorded on hdrhistogram

2022/09/29 20:44:52 Using a total of 64 concurrent benchmark workers
2022/09/29 20:44:52 Using input file to produce terms for the benchmarks
2022/09/29 20:44:53 Starting term-level queries benchmark: Type SUFFIX
                 Test time                      Command Rate   Client p50 with RTT(ms)            Total Commands
panic: value 1055646 is too large to be recorded       80.97                   494.591                        81

goroutine 114 [running]:
main.Benchmark.func1()
	/github/workspace/benchmark.go:177 +0x20e
created by main.Benchmark

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.