Skip to content

Commit

Permalink
textproc/redisearch20: add RediSearch, version 2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
osokin committed Nov 2, 2021
1 parent 106d1fb commit 6957a75
Show file tree
Hide file tree
Showing 7 changed files with 89 additions and 0 deletions.
1 change: 1 addition & 0 deletions textproc/Makefile
Expand Up @@ -1540,6 +1540,7 @@
SUBDIR += redet
SUBDIR += redisearch
SUBDIR += redisearch16
SUBDIR += redisearch20
SUBDIR += redland
SUBDIR += redland-bindings
SUBDIR += refdb
Expand Down
30 changes: 30 additions & 0 deletions textproc/redisearch20/Makefile
@@ -0,0 +1,30 @@
# Created by: Sergey A. Osokin <osa@FreeBSD.org>

PORTNAME= redisearch20
DISTVERSIONPREFIX= v
DISTVERSION= 2.0.12
CATEGORIES= textproc

MAINTAINER= osa@FreeBSD.org
COMMENT= Full-text search over Redis

LICENSE= UNKNOWN
LICENSE_NAME= Redis Source Available License Agreement
LICENSE_FILE= ${WRKSRC}/LICENSE
LICENSE_PERMS= dist-mirror pkg-mirror auto-accept

USES= cmake compiler

USE_GITHUB= yes
GH_ACCOUNT= RediSearch
GH_PROJECT= RediSearch

CMAKE_ARGS= -DGIT_DESCRIBE_VERSION:STRING=${PKGVERSION}

PLIST_FILES= lib/redisearch20.so

do-install:
${INSTALL_LIB} ${INSTALL_WRKSRC}/redisearch.so \
${STAGEDIR}${PREFIX}/lib/redisearch20.so

.include <bsd.port.mk>
3 changes: 3 additions & 0 deletions textproc/redisearch20/distinfo
@@ -0,0 +1,3 @@
TIMESTAMP = 1631192711
SHA256 (RediSearch-RediSearch-v2.0.12_GH0.tar.gz) = 1c5c8165d0a2daca3b27b353b5ae8efa4b5816113942b3a962987ae3a21a728d
SIZE (RediSearch-RediSearch-v2.0.12_GH0.tar.gz) = 3989839
21 changes: 21 additions & 0 deletions textproc/redisearch20/files/patch-src_fork__gc.c
@@ -0,0 +1,21 @@
--- src/fork_gc.c.orig 2020-04-12 11:18:47 UTC
+++ src/fork_gc.c
@@ -282,6 +282,7 @@ done:
}

static void sendHeaderString(ForkGC *gc, void *arg) {
+ struct iovec { void *iov_base; size_t iov_len; };
struct iovec *iov = arg;
FGC_sendBuffer(gc, iov->iov_base, iov->iov_len);
}
@@ -298,7 +299,9 @@ static void FGC_childCollectTerms(ForkGC *gc, RedisSea
RedisModuleKey *idxKey = NULL;
InvertedIndex *idx = Redis_OpenInvertedIndexEx(sctx, term, strlen(term), 1, &idxKey);
if (idx) {
- struct iovec iov = {.iov_base = (void *)term, termLen};
+ struct iovec { void *iov_base; size_t iov_len; } iov;
+ iov.iov_base = term;
+ iov.iov_len = termLen;
FGC_childRepairInvidx(gc, sctx, idx, sendHeaderString, &iov, NULL);
}
if (idxKey) {
11 changes: 11 additions & 0 deletions textproc/redisearch20/files/patch-src_numeric__index.c
@@ -0,0 +1,11 @@
--- src/numeric_index.c.orig 2020-02-29 20:43:50 UTC
+++ src/numeric_index.c
@@ -474,7 +474,7 @@ int NumericIndexType_Register(RedisModuleCtx *ctx) {
.rdb_save = NumericIndexType_RdbSave,
.aof_rewrite = GenericAofRewrite_DisabledHandler,
.free = NumericIndexType_Free,
- .mem_usage = NumericIndexType_MemUsage};
+ .mem_usage = (const void *)NumericIndexType_MemUsage};

NumericIndexType = RedisModule_CreateDataType(ctx, "numericdx", NUMERIC_INDEX_ENCVER, &tm);
if (NumericIndexType == NULL) {
11 changes: 11 additions & 0 deletions textproc/redisearch20/files/patch-src_redis__index.c
@@ -0,0 +1,11 @@
--- src/redis_index.c.orig 2020-02-29 20:35:56 UTC
+++ src/redis_index.c
@@ -108,7 +108,7 @@ int InvertedIndex_RegisterType(RedisModuleCtx *ctx) {
.rdb_load = InvertedIndex_RdbLoad,
.rdb_save = InvertedIndex_RdbSave,
.aof_rewrite = GenericAofRewrite_DisabledHandler,
- .mem_usage = InvertedIndex_MemUsage,
+ .mem_usage = (const void *)InvertedIndex_MemUsage,
.free = InvertedIndex_Free};

InvertedIndexType = RedisModule_CreateDataType(ctx, "ft_invidx", INVERTED_INDEX_ENCVER, &tm);
12 changes: 12 additions & 0 deletions textproc/redisearch20/pkg-descr
@@ -0,0 +1,12 @@
RediSearch is a source available Full-Text and Secondary Index
engine over Redis, developed by Redis Labs.

Redisearch implements a search engine on top of Redis, but
unlike other Redis search libraries, it does not use internal
data structures like sorted sets.

This also enables more advanced features, like exact phrase
matching and numeric filtering for text queries, that are not
possible or efficient with traditional Redis search approaches.

WWW: https://oss.redislabs.com/redisearch/

0 comments on commit 6957a75

Please sign in to comment.