EMF (Eclipse Modeling Framework) requires two differents operations in order to obtain "ready to use" Java based Ecore models :
Ecore modeling is associated to .ecore files. ".ecore" files contains the user model description compliant with EMOF metamodel.
Code Generation is associated to .genmodel files. ".genmodel" files contains the configuration needed to drive model code generation.
As a result of code generation, we obtain one to three different plugins :
Given the fact Ecore models are all compliant with EMOF metamodel, EMOF metamodel based computations are subsequently applicable to all Ecore models.
This means that basics operations such as visiting, querying, comparing or refactoring based on EMOF metamodel still remain valid on Ecore models.
EMF Search is a actually a metamodel beased search valid on any Ecore model.
Another cool aspect of the situation is that EMOF based search can be specialized for a any user defined Ecore model. This means that we can actually specialize the search operation according to a particular Ecore model.
EMF Search is an integration to Eclipse Platform Search framework for modeling context.
This Search integration contributes either a Search Page tab and a Search Result View page. This is done by extending org.eclipse.search.searchPages & org.eclipse.search.searchResultViewPages.
EMF Search code generation takes advantage of the Ecore generation framework. Search code generation is triggered everytime a model, edit, editor are generated.
This is done by contributing a Search GenAdapter to org.eclipse.emf.codegen.ecore.generatorAdapters extension point. as a result EMF Searh generation can be considered as a natural addition to user model.