Hi
I am building a product search on base of elastic search at my work place.
I have a few general & architectural & deployment questions to the more
experienced ones of you.
Here are a few numbers :
- 25M products
- 23 GB of indexed data
- 20 searches / second at spike times
- Accessed from Nest client (c#) , might be irrelevant , but still ..
What would be the optimal settings (Number of nodes , Shards,Replicas ) and
amount of physical machines ( RAM , Cores ) to fullfill my requirements.
I am currently in the stage of developing and using :
- 2 vm's running Linux with 12GB each
- 2 Nodes each per vm , each node configured the same
{node.master=true;node.data=true} - Elastic process with 8G max heap size
- 5 shards with 1 replica
It seems that i am getting into trouble with this configuration , first of
all my indexing takes ages , I reach 1000 documents / sec when indexing and
i am not sure where the bottleneck is and whether there is one or not.
The suddenly one of my nodes might die without any error logs or so , just
"shutting down" , did anyone had this expierience ?
Here is my mapping and also a sample document from the index. I would love
to hear if there is anything i could do better.
mapping :
{
"product": {
"properties": {
"author": {
"type": "string",
"index": "not_analyzed"
},
"boosts": {
"properties": {
"isAvailable": {
"type": "boolean"
},
"searsProduct": {
"type": "boolean"
},
"staticBoost": {
"type": "double"
}
}
},
"categoryPath": {
"type": "long"
},
"extendedFacets": {
"type": "string",
"index": "not_analyzed"
},
"externalId": {
"type": "string",
"index": "not_analyzed"
},
"externalProductId": {
"type": "string",
"index": "not_analyzed"
},
"gtin": {
"type": "string",
"index": "not_analyzed"
},
"id": {
"type": "long"
},
"likes": {
"type": "integer"
},
"manufacturer": {
"type": "string",
"boost": 2,
"index": "not_analyzed"
},
"manufacturerPartNumber": {
"type": "string",
"index": "not_analyzed"
},
"name": {
"type": "string",
"omit_norms": true
},
"nameSort": {
"type": "string",
"index": "not_analyzed"
},
"owns": {
"type": "integer"
},
"price": {
"type": "double"
},
"priceBucket": {
"type": "double"
},
"seller": {
"type": "string",
"boost": 2,
"index": "not_analyzed"
},
"tagNames": {
"type": "string"
},
"tags": {
"type": "long"
},
"tagsForFacet": {
"type": "long"
},
"wants": {
"type": "integer"
}
}
}
}
Sample Product :
{
"_index": "products",
"_type": "product",
"_id": "43688439",
"_score": 1,
"_source": {
"id": 43688439,
"name": "ROPER REIN NYLON",
"nameSort": "roper rein",
"externalId": "2095933377",
"manufacturerPartNumber": "352030BLK",
"gtin": "0000399118010",
"manufacturer": "Weaver Leather",
"seller": "Big Dee's Tack & Vet Supplies",
"price": 13.5,
"priceBucket": 15,
"categoryPath": [
4520,
4728
],
"boosts": {
"staticBoost": 1,
"searsProduct": false,
"isAvailable": true
},
"extendedFacets": [],
"tags": [],
"tagsForFacet": [],
"tagNames": [],
"likes": 0,
"owns": 0,
"wants": 0
}
}
--