{"id":29190613,"url":"https://github.com/owncloud/search_elastic","last_synced_at":"2025-07-02T00:10:30.995Z","repository":{"id":23476449,"uuid":"26841290","full_name":"owncloud/search_elastic","owner":"owncloud","description":"Elasticsearch based full text search","archived":false,"fork":false,"pushed_at":"2024-03-25T06:07:18.000Z","size":1542,"stargazers_count":6,"open_issues_count":42,"forks_count":1,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-06-28T18:13:15.727Z","etag":null,"topics":["owncloud-app"],"latest_commit_sha":null,"homepage":"https://github.com/owncloud/search_elastic","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"nmap/ncrack","license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/owncloud.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2014-11-19T02:48:57.000Z","updated_at":"2025-03-18T21:49:02.000Z","dependencies_parsed_at":"2023-02-14T09:47:04.424Z","dependency_job_id":"4bb64cff-1d01-48dd-af71-3afa49ee9f35","html_url":"https://github.com/owncloud/search_elastic","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/owncloud/search_elastic","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owncloud%2Fsearch_elastic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owncloud%2Fsearch_elastic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owncloud%2Fsearch_elastic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owncloud%2Fsearch_elastic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/owncloud","download_url":"https://codeload.github.com/owncloud/search_elastic/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owncloud%2Fsearch_elastic/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263052430,"owners_count":23406106,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["owncloud-app"],"created_at":"2025-07-02T00:10:30.422Z","updated_at":"2025-07-02T00:10:30.975Z","avatar_url":"https://github.com/owncloud.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Elasticsearch\n\n[![Build Status](https://drone.owncloud.com/api/badges/owncloud/search_elastic/status.svg?branch=master)](https://drone.owncloud.com/owncloud/search_elastic)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=owncloud_search_elastic\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=owncloud_search_elastic)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=owncloud_search_elastic\u0026metric=security_rating)](https://sonarcloud.io/dashboard?id=owncloud_search_elastic)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=owncloud_search_elastic\u0026metric=coverage)](https://sonarcloud.io/dashboard?id=owncloud_search_elastic)\n\nThe search_elastic app adds a full text search for files stored in ownCloud. It requires an [elasticsearch](http://www.elasticsearch.org) server and can index all files supported by apache tika, e.g., plain text, .docx, .xlsx, .pptx, .odt, .ods and .pdf files. The source code is available on [GitHub](https://github.com/owncloud/search_elastic). For more information please read the documentation at [https://doc.owncloud.com](https://doc.owncloud.com/server/latest/admin_manual/configuration/general_topics/search.html).\n\n## Maintainers\n\n- [Jörn Friedrich Dreyer](https://github.com/butonic)\n\n## Todo\n\n- [x] update elastica lib\n- [x] restore compatibility with oc8.2\n- [x] restore compatibility with elasticsearch (requires new indexes)\n- [x] store groups and users with access to filter search results by group membership\n- [x] store fileid instead of filenames so we don't have to handle renames\n- [x] use instanceid to set up index - allows using the same elasticsearch instance for multiple oc instances\n- [x] store the filename to allow faster search in shared files\n  - index files and folders\n- [ ] store tags?\n- [ ] store image / video dimensions?\n- sharing a file immediately after it has been uploaded throws an exception\n  - [x] fix exception / do not try to update a nonexistent document\n  - [x] get all users and groups when initially indexing the document\n- [x] move share updates to background job -\u003e eventually searchable\n  - [x] descend subdirs when updating\n  - [x] check permissions again on search and remove results if no longer accessible\n    - [ ] compensate for removed entries in search results, too many will confuse the paging logic\n- [ ] --index in batches (make batch size configurable, 0 = unlimited)\n  - CLI cron.php executes all jobs\n    - [ ] limit number of files to 250? per job?\n- add occ commands\n  - [x] index all files or only those of a specific user\n  - [x] enable / disable automatic background scanning via cron\n    - [ ] admin settings ui for this\n- [x] check js for result link handling so clicking a result dos not do a full page load, there seems to be js in place that already does the file highlighting\n  - the old filehandler logic does not seem to work, removed it, now using plain link\n- [ ] send code snippets for search_lucene\n- [ ] use file tab\n  - [ ] show index status\n  - [ ] remember index error message in db\n- [x] check encryption compatibility\n  - [x] had to jump a few hoops to get master key working\n  - not compatible with user individual keys\n    - [ ] at least index metadata in this case (catch encryption exception and ignore content extraction)\n- [ ] statistics on admin settings page\n- [ ] statistics on personal settings page\n- [x] cleanup code\n- [x] port test suite from search_lucene\n- [x] resolve path for shared files\n- [x] files with empty content extraction are reindexed indefinitely? e.g., empty text file\n- [x] more debug logging\n- [x] wildcard search ... but there is a [bug](https://github.com/owncloud/core/pull/23531) in core js code preventing wildcard search\n  - well partly. \\* and ? are no longer supported. Instead, we now mimic core, which is called a [match phrase prefix](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query.html#query-dsl-match-query-phrase-prefix) type query\n- [ ] to find out why a node cannot be found by its contents mark it as \"NO CONTENT EXTRACTED\"?\n- [ ] how should we handle files in userhome/files_versions/ or userhome/thumbnails/ ... currently a 'vanished' message will be logged ... annoying\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fowncloud%2Fsearch_elastic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fowncloud%2Fsearch_elastic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fowncloud%2Fsearch_elastic/lists"}