add fulltextsearch capability

Signed-off-by: jkoberg <jkoberg@owncloud.com>
This commit is contained in:
jkoberg
2023-05-23 15:39:05 +02:00
parent 76ee77c835
commit 50ef698fda
5 changed files with 12 additions and 4 deletions

View File

@@ -0,0 +1,5 @@
Enhancement: Add fulltextsearch capabilty
It needs an extra envvar `FRONTEND_FULL_TEXT_SEARCH_ENABLED`
https://github.com/owncloud/ocis/pull/6366

View File

@@ -48,6 +48,7 @@ type Config struct {
Checksums Checksums `yaml:"checksums"`
ReadOnlyUserAttributes []string `yaml:"read_only_user_attributes" env:"FRONTEND_READONLY_USER_ATTRIBUTES" desc:"Comma separated list of user attributes to indicate as read-only. Supported values: 'user.onPremisesSamAccountName' (username), 'user.displayName', 'user.mail', 'user.passwordProfile' (password), 'user.appRoleAssignments' (role), 'user.accountEnabled' (login allowed), 'drive.quota' (quota)."`
LDAPServerWriteEnabled bool `yaml:"ldap_server_write_enabled" env:"OCIS_LDAP_SERVER_WRITE_ENABLED;FRONTEND_LDAP_SERVER_WRITE_ENABLED" desc:"Allow creating, modifying and deleting LDAP users via the GRAPH API. This can only be set to 'true' when keeping default settings for the LDAP user and group attribute types (the 'OCIS_LDAP_USER_SCHEMA_* and 'OCIS_LDAP_GROUP_SCHEMA_* variables)."`
FullTextSearch bool `yaml:"full_text_search" env:"FRONTEND_FULL_TEXT_SEARCH_ENABLED" descr:"Set to true to signal the web client that full-text search is enabled."`
Middleware Middleware `yaml:"middleware"`

View File

@@ -52,6 +52,7 @@ func FrontendConfigFromStruct(cfg *config.Config) (map[string]interface{}, error
"archivers": archivers,
"app_providers": appProviders,
"favorites": cfg.EnableFavorites,
"full_text_search": cfg.FullTextSearch,
}
if cfg.DefaultUploadProtocol == "tus" {

View File

@@ -8,7 +8,7 @@ The search service is responsible for metadata and content extraction, stores th
## General Considerations
* To use the search service, an event system needs to be configured for all services like NATS, which is shipped and preconfigured.
* The search service consumes events and does not block other tasks.
* The search service consumes events and does not block other tasks.
* When looking for content extraction, [Apache Tika - a content analysis toolkit](https://tika.apache.org) can be used but needs to be installed separately.
Extractions are stored as index via the search service. Consider that indexing requires adequate storage capacity - and the space requirement will grow. To avoid filling up the filesystem with the index and rendering Infinite Scale unusable, the index should reside on its own filesystem.
@@ -57,6 +57,8 @@ When using the Tika container and docker-compose, consider the following:
* See the [ocis_wopi](https://github.com/owncloud/ocis/tree/master/deployments/examples/ocis_wopi) example.
* Containers for the linked service are reachable at a hostname identical to the alias or the service name if no alias was specified.
If using `tika` extractor, make sure to also set `FRONTEND_FULL_TEXT_SEARCH_ENABLED` in the frontend service. This will tell the webclient that full-text search is enabled.
## Search Functionality
The search service consists of two main parts which are file `indexing` and file `search`.
@@ -131,6 +133,6 @@ Note that not names but IDs are necessary and that the specified user ID needs a
The indexing process tries to be self-healing in some situations.
In the following example, let's assume a file tree `foo/bar/baz` exists.
If the folder `bar` gets renamed to `new-bar`, the path to `baz` is no longer `foo/bar/baz` but `foo/new-bar/baz`.
In the following example, let's assume a file tree `foo/bar/baz` exists.
If the folder `bar` gets renamed to `new-bar`, the path to `baz` is no longer `foo/bar/baz` but `foo/new-bar/baz`.
The search service checks the change and either just updates the path in the index or creates a new index for all items affected if none was present.

View File

@@ -48,7 +48,6 @@ The expected failures in this file are from features in the owncloud/ocis repo.
### [Copy or move on an existing resource doesn't create a new version but deletes instead](https://github.com/owncloud/ocis/issues/4797)
- [apiSpacesShares/moveSpaces.feature:322](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpacesShares/moveSpaces.feature#L322)
- [apiSpacesShares/copySpaces.feature:752](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpacesShares/copySpaces.feature#L752)
- [apiSpacesShares/copySpaces.feature:793](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpacesShares/copySpaces.feature#L793)
### [Creating group with empty name returns status code 200](https://github.com/owncloud/ocis/issues/5050)