{"id":15501605,"url":"https://github.com/rohberg/volto-searchkit-block","last_synced_at":"2025-07-06T00:03:08.433Z","repository":{"id":101387347,"uuid":"324401436","full_name":"rohberg/volto-searchkit-block","owner":"rohberg","description":"Plone block with OpenSearch powered faceted search","archived":false,"fork":false,"pushed_at":"2025-03-26T14:05:19.000Z","size":4516,"stargazers_count":5,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-23T07:26:12.379Z","etag":null,"topics":["compound","elasticsearch-queries","find","fuzzy","german","opensearch","search","volto","volto-addon","volto-block"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rohberg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-12-25T17:05:05.000Z","updated_at":"2025-01-30T07:22:12.000Z","dependencies_parsed_at":"2024-01-20T11:24:02.655Z","dependency_job_id":"3c24b0b7-0795-47c9-ac23-bd1c99123263","html_url":"https://github.com/rohberg/volto-searchkit-block","commit_stats":{"total_commits":451,"total_committers":2,"mean_commits":225.5,"dds":"0.0022172949002217113","last_synced_commit":"deafaba23bdfbe6f21e1c08d5aa827dc1e64b479"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":"rohberg/volto-addon-template","purl":"pkg:github/rohberg/volto-searchkit-block","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rohberg%2Fvolto-searchkit-block","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rohberg%2Fvolto-searchkit-block/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rohberg%2Fvolto-searchkit-block/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rohberg%2Fvolto-searchkit-block/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rohberg","download_url":"https://codeload.github.com/rohberg/volto-searchkit-block/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rohberg%2Fvolto-searchkit-block/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261509606,"owners_count":23169676,"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":["compound","elasticsearch-queries","find","fuzzy","german","opensearch","search","volto","volto-addon","volto-block"],"created_at":"2024-10-02T09:05:00.455Z","updated_at":"2025-07-06T00:03:08.378Z","avatar_url":"https://github.com/rohberg.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Searchkit Block (@rohberg/volto-searchkit-block)\n\nSearching with OpenSearch or ElasticSearch\n\n[![npm](https://img.shields.io/npm/v/@rohberg/volto-searchkit-block)](https://www.npmjs.com/package/@rohberg/volto-searchkit-block)\n[![Acceptance tests multilingual](https://github.com/rohberg/volto-searchkit-block/actions/workflows/acceptance_multilingual.yml/badge.svg)](https://github.com/rohberg/volto-searchkit-block/actions/workflows/acceptance_multilingual.yml)\n[![Acceptance tests monolingual](https://github.com/rohberg/volto-searchkit-block/actions/workflows/acceptance_monolingual.yml/badge.svg)](https://github.com/rohberg/volto-searchkit-block/actions/workflows/acceptance_monolingual.yml)\n[![Unit tests](https://github.com/rohberg/volto-searchkit-block/actions/workflows/unit.yml/badge.svg)](https://github.com/rohberg/volto-searchkit-block/actions/workflows/unit.yml)\n[![Code analysis checks](https://github.com/rohberg/volto-searchkit-block/actions/workflows/code.yml/badge.svg)](https://github.com/rohberg/volto-searchkit-block/actions/workflows/code.yml)\n\n## Features\n\n\u003c!-- TODO README\n- user instruction how to search\n- backend instructions\n- …\n --\u003e\n\nSearch block with highly overridable components for searching, filtering and displaying search results. Sometimes also called faceted navigation.\n\nAs this search is addressing `OpenSearch/ElasticSearch` with text analysis, the search does understand inflection of words, tolerates typos by fuzzy searching, allows exact search and wildcard search.\nSee [User documentation](#user-documentation) on how to search.\n\nMatched phrases are shown with highlighted matches.\n\nAdditional metadata per result item can be configured easily.\nMeta data values are clickable to find related content.\n\nThe block is prepared for Matomo analytics.\n\n![Search @rohberg/volto-searchkit-block](docs/source/_static/img/search.png)\n\n## Installation\n\n### Plone backend\n\nTODO backend instructions\n\n### OpenSearch / ElasticSearch \n\nTODO OpenSearch\n\n### Volto frontend\n\nAdd `volto-searchkit-block` to your `package.json`:\n\n```json\n\"dependencies\": {\n    \"@rohberg/volto-searchkit-block\": \"^2.0.0\"\n}\n```\n\nAdd `@rohberg/volto-searchkit-block` to your add-ons in `volto.config.js`:\n\n```javascript\nconst addons = ['@rohberg/volto-searchkit-block'];\n```\n\n### Configuration of the search block\n\nTODO Configuration of the search block\n\n## Demo\n\nTODO demo\n\nVisit http://localhost:3000/ in a browser, login, and check the awesome new features.\n\n## User instructions\n\nThe search is a fuzzy search, that means typos are compensated.\nApproximate matches and inflections are found.\n\nTo force the match of a search string, precede it with \"+\".\nTo exclude matches of a search string, precede it with \"-\".\n\nUse wildcards to find matches of words that complement the search string.\n\nFor exact matches of a search string embrace it with quotation marks.\n\nA search for a word with hyphen is equivalent to a search for the word and the parts of it.  \nExample: A search for \"LSR-Lehrbetrieb\" is equivalent to a search for \"LSR-Lehrbetrieb LSR Lehrbetrieb\"\n\nWords with hyphen are matched by searches for part of the words.  \nExample: \"LSR-Lehrbetrieb\" is found by a search for \"LSR\".\n\n### Multiple search strings\n\nSearch results include at least one of the search strings.\n\n\n# Panel for testing matches\n\nYou can test search results on a test panel: `/controlpanel/test-searchkit-querystrings`\n\nPlease update the settings according to your deployment: `/controlpanel/volto_searchkit_block_control_panel`\n\n## Development\n\nThe development of this add-on is done in isolation using a new approach using pnpm workspaces and latest `mrs-developer` and other Volto core improvements.\nFor this reason, it only works with pnpm and Volto 18.\n\n\n### Pre-requisites\n\n-   [Node.js](https://6.docs.plone.org/install/create-project.html#node-js)\n-   [Make](https://6.docs.plone.org/install/create-project.html#make)\n-   [Docker](https://6.docs.plone.org/install/create-project.html#docker)\n\n\n### Make convenience commands\n\nRun `make help` to list the available commands.\n\n```text\nhelp                                          Show this help\ndev-backend-start-monolingual                 Start backend dev server\ndev-backend-start-multilingual                Start backend dev server with two languages\ninstall                                       Installs the add-on in a development environment\nstart                                         Starts Volto, allowing reloading of the add-on during development\nstart-monolingual                             Same as `make start` but with language 'de'\nstart-multilingual                            Same as `make start` but with language 'de' and multi lingual\nbuild                                         Build a production bundle for distribution of the project with the add-on\nbuild-deps                                    Build dependencies\ni18n                                          Sync i18n\nci-i18n                                       Check if i18n is not synced\nformat                                        Format codebase\nlint                                          Lint, or catch and remove problems, in code base\nrelease                                       Release the add-on on npmjs.org\nrelease-dry-run                               Dry-run the release of the add-on on npmjs.org\ntest                                          Run unit tests\nci-test                                       Run unit tests in CI\nacceptance-frontend-dev-start-monolingual     Start acceptance frontend in development mode\nacceptance-frontend-prod-start-monolingual    Start acceptance frontend in production mode\nacceptance-backend-start-monolingual          Start backend acceptance server\nci-acceptance-backend-start-monolingual       Start backend acceptance server in headless mode for CI\nacceptance-test-monolingual                   Start Cypress in interactive mode\nci-acceptance-test-monolingual                Run cypress tests in headless mode for CI\nacceptance-frontend-dev-start-multilingual    Start acceptance frontend in development mode\nacceptance-frontend-prod-start-multilingual   Start acceptance frontend in production mode\nacceptance-backend-start-multilingual         Start backend acceptance server\nci-acceptance-backend-start-multilingual      Start backend acceptance server in headless mode for CI\nacceptance-test-multilingual                  Start Cypress in interactive mode\nci-acceptance-test-multilingual               Run cypress tests in headless mode for CI\n```\n\n### Development environment set up\n\nIt's recommended to start three individual terminal sessions, one each for running the Plone backend, the Volto frontend, and the index server.\nAll sessions should start from the root directory.\n\nInstall backend.\n\n```shell\nmake dev-backend-install\n```\n\nInstall the frontend.\n\n```shell\nmake install\n```\n\n### Start developing\n\nStart the backend. Monolingual:\n\n```shell\nmake dev-backend-start-monolingual\n```\n\nor start the multilingual backend:\n\n```shell\nmake dev-backend-start-monolingual\n```\n\nCreate a site.\n\n```shell\nmake create-site-monolingual\n```\n\nor create a multilingual site:\n\n```shell\nmake create-site-multilingual\n```\n\nStart the index server. Monolingual:\n\n```shell\nmake dev-index-start-monolingual \n```\nor start the index server multilingual:\n\n```shell\nmake dev-index-start-multilingual \n```\n\nIn a separate terminal session, start the frontend.\n\n```shell\nmake start-monolingual\n```\n\nor start multilingual:\n\n```shell\nmake start-multilingual\n```\n\n### Lint code\n\nRun ESlint, Prettier, and Stylelint in analyze mode.\n\n```shell\nmake lint\n```\n\n### Format code\n\nRun ESlint, Prettier, and Stylelint in fix mode.\n\n```shell\nmake format\n```\n\n### i18n\n\nExtract the i18n messages to locales.\n\n```shell\nmake i18n\n```\n\n### Unit tests\n\nRun unit tests.\n\n```shell\nmake test\n```\n\n### Run Cypress tests\n\nRun each of these steps in separate terminal sessions.\n\nIn the first session, start the frontend in development mode.\n\n```shell\nmake acceptance-frontend-dev-start-monolingual\n```\n\nIn the second session, start the backend acceptance server.\n\n```shell\nmake acceptance-backend-start-monolingual\n```\n\nIn the third session, start the Cypress interactive test runner.\n\n```shell\nmake acceptance-test-monolingual\n```\n\nAppropriate make commands for **multilingual** Cypress tests are available.\n\n## License\n\nThe project is licensed under the MIT license.\n\n## Credits and Acknowledgements 🙏\n\nCrafted with care by **Generated using [Cookieplone (0.7.1)](https://github.com/plone/cookieplone) and [cookiecutter-plone (6f17615)](https://github.com/plone/cookiecutter-plone/commit/6f1761520019010ae3799dfa0c6b999b533d59a7) on 2024-10-26 13:17:25.419878**. A special thanks to all contributors and supporters!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frohberg%2Fvolto-searchkit-block","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frohberg%2Fvolto-searchkit-block","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frohberg%2Fvolto-searchkit-block/lists"}