Installing Elasticsearch, loading your data, dropping a search box on the page — honestly, getting the engine running doesn't take that long. There are plenty of docs for it.
The real work starts right after. You run a search and the wrong thing shows up at the top. A product that's definitely in your data doesn't show up at all. One typo and you get zero results. This is usually the point where people start googling "relevance tuning" — but half of this problem was decided long before you ever touched Elasticsearch. At the design stage.
I started out in search doing maintenance on a commercial search solution. The thing that confused me most back then wasn't query syntax, it was "which analyzer do I put on which field?" One time I'd set an analyzer on a field, and a support ticket came in: why isn't this searchable? It took me a while to figure out. The analyzer was tokenizing the word differently than I expected, so what the user typed didn't match the indexed terms, and nothing came back. Obvious in hindsight, but as a newbie, "it's clearly in the data, so why won't it show up?" was a genuine mystery.
That's when it clicked: half the reason search doesn't work isn't the query, it's a design decision you made way earlier. This post is about that "way earlier." No code. Just four questions to ask yourself before you create an index, before you pick an analyzer.






