# Where do I start and how do I proceed?

**URL:** <https://discuss.elastic.co/t/where-do-i-start-and-how-do-i-proceed/31526>\
**Category:** Elasticsearch\
**Created:** [October 2, 2015, 7:24am UTC](https://discuss.elastic.co/t/where-do-i-start-and-how-do-i-proceed/31526 "2015-10-02T07:24:40Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Hawiak](https://avatars.discourse-cdn.com/v4/letter/h/c57346/32.png) [@Hawiak](https://discuss.elastic.co/u/Hawiak)\
**Post date:** [October 2, 2015, 7:24am UTC](https://discuss.elastic.co/t/where-do-i-start-and-how-do-i-proceed/31526/1 "2015-10-02T07:24:40Z")

</div>

Hi, I’ve  
been reading documentation and trying stuff for about 2 days now. I’m very  
intrigued about elastic search and how it works. For my company I have to  
implement elastic search for our product seeker.

I’m in the  
following situation:

We’re a  
webshop, we have about 500.000 products that need to be searchable and we’re  
trying to implement Elastic Search to do this for us. I figured out some basics  
but I am not quite sure how to do some things. The website is completely  
written in PHP and MySQL, I am planning on using the Elastic Search PHP  
library.

I want to  
use facetted search, but since every product group, even product has different  
aspects that I want to highlight (and seeing as we have over 100s of product  
groups) how do I dynamically create a facetted search?

For  
example: A television has aspects like INCH and Resolution whilst a motherboard  
might be from a certain socket and have X amount of USB ports of 2.0 or 3.0 etc  
etc.

What would  
be the smartest thing regarding the sync with the MySQL database? Should we  
setup a cronjob to run a specific script to update the indexed documents or  
should we set up a specific mysql link?

How do I go  
about making the structure for the products. Each product consists of several  
properties (like brand, price, series, type, available, stock, name etc) but  
also has some specifications (like RAM OR GHz, Inches, GB’s etc) it also has a  
group. I am used to the MySQL Relational database and in the days I’ve been  
fiddling around with Elastic Search I found out I should let that go.

Could I just create a JSON that has multi dimensional layers for each property  
like

_“name”: “name”,_  
_“specifications”: {_  
_“cpu”: “etc”_  
_}_

And leave out the things that aren’t required?

How many  
nodes should be required to set this up so that it works fast and reliable enough.

I’m sorry  
if this is a bit much, it’s just so completely different from the system that  
we currently use that it is difficult to make a good start. I would like to  
know what the _real_ professionals  
think about it.

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [October 3, 2015, 11:38pm UTC](https://discuss.elastic.co/t/where-do-i-start-and-how-do-i-proceed/31526/2 "2015-10-03T23:38:26Z")

</div>

I'd suggest that if you are really looking to go down this path that you look into attending some Elasticsearch training, it will help quiet a bit with all of this 😄  
That aside I can help with a few things.

> [@Hawiak](#):
>
> What wouldbe the smartest thing regarding the sync with the MySQL database

There is [this](https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html) from Logstash that will help.

> [@Hawiak](#):
>
> How do I goabout making the structure for the products.

Try a few and see what works for you but have a single document structure that is as normalised as possible, ie it's the same for TVs as for fridges. Then just fill fields for each as applicable.

> [@Hawiak](#):
>
> How manynodes should be required to set this up so that it works fast and reliable enough.

We recommend no less than 3 nodes for a production cluster but this will depend on your requirements and resources.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 5, 2017, 11:46pm UTC](https://discuss.elastic.co/t/where-do-i-start-and-how-do-i-proceed/31526/3 "2017-07-05T23:46:55Z")

</div>

Closed on July 5, 2017, 11:46pm UTC


