Choosing a model and embedding input structure for searching e-commerce products

I am trying to determine the best model and embedding input approach for searching e-commerce products based on a user’s affinity towards certain products.

Currently an embedding is stored on every product, and on every account. The product’s embedding includes information on the product that will be used when the account embedding searches all of the products for a given account’s embedding.

The issue I am having is determining which model, and what input style I should use to create the embeddings. I’ve tried a few different combinations of both and cant seem to get anything with expected results. I’ve also tried using the UUID’s of the product records, as I would think that would make the embeddings more accurate, but understand that a UUID isn’t something that these models may be able to use/weren’t trained on. I’ve also tried using the product’s title and the associated product information’s title.

Here is an example input thats used for the product embedding -
Product with attributes that are followed with a colon, then the value of the attribute. seller: rhianna51. creation date: 2023-10-18T15:53:17.155309. sold: false. price: $3,240.92. offers: true. reviews: 0, brand: wdp, models: angel-ir3

Here is an example input thats used for the account embedding -
Find and favor products based on the following rules. The rules have the attribute, followed by a colon, then the value to promote. sold: false. offers: true. Find products similar to these recently viewed products: e9879464-1df1-4434-9563-e5b1720c698a. sellers: neva51. models: angel-ir3. brands: wdp

The account embedding vector is used to search all of the product’s embedding by whats the closest match.

I’ve tried out the following models.
ntfloat/e5-small-v2
BAAI/bge-base-en-v1.5
EZlee/e-commerce-bert-base-multilingual-cased
smangrul/peft_lora_e5_ecommerce_semantic_search_colab
Sakil/sentence_similarity_semantic_search

I didn’t really notice any major differences amongst them. I was only able to get any sort of expected result if I kept the inputs very basic. eg the product input would just say, “this product is sold || this product is not sold” and the account embedding input would say “find products that are not sold.” But adding all the product and account information that I want to use to create the embedding didn’t yield any expected results.

I may be going about this all wrong, but hope that you get the gist of what I’m trying to accomplish. Any suggestions on the model or input structure to use would be greatly appreciated.