blob: fb3a4a6a46dcea29f91445f1d56149ee8f779ed6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
# remirepo/fedora spec file for valkey-search
#
# SPDX-FileCopyrightText: Copyright 2025 Remi Collet
# SPDX-License-Identifier: CECILL-2.1
# http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
#
# Please, preserve the changelog entries
#
%global cfgname search.conf
%global libname search.so
# Github forge
%global gh_vend valkey-io
%global gh_proj valkey-search
%global forgeurl https://github.com/%{gh_vend}/%{gh_proj}
#global commit afe5de4ce52bb2b80af565a6f297bf330a65d0d8
%global tag %{version}
Name: valkey-search
Version: 1.0.1
%forgemeta
Release: 1%{?dist}
Summary: Vector Similarity Search engine
# this module is BSD-3-Clause
# RapidJSON is MIT
License: BSD-3-Clause AND MIT
URL: %{forgeurl}
Source0: %{forgesource}
# see submodules/CMakeLists.txt
Source1: makedeps.sh
Source2: %{name}-deps-%{version}.tgz
# fix check for cached sources
Patch0: %{name}-offline.patch
BuildRequires: valkey-devel >= 8.0
BuildRequires: ninja-build
BuildRequires: cmake
BuildRequires: gcc >= 12
BuildRequires: gcc-c++
BuildRequires: openssl-devel
%if 0%{?fedora} >= 41
BuildRequires: openssl-devel-engine
%endif
BuildRequires: systemd-devel
Requires: valkey(modules_abi)%{?_isa} = %{valkey_modules_abi}
Requires: valkey >= 8.0
Supplements: valkey
Provides: bundled(highwayhash)
Provides: bundled(googletest)
Provides: bundled(grpc) = 1.70.1
%description
valkey-search (BSD-3-Clause), provided as a Valkey module,
is a high-performance Vector Similarity Search engine optimized
for AI-driven workloads. It delivers single-digit millisecond
latency and high QPS, capable of handling billions of vectors
with over 99% recall.
valkey-search allows users to create indexes and perform similarity
searches, incorporating complex filters. It supports Approximate Nearest
Neighbor (ANN) search with HNSW and exact matching using K-Nearest Neighbors
(KNN). Users can index data using either Valkey Hash or Valkey-JSON data types.
While valkey-search currently focuses on Vector Search, its goal is to extend
Valkey into a full-fledged search engine, supporting Full Text Search and
additional indexing options.
%prep
%setup -q -n %{gh_proj}-%{version} -a2
%patch -P0 -p1 -b .offline
: Configuration file
cat << EOF | tee %{cfgname}
# %{gh_proj}
loadmodule %{valkey_modules_dir}/%{libname}
EOF
cp .build-release/.deps/grpc/LICENSE LICENSE.grpc
cp .build-release/.deps/highwayhash/LICENSE LICENSE.highwayhash
cp .build-release/.deps/googletest/LICENSE LICENSE.googletest
: submodules list
grep -E '(github.com|"v)' submodules/CMakeLists.txt
%build
./build.sh --verbose
%install
install -Dpm755 .build-release/*%{libname} %{buildroot}%{valkey_modules_dir}/%{libname}
install -Dpm640 %{cfgname} %{buildroot}%{valkey_modules_cfg}/%{cfgname}
%files
%license LICENSE*
%doc *.md
%attr(0640, valkey, root) %config(noreplace) %{valkey_modules_cfg}/%{cfgname}
%{valkey_modules_dir}/%{libname}
%changelog
* Fri Sep 5 2025 Remi Collet <remi@remirepo.net> - 1.0.1-1
- initial package
|