I need to model a problem as a linear program. However my working solution contains a (bilinear) quadratic objective term: $$ \sum x_i * y_i \\ x \in \{0,1\} \\ y \in \mathbb{R}^+ $$
The value of $y$ is calculated in a constraint like this: $$ y = \sum\limits_{z \in Z} \sum\limits_{k \in K} f(z,k) $$
Therefore, I tried to move $x$ to the calculation of $y$ and remodel it to an indicator constraint for avoiding quadratic constraints: $$ \begin{align} x_i = 1 &\rightarrow y = \sum\limits_{z \in Z} \sum\limits_{k \in K} f(z,k) \\ x_i = 0 &\rightarrow y = 0 \end{align} $$
This solutions eliminates quadratic objective terms. On the other side is the solution gap around 100% and my originale (quadratic) solution archive <1%.
How can I create a stronger formulation for this case?
Edit: Fixed typo of x in equation like mentioned in the comments.
Update: Based on the answer of Erwin Kalvelagen I linearized the quadratic constraint. The resulting performance of my model is not well and the gap is much higher in the same time like the quadratic constraint.
Since I understand from this questions, it is a bilinear/quadratic constraint. What does this mean for my model exactly? Does this have a significant effect to scalability/performance of models in general? Is it possible to say from experience which solution should be preferred (quadratic or linearized (with bigM-Constraint (?)) version)?