Commit Graph
57 Commits
Author SHA1 Message Date
Florian Schade 0747008037 fix(search): ack every event the index service handles 2026-08-19 14:45:28 +02:00
Florian Schade 45403e0909 fix(search): take a deleted space out of the index when it is deleted 2026-08-19 13:47:44 +02:00
André Duffeck 2eb1fe069c Add a --concurrency flag to the index command
It controls the number of spaces that are indexed in parallel. The max
concurrency configured in the server is still considered.
2026-07-31 16:07:18 +02:00
André Duffeck e26a009fc1 Improve "opencloud search index" command
The command no longer times out after 10 minutes when the processing
hasn't been finished yet. Instead it shows progress and logs successful
and failed spaces. The process can also be aborted using ctrl+c.

Example output:

```
$ bin/opencloud search index --all-spaces --insecure --force-rescan
[1/602] indexed space a9033d65-6c13-4556-b923-f321ab33a9ca$eb6a8a0e-2e62-4b40-bce9-360063236676!eb6a8a0e-2e62-4b40-bce9-360063236676 in 5.501190908s
[2/602] indexed space a9033d65-6c13-4556-b923-f321ab33a9ca$34b7c565-da3b-4f53-8559-825e87db4011!34b7c565-da3b-4f53-8559-825e87db4011 in 5.935075697s
[3/602] indexed space a9033d65-6c13-4556-b923-f321ab33a9ca$e08c6026-24f6-4a9e-a805-ed335b34b8da!e08c6026-24f6-4a9e-a805-ed335b34b8da in 6.016350958s
^Caborted, indexing has been stopped
```

Fixes #2592
2026-07-31 14:50:09 +02:00
André Duffeck d50d8d8900 Rename max concurrency option 2026-07-31 12:04:44 +02:00
André Duffeck 243514ec17 Do not abort reindexing all spaces if one of the spaces fails 2026-07-30 15:34:57 +02:00
André Duffeck be75d8fe95 Reindex spaces concurrently
This speeds up reindexing all spaces which happend sequentially space
after space until now. The level of concurrency can be configured using
the SEARCH_REINDEX_CONCURRENCY env var (3 by default).
2026-07-30 15:25:13 +02:00
Michael Barz b4788ca45a fix: cleaner debounce timer test 2026-05-12 08:46:33 +02:00
Jörn Friedrich Dreyer 2d1cc3fb3a stop metrics tickers on context cancel
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
2026-04-28 16:18:45 +02:00
André Duffeck e9e195789d Adapt to changes in reva/cs3apis 2026-04-24 14:49:11 +02:00
Florian Schade 288e67cc39 chore: replace interface with any 2026-04-23 09:31:11 +02:00
André Duffeck 60bcc6b0f2 Add a flag to the reindex command to force a full reindex
That can be helpful when the search service configuration has changed,
e.g. by enabling TIKA. Previously files that had already been indexed
were not indexed again and thus were no part of the fulltext index.

Fixes #2285
Fixes #2578
2026-04-14 08:20:28 +02:00
André Duffeck d214a7535c Make the search index pick up changes to favorites 2026-03-13 09:38:28 +01:00
Jörn Friedrich Dreyer f54582ddc4 fix event consumers
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
2025-09-15 13:49:41 +02:00
Jörn Friedrich Dreyer 99dee5ae77 allow disabling search grpc/event servers
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
2025-09-15 12:42:56 +02:00
Juan Pablo Villafáñez c0b4a5daa0 chore: change constant name to camelcase 2025-09-08 17:32:36 +02:00
Juan Pablo Villafáñez ca2dc823ef feat: use names for connections to the nats event bus 2025-09-08 17:32:35 +02:00
fschade f615ccc896 enhancement(search): implement batch api 2025-09-02 13:06:08 +02:00
fschade 82e75e19c1 enhancement(search): move bleve engine into its own package and clean up the search batch processing implementation 2025-08-28 15:53:29 +02:00
fschade 42b794e01a refactor(search): cleanup for review 2025-08-28 09:32:05 +02:00
fschade a9d21bbb15 enhancement(search): allow to set the resource index name 2025-08-28 09:32:05 +02:00
fschade 85e436b2bb fix(search): open-search engine interface compatibility 2025-08-28 09:31:38 +02:00
fschade 63e71b5bc4 enhancement(search): allow to configure open-search as search backend 2025-08-28 09:30:59 +02:00
André Duffeck 3c8e2dacfd Improve indexing performance using batches 2025-08-04 15:15:54 +02:00
André Duffeck 791b4df173 Collect metrics about search and index durations 2025-07-17 15:23:57 +02:00
André Duffeck 400b9a5d30 Expose nats metrics of the search service 2025-07-17 14:33:23 +02:00
André Duffeck 4998e1e09f Inject a stream into HandleEvents to increase testability 2025-07-16 10:29:34 +02:00
André Duffeck 608af81913 Switch to the raw nats consumer instead of the go-micro events
This allows more direct control of the nats events. As a first step
we'll now acknowledge events manually, but in the future we'll add
metrics etc. to gain more insight into the queues.
2025-07-15 09:57:19 +02:00
Ralf Haferkamp c46e0c4b6b Fix build with go 1.24
Go 1.24 does some stricter checks now on arguments to functions
accepting format strings.
This commit fixes a couple of "non-constant format string in call
to ..." errors when running the unit tests.
2025-03-10 10:43:34 +01:00
André Duffeck e8d35e1280 Use the opencloud reva from now on 2025-01-21 11:16:38 +01:00
André Duffeck 8c8cdd9310 Adapt protobuf naming 2025-01-15 11:04:32 +01:00
Jörn Friedrich Dreyer b07b5a1149 use plain pkg module
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
2025-01-13 16:42:19 +01:00
Jörn Friedrich Dreyer 8e028f17e9 change module name
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
2025-01-13 09:58:18 +01:00
jkoberg 4e28fc45dc feat(search): allow indexing all spaces
Signed-off-by: jkoberg <jkoberg@owncloud.com>
2024-06-25 10:01:37 +02:00
jkoberg 63686d6cd7 feat(search): remove userid from indexspace methods
Signed-off-by: jkoberg <jkoberg@owncloud.com>
2024-06-25 10:01:37 +02:00
jkoberg 3e55223f2d allow authentication for events
Signed-off-by: jkoberg <jkoberg@owncloud.com>
2023-12-19 10:44:05 +01:00
kobergj 377a23ee7d Non-durable SSE streams (#7986)
* make sse streams non-durable

Signed-off-by: jkoberg <jkoberg@owncloud.com>

* bump reva

Signed-off-by: jkoberg <jkoberg@owncloud.com>

---------

Signed-off-by: jkoberg <jkoberg@owncloud.com>
2023-12-18 11:47:25 +01:00
Florian Schade 844783b6f9 [full-ci] - use KQL as default search query language (#7212)
* enhancement: use kql as default search query language

* enhancement: add support for unicode search queries

* fix: escape bleve field query whitespace

* fix: search related acceptance tests

* enhancement: remove legacy search query language

* enhancement: add support for kql dateTime restriction node types

* chore: bump web to v8.0.0-alpha.2

* fix: failing search api test

* enhancement: search bleve query compiler use DateRangeQuery as DateTimeNode counterpart

* enhancement: support for colon operators in dateTime kql queries
2023-09-07 11:13:33 +02:00
Florian Schade ed0dbce978 enhancement: Keyword Query Language (KQL) search syntax support (#7043)
* feat(search): introduce search query package

With the increasing complexity of how we organize our resources, the search must also be able to find them using entity properties.

The query package provides the necessary functionality to do this.

This makes it possible to search for resources via KQL, the microsoft spec is largely covered and can be used for this.

In the current state, the legacy query language is still used, in a future update this will be deprecated and KQL will become the standard
2023-08-28 16:41:36 +02:00
Daniel Swärd 49fc22d532 Add missing tracing references to multiple services. (#7110) 2023-08-23 15:17:17 +02:00
jkoberg 49cdcad129 unify eventstream creation
Signed-off-by: jkoberg <jkoberg@owncloud.com>
2023-08-16 10:14:12 +02:00
Jörn Friedrich DreyerandAndré Duffeck 2ea3b8c400 unmarshal token to filter spaces for current user (#6596)
* unmarshal token to filter spaces for current user

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* Fix tests

---------

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
Co-authored-by: André Duffeck <andre.duffeck@firondu.de>
2023-06-22 16:15:17 +02:00
Florian SchadeandRalf Haferkamp 4f26424db6 [full-ci] enhancement: use reva client pool selectors (#6452)
* enhancement: use reva client pool selectors

register mock service to registry and pass tests

* enhancement: bump reva

* Fix a couple of linter issues

---------

Co-authored-by: Ralf Haferkamp <rhaferkamp@owncloud.com>
2023-06-08 12:41:04 +02:00
Jörn Friedrich Dreyer 3aa864aecc Remove Staticcheck warnings (#5394)
* remove deprecated ioutil imports

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* remove duplicate imports

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* remove unused values

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* remove some unused types

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* remove deprecated ioutil import

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
2023-01-13 15:29:14 +01:00
jkoberg b29ffeb3a9 use stream pkg instead server pkg
Signed-off-by: jkoberg <jkoberg@owncloud.com>
2022-12-20 09:53:11 +01:00
Florian SchadeandDavid Christofas 2404eff48e [full-ci] experimental search backport (#5221)
* experimental search backport
fix basic extractor resource name
move escapeQuery regex into global variable
minor pr review changes
rename DebounceDuration env variable
add document title and content when rebuilding bleve resource

Co-authored-by: David Christofas <dchristofas@owncloud.com>
2022-12-13 14:22:41 +01:00
Jörn Friedrich Dreyer 0f7dba53fb use min tls 1.2 (#4969)
* use min tls 1.2

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* add changelog

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
2022-11-03 16:08:56 +01:00
André Duffeck 12bdf29ac4 Change the default reindex debounce duration to 1s.
Also make it configurable using an env var.
2022-11-03 13:15:54 +01:00
Ralf Haferkamp 3d57f5cc21 Introduce TLS Settings for all reva grpc services and clients 2022-10-25 11:50:08 +02:00
David Christofas 45b92fc56f add config option to enable or disable TLS for nats 2022-10-21 12:40:21 +02:00