gituser/docker_multiarch/: redisearch-2.0.0 metadata and description

Homepage Simple index

RedisSearch Python Client

author RedisLabs
author_email oss@redislabs.com
classifiers
  • Development Status :: 4 - Beta
  • Intended Audience :: Developers
  • License :: OSI Approved :: BSD License
  • Programming Language :: Python :: 2.7
  • Topic :: Database
  • Topic :: Software Development :: Testing
description_content_type text/markdown
keywords Redis Search Extension
requires_dist
  • hiredis (>=0.2.0)
  • redis (>=2.10)
  • rmtest (>=0.2)
  • six (>=1.10.0)
File Tox results History
redisearch-2.0.0-py3-none-any.whl
Size
23 KB
Type
Python Wheel
Python
3

license PyPI version CircleCI GitHub issues Codecov Known Vulnerabilities Total alerts

RediSearch Python Client

Forum Gitter

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:

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 avaliable 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](http://redisearch.io/Quick_Start
  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