All Projects → RediSearch → Redisearch Py

RediSearch / Redisearch Py

Licence: bsd-2-clause
RediSearch python client

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Redisearch Py

Radish
Desktop client for Redis (Windows, MacOS, Linux)
Stars: ✭ 117 (-23.03%)
Mutual labels:  redis, redis-client
Kangaroo
SQL client and admin tool for popular databases
Stars: ✭ 127 (-16.45%)
Mutual labels:  redis, redis-client
Cpp Bredis
Boost::ASIO low-level redis client (connector)
Stars: ✭ 117 (-23.03%)
Mutual labels:  redis, redis-client
Jredisbloom
Java Client for RedisBloom probabilistic module
Stars: ✭ 108 (-28.95%)
Mutual labels:  redis, redis-client
Redisdesktopmanager Mac
Redis Desktop Manager Mac OSX DMG
Stars: ✭ 149 (-1.97%)
Mutual labels:  redis, redis-client
Php Redis Client
RedisClient is a fast, fully-functional and user-friendly client for Redis, optimized for performance. RedisClient supports the latest versions of Redis starting from 2.6 to 6.0
Stars: ✭ 112 (-26.32%)
Mutual labels:  redis, redis-client
Redli
Redli - A humane alternative to the Redis-cli and TLS
Stars: ✭ 126 (-17.11%)
Mutual labels:  redis, redis-client
Ioredis
🚀 A robust, performance-focused, and full-featured Redis client for Node.js.
Stars: ✭ 9,754 (+6317.11%)
Mutual labels:  redis, redis-client
Redis web manager
Manage your Redis instance (see keys, memory used, connected client, etc...)
Stars: ✭ 139 (-8.55%)
Mutual labels:  redis, redis-client
Aioredis Py
asyncio (PEP 3156) Redis support
Stars: ✭ 2,003 (+1217.76%)
Mutual labels:  redis, redis-client
Iredis
Interactive Redis: A Terminal Client for Redis with AutoCompletion and Syntax Highlighting.
Stars: ✭ 1,661 (+992.76%)
Mutual labels:  redis, redis-client
Camellia
camellia framework by netease-im. provider: 1) redis-client; 2) redis-proxy(redis-sentinel/redis-cluster); 3) hbase-client; 4) others
Stars: ✭ 146 (-3.95%)
Mutual labels:  redis, redis-client
Redis Cui
Simple, visual command line tool for redis
Stars: ✭ 101 (-33.55%)
Mutual labels:  redis, redis-client
Redisearch Go
Go client for RediSearch
Stars: ✭ 116 (-23.68%)
Mutual labels:  redis, redis-client
Godis
redis client implement by golang, inspired by jedis.
Stars: ✭ 87 (-42.76%)
Mutual labels:  redis, redis-client
Redis Game Transaction
在大型游戏中经常使用分布式,分布式中因为游戏逻辑会经常游戏事务,借助redis特性我们可以实现分布式锁和分布式事务。很多redis集群不支持redis的事务特性。 这个框架用来解决分布式服务器下redis集群事务失效的情况下,基于分布式锁完成分布式事务。支持独占锁,共享锁,读写锁,并且支持事务提交失败情况下的回滚操作,让开发者可以有更多时间侧重游戏逻辑.
Stars: ✭ 124 (-18.42%)
Mutual labels:  redis, redis-client
Micropython Stm Lib
A collection of modules and examples for MicroPython running on an STM32F4DISCOVERY board
Stars: ✭ 64 (-57.89%)
Mutual labels:  redis, redis-client
Redisworks
Pythonic Redis Client
Stars: ✭ 78 (-48.68%)
Mutual labels:  redis, redis-client
Csredis
.NET Core or .NET Framework 4.0+ client for Redis and Redis Sentinel (2.8) and Cluster. Includes both synchronous and asynchronous clients.
Stars: ✭ 1,714 (+1027.63%)
Mutual labels:  redis, redis-client
Redis Client App
A redis client application on mac, windows and linux.
Stars: ✭ 140 (-7.89%)
Mutual labels:  redis, redis-client

license PyPI version CircleCI GitHub issues Codecov Known Vulnerabilities Total alerts

RediSearch Python Client

Forum Discord

This is a Python search engine library that utilizes the RediSearch Redis Module API.

It is the "official" client of RediSearch, and should be regarded as its canonical client implementation.

Features

RediSearch is a source avaliable (RSAL), high performance search engine implemented as a Redis Module. It uses custom data types to allow fast, stable and feature rich full-text search inside Redis.

This client is a wrapper around the RediSearch API protocol, that allows you to utilize its features easily.

RediSearch's features include:

  • Full-Text indexing of multiple fields in documents.
  • Incremental indexing without performance loss.
  • Document ranking (provided manually by the user at index time) and field weights.
  • Auto-complete suggestions (with fuzzy prefix suggestions).
  • Exact Phrase Search.
  • Stemming based query expansion in many languages (using Snowball).
  • Limiting searches to specific document fields (up to 8 fields supported).
  • Numeric filters and ranges.
  • Automatically index existing HASH keys as documents.

For more details, visit http://redisearch.io

Example: Using the Python Client

from redisearch import Client, TextField, IndexDefinition, Query

# Creating a client with a given index name
client = Client("myIndex")

# IndexDefinition is available for RediSearch 2.0+
definition = IndexDefinition(prefix=['doc:', 'article:'])

# Creating the index definition and schema
client.create_index((TextField("title", weight=5.0), TextField("body")), definition=definition)

# Indexing a document for RediSearch 2.0+
client.redis.hset('doc:1',
                mapping={
                    'title': 'RediSearch',
                    'body': 'Redisearch impements a search engine on top of redis'
                })

# Indexing a document for RediSearch 1.x
client.add_document(
    "doc:2",
    title="RediSearch",
    body="Redisearch implements a search engine on top of redis",
)

# Simple search
res = client.search("search engine")

# the result has the total number of results, and a list of documents
print(res.total) # "2"
print(res.docs[0].title) # "RediSearch"

# Searching with complex parameters:
q = Query("search engine").verbatim().no_content().with_scores().paging(0, 5)
res = client.search(q)

Installing

  1. Install RediSearch
  2. Install the Python client:
$ pip install redisearch

Testing

Testing can easily be performed using using Docker. Run the following:

make -C test/docker test PYTHON_VER=3

(Replace PYTHON_VER=3 with PYTHON_VER=2 to test with Python 2.7.)

Alternatively, use the following procedure:

First, run:

PYTHON_VER=3 ./test/test-setup.sh

This will set up a Python virtual environment in venv3 (or in venv2 if PYTHON_VER=2 is used).

Afterwards, run RediSearch in a container as a daemon:

docker run -d -p 6379:6379 redislabs/redisearch:2.0.0

Finally, invoke the virtual environment and run the tests:

. ./venv3/bin/activate
REDIS_PORT=6379 python test/test.py 
REDIS_PORT=6379 python test/test_builder.py
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].