? 378830-2.project_solr_sort_facet.patch
? projecps.diff
? relevancy-394352-1.patch
Index: solr/ProjectSolrQuery.php
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project/solr/ProjectSolrQuery.php,v
retrieving revision 1.1
diff -u -p -r1.1 ProjectSolrQuery.php
--- solr/ProjectSolrQuery.php	9 Feb 2009 11:29:00 -0000	1.1
+++ solr/ProjectSolrQuery.php	7 Mar 2009 18:34:59 -0000
@@ -5,8 +5,14 @@ include_once drupal_get_path('module', '
 class ProjectSolrQuery extends Solr_Base_Query {
   public $querypath = '';
 
-  function get_url_querystring() {
-    $querystring = parent::get_url_querystring();
+  function get_url_querystring($include_sort = TRUE) {
+    $querystring = '';
+    if ($fq = $this->rebuild_fq(TRUE)) {
+      $querystring = 'filters='. implode(' ', $fq);
+    }
+    if ($this->solrsort && $include_sort) {
+      $querystring .= ($querystring ? '&' : '') .'solrsort='. $this->solrsort;
+    }
     if ($this->querypath) {
       $querystring .= ($querystring ? '&' : '') .'text='. $this->querypath;
     }
Index: solr/project_solr.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project/solr/project_solr.module,v
retrieving revision 1.50
diff -u -p -r1.50 project_solr.module
--- solr/project_solr.module	19 Feb 2009 10:06:48 -0000	1.50
+++ solr/project_solr.module	7 Mar 2009 18:34:59 -0000
@@ -330,7 +330,11 @@ function project_solr_block($op = 'list'
       return;
     }
     else if ($delta == 'project_solr_order') {
-      $sorts = array(
+      if (!empty($_GET['text'])) {
+        // The user has searched for a keyword.
+        $sorts['relevancy'] = array('name' => t('Relevancy'), 'default' => 'asc');
+      }
+      $sorts += array(
         'title_sort' => array('name' => t('Title'), 'default' => 'asc'),
         'created' => array('name' => t('Creation date'), 'default' => 'desc'),
       );
@@ -453,7 +457,7 @@ function project_sort_freetext() {
 function project_sort_freetext_submit($form, &$form_state) {
   $query = $form_state['values']['query'];
   $query->querypath = $form_state['values']['text'];
-  $form_state['redirect'] = array($form_state['values']['path'], $query->get_url_querystring());
+  $form_state['redirect'] = array($form_state['values']['path'], $query->get_url_querystring(FALSE));
 }
 
 //----------------------------------------
