Entity Field Query OR not AND
Entity Field Query is useful for returning nodes based on field values or node properties
Example:
<?php
$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'node')
->entityCondition('bundle', 'article')
->propertyCondition('status', 1)
->fieldCondition('field_news_types', 'value', 'spotlight', '=')
->fieldCondition('field_photo', 'fid', 'NULL', '!=')
->fieldCondition('field_faculty_tag', 'tid', $value)
->fieldCondition('field_news_publishdate', 'value', $year. '%', 'like')
->range(0, 10)
->addMetaData('account', user_load(1)); // Run the query as user 1.
$result = $query->execute();
?>
The tricky part is trying to do an OR condition For example getting field_news_types to be 'spotlight' OR 'hot news'
->fieldCondition('field_news_types', 'value', 'spotlight', '=')
// should become an OR by making the value contain an array of the possible values you want to match
->fieldCondition('field_news_types', 'value', array('spotlight', 'hot news'))
//There should be no operator like = or != used as that will break the query.
Documentation:
http://api.drupal.org/api/drupal/includes%21entity.inc/class/EntityField...
http://drupal.org/node/1343708