Git Product home page Git Product logo

Comments (1)

mbok avatar mbok commented on June 15, 2024

Hi Milan,
to calculate the "leg" field when new events arrive isn't possible using pure Elasticsearch functionality since features like triggers in SQL are not yet provided. Thus you should consider to have 3rd party tools in place which perform data preprocessing before indexing to Elasticsearch.
To avoid calculating the forecast for each User/Product you could use sub aggregates which would group the pairs for you automatically e.g.

/buying_habit/_search?size=0
{
    "aggs": {
        "users": {
            "terms": {
                "field": "user.keyword",
                "size": 1000
            },
            "aggs": {
                "products":
                {
                    "terms": {
                        "field": "product.keyword",
                        "size": 100
                    },
                    "aggs": {
                        "demand_p": {
                            "linreg_predict": {
                                "fields": ["quantity", "lag"],
                                "inputs": [2]
                            }
                        }
                    }
                }
            }
        }
    }
}

This query should calculate the forecast for the top 1000 buyers and for the top 100 products these bought in the past. If this solution works for you and you need the forecast for all users, you would have to execute the query multiple times each for a user partition since increasing the size of the terms aggregation would end in a long runtime. Partitioning users could be achieved e.g. by filtering by user first name character.
If you need more support don't hesitate to contact me via mail: [email protected]. I home it's OK if I close this issue.

from elasticsearch-linear-regression.

Related Issues (9)

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.