EntityFieldQuery to search Content Type for text and select matching Nodes
Do you mean something like this;

$keywords=$_POST ['keywords'];

$query = new EntityFieldQuery();
$entities = $query-&gt;entityCondition('entity_type', 'node')
-&gt;propertyCondition('type', 'product')
-&gt;fieldCondition('field_main_category', 'tid', $category, 'IN');

if(isset($keywords)) {
 $query  
   -&gt;fieldCondition('field_sku', 'value','%'. $keywords .'%', 'LIKE');
} 
$result = $query-&gt;execute();


UPDATE

You can do an OR for each of the field. SO to do this you add a tag to the query which you are building and then you can alter the query using the hook_query_TAG_alter

    $keywords=$_POST ['keywords'];

    $query = new EntityFieldQuery();
    $entities = $query-&gt;entityCondition('entity_type', 'node')
    -&gt;propertyCondition('type', 'product')
    -&gt;addTag('something');

    $result = $query-&gt;execute();


function modulename_query_**something**_alter(QueryAlterableInterface $query) {
  $or = db_or()
    -&gt;fieldCondition('field_sku', 'value','%'. $keywords .'%', 'LIKE')
    -&gt;fieldCondition('field_name', 'value','%'. $keywords .'%', 'LIKE');

  $query
      -&gt;condition($or);
}


This is just and example and you will have to make changes as per your requirements but this OR will definitely help.

Refer to the following links for a good example;
http://treehouseagency.com/blog/tim-cosgrove/2012/02/16/entityfieldquery-let-drupal-do-heavy-lifting-pt-1
http://treehouseagency.com/blog/neil-hastings/2011/09/06/building-energygov-without-views
http://treehouseagency.com/blog/fredric-mitchell/2012/02/21/or-queries-entityfieldquery