Haciendo una búsqueda con Apachesolr, quiero agregar un par de filtros en hook_apachesolr_prepare_query (& $ query). Esto funciona bien, excepto que quiero que los filtros amplíen la búsqueda ('O'), en lugar de limitarla ('AND').Cómo usar filtros múltiples para ampliar la búsqueda en consultas de Apachesolr
Por ejemplo, si tengo 4 nodos de tipo: A y 3 de tipo: B que coinciden con una búsqueda, para filtrar por tipo: A y tipo: B debe devolver 7 nodos (de tipo: A Y nodos de tipo : B), en lugar de 0 los de tipo: A que también son de tipo: B.
vi una sugerencia para hacer esto utilizando el modelo de nodeaccess
foreach ($filters as $filter) {
$subquery = apachesolr_drupal_query();
if (!empty($subquery)) {
$subquery->add_filter('type', $filter);
$query->add_subquery($subquery);
}
}
pero esto no parece funcionar. (No devuelve ningún resultado).
Luego probé (ya que tengo un número limitado de tipos de nodos) con exclusión de los tipos que no quiero:
$excludes = array('A', 'B', 'C');
$excludes = array_diff($excludes, $filters);
$exclude = implode('&', $excludes);
$query->add_filter('type', $exclude, TRUE);
Este método de coserlos juntos no funciona (el '&' se escapó) pero tampoco los agrega como subconsultas, similar a la manera anterior.
¿Alguna sugerencia sobre cómo hacer esto?
También estoy buscando para este – qasimzee
Parece que tienes una respuesta aquí: http://drupal.org/node/892280 derecho? Quizás deberías responderlo tú mismo. – morja