GithubHelp home page GithubHelp logo

storage's Introduction

Shopware document storage system

This project is a document storage system for Shopware 6. It allows you to store documents inside storage and query them via key or via different criteria. The goal of this system is to provide a read-optimized system for better scalability and performance and support different kinds of document storage engines like opensearch, mongodb, etc.

Feel free to contribute to this project or implement new storages. All implementations of storage should be tested in the same way, to ensure the same behavior independent of the chosen engine.

When implementing a new storage, please also make sure the storage can be setup locally.

The project is still under development and is not suitable for productive systems. As soon as we can ensure a stable version, this repository will be moved to the Shopware organization. This repository is then split into a mono repository and the different engines are split into many repositories. So it is possible to only need the required engine dependencies for each project

storage's People

Contributors

oliverskroblin avatar

Stargazers

Alex avatar Lars Schröder avatar Vin Le avatar  avatar

Watchers

 avatar Daniel Nögel avatar Wanne Van Camp avatar Björn Meyer avatar  avatar Jens avatar Dennis Garding avatar Pascal Thesing avatar Jannis Leifeld avatar  avatar  avatar

storage's Issues

DTOs instead of arrays

it would be nice, if we could exchange as much arrays as possible with simple objects with typed properties. first thing I saw, were the sorting and filter arrays

Price fallback system

How to allow "fallback-field" logic like translations.

Would be nice if you can define a key from the context and it uses this as fallback logic.

generic: Sorting tests

Tests for:

  • Scalar fields
  • Object fields
  • Translated fields
  • Object+translated fields
  • Multi sorting
  • Null values

Document encoding/decoding

  • We want to support custom documents, but with doc blocks as properties
  • Add support for nested objects

opensearch: Missing aggregation support

Following aggregations are not supported by opensearch, and got pre-catched in the storage

  • Min/Max/Avg/Sum agg on text and string fields
  • Distinct/Count agg on text fields

max nesting depth config

Don't allow to deep nesting for "additional" fields on a schema (third party). Provide a config

Naming

Current suggestions:

  1. "ASS" - Abstract search storage
  2. "ADS" - Abstract document storage
  3. "DSE" - Document Search Engine
  4. "SES" - Search Engine Storage

setup: Docblock documentation

Documentation should be done via php docblocks

Also provide examples in the docblock which are unit tested

Add documentation CI

setup: Add howto in readme

Add how-to guide in the readme for local setups, including dynamo-db

Also add how-to guide regarding implementing new storages

generic: Storage setup support

Each storage should have a setup function which generates the required tables/collections/indices whatever

This function should also support to update the storage, if the schema changed.

meilisearch umlauts support

Umlauts seems not working. Revert the \Meilisearch\MeilisearchSearchTest::match "Umlauts" case and make it running :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.