Skip to content
Java Client for RediSearch
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Update config.yml Mar 13, 2019
src chaining constructors for single-spot defaulting of sortable Schema.T… Jun 16, 2019
.circleci.settings.xml Fix typo in OSSRH_USERNAME Aug 13, 2018
.gitignore Remove and ignore target Feb 27, 2018
LICENSE documented and added license Feb 19, 2017
README.md add JDoc badge Feb 8, 2019
pom.xml update version Feb 18, 2019

README.md

license CircleCI GitHub issues Maven Central Javadocs Codecov

JRediSearch

A Java Client Library for RediSearch

Overview

This project contains a Java library abstracting the API of the RediSearch Redis module, that implements a powerful in-memory search engine inside Redis.

Installing

JRediSearch is available using the maven central snapshot repository and via official releases.

Official Releases

  <dependencies>
    <dependency>
      <groupId>com.redislabs</groupId>
      <artifactId>jredisearch</artifactId>
      <version>0.22.0</version>
    </dependency>
  </dependencies>

Snapshots

  <repositories>
    <repository>
      <id>snapshots-repo</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </repository>
  </repositories>

and

  <dependencies>
    <dependency>
      <groupId>com.redislabs</groupId>
      <artifactId>jredisearch</artifactId>
      <version>0.23.0-SNAPSHOT</version>
    </dependency>
  </dependencies>

Usage example

Initializing the client with JedisPool:

import io.redisearch.client.Client;
import io.redisearch.Document;
import io.redisearch.SearchResult;
import io.redisearch.Query;
import io.redisearch.Schema;

...

Client client = new Client("testung", "localhost", 6379);

Initializing the client with JedisSentinelPool:

import io.redisearch.client.Client;
import io.redisearch.Document;
import io.redisearch.SearchResult;
import io.redisearch.Query;
import io.redisearch.Schema;

...

private static final String MASTER_NAME = "mymaster";
private static final Set<String> sentinels;
static {
    sentinels = new HashSet();
    sentinels.add("localhost:7000");
    sentinels.add("localhost:7001");
    sentinels.add("localhost:7002");
}

...

Client client = new Client("testung", MASTER_NAME, sentinels);

Defining a schema for an index and creating it:

Schema sc = new Schema()
                .addTextField("title", 5.0)
                .addTextField("body", 1.0)
                .addNumericField("price");

client.createIndex(sc, Client.IndexOptions.Default());

Adding documents to the index:

Map<String, Object> fields = new HashMap<>();
fields.put("title", "hello world");
fields.put("body", "lorem ipsum");
fields.put("price", 1337);

client.addDocument("doc1", fields);

Searching the index:

// Creating a complex query
Query q = new Query("hello world")
                    .addFilter(new Query.NumericFilter("price", 0, 1000))
                    .limit(0,5);

// actual search
SearchResult res = client.search(q);


Also supported:

  • Geo filtering
  • Exact matching
  • Union matching
  • Stemming in 17 languages
  • Deleting and updating documents on the fly
  • And much more... See https://oss.redislabs.com/redisearch/ for more details.
You can’t perform that action at this time.