Hi!

I'm trying to store and search for products and product variants in 
Elasticsearch. I have a set of products (about 4000) and product variants 
(all together about 20000) which are related to the products. A product 
could be a hole-puncher and it variants are a hole-puncher in green, a 
hole-puncher in red… (+different attributes).

In addition I have customers (about 40000). Some of them (about 10000) have 
a special range of products (a specific sub-set out of the “product 
/product variant pool”). E.g. Client 1 has the hole-puncher in red and 
green. Client 2 has the hole-puncher in red and yellow. Client 3 has the 
hole-puncher in red. Client 4 doesn’t have the hole-puncher …

In Addition each Client of these 10000 Clients have special Prices for the 
product variants and the product variants can have a different 
assortment-type (a primary or a secondary product). I have to search for 
the products and display the product information + the amount of product 
variants. A search result should look like this: Super Hole Puncher The 
Description form the product X-Product variants Lowest Price XX

In Addition I have to provide a facettennavigation with product-categories… 
and filters. I have to filter for different attributes, the price of a 
product variant, the assortment-type.

How would you store the Data? Would you create one index for the products 
or would you create one index for each customer with a special product set 
(which would result in 10000 Indices).

How would you store the data which is individual for the clients 
(product-type + Price). Currently I store the Client information as 
nesteted Object, but I don’t know if this is the way I should go. Maybe 
seperate columns/fields for each customer? This would cause a document 
which have about 10000 fields. What amount of fields can elasticsearch 
handle without performance issues?

Sample JSON:


{
"Hole-puncher 5008": {
"MasterArticleNumber": "",
"Title": "Hole-puncher 5008",
"Attributes": {
    "Width": "100 mm"
}},"123456": {
"MasterArticleNumber": "Hole-puncher 5008",
"Title": "Hole-puncher 5008 in blue",
"Description": "the description",
"Attributes": {
    "Width": "100 mm",
    "Color": "blue"
},
"Clients": [
    {
        "Type": "K",
        "Price": 78,
        "Client": 1
    },
    {
        "Type": "R",
        "Price": 80,
        "Client": 2
    }
]}, "78977": {
"MasterArticleNumber": "Hole-puncher 5008",
"Title": "Hole-puncher 5008 in black ",
"Description": "the description",
"Attributes": {
    "Width": "100 mm",
    "Color": "black"
},
"Clients": [
    {
        "Type": "K",
        "Price": 78,
        "Client": 1
    },
    {
        "Type": "R",
        "Price": 80,
        "Client": 2
    }
]}}


Currently I'm storing the main product as the parent of the 
product-variants because i have to display the parent-product in the search 
result. Is it possible to sort the parent product on the lowest matching 
price of its childs?

I would be really thankfully for any help /hint :-)

-- 
You received this message because you are subscribed to the Google Groups 
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/533da221-8e58-4bbc-833e-c379c116705c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to