Elastic-search takes all our data, cleans it (stemming, HTML stripping, etc), then puts into an inverted index, where content is separated and organized.
Search uses 3 fields:
The _all field is essentially a very large string made out of an item’s inverted index (non-module widget content, documents, module items, etc.). You "hit" on this data based on occurrence and relevancy metrics. It also searches title and tags, and if those "hit" it carries more weight (see Boost) than hitting on the ALL string.
Search Result Weights
The only two things that get a weighted factor (or a “boost”) in search results are Titles and Keywords. The rest of the results are based on the frequency of the search term. The search tool looks at everything in a long string and calculates how many times a term is referenced in content areas, descriptions, widgets, (etc) and it suggests items based on how many times it is referenced in all the searches. If a term is also in a title or keywords then it shows higher in the results.