[KNN] Semantics Affected by Phrase Similarity

I'm implementing a semantic search for product names, aiming to allow searches based on user intent. However, I'm observing that semantically, it retrieves fragmented data within the text. For example, when searching for "shirt with green tone," it often returns documents containing only the term "shirt" or even irrelevant results with the term "green," such as "Green Plant."

In textual search, this kind of treatment is manageable, but how can I enhance this concept using only semantic search?

          {
            "knn": {
              "field": "name_embedding",
              "num_candidates": 100,
              "query_vector_builder": {
                "text_embedding": {
                  "model_id": ".multilingual-e5-small_linux-x86_64",
                  "model_text": "shirt with green tone"
                }
              }
            }
          }

Elastic Version 8.15