Author: rande
Date: 2010-01-22 19:14:41 +0100 (Fri, 22 Jan 2010)
New Revision: 27065

Modified:
   plugins/sfSolrPlugin/branches/sf1.2/lib/util/sfLuceneCriteria.class.php
   plugins/sfSolrPlugin/branches/sf1.2/test/unit/util/sfLuceneCriteriaTest.php
Log:
[sfSolrPlugin] fix analyser/guesser

Modified: 
plugins/sfSolrPlugin/branches/sf1.2/lib/util/sfLuceneCriteria.class.php
===================================================================
--- plugins/sfSolrPlugin/branches/sf1.2/lib/util/sfLuceneCriteria.class.php     
2010-01-22 18:03:58 UTC (rev 27064)
+++ plugins/sfSolrPlugin/branches/sf1.2/lib/util/sfLuceneCriteria.class.php     
2010-01-22 18:14:41 UTC (rev 27065)
@@ -263,7 +263,7 @@
    */
   public function addPhraseGuess($full_phrase)
   {
-
+        
     foreach($this->guessParts($full_phrase) as $section => $phrases)
     {
       if(count($phrases) == 0)
@@ -313,10 +313,10 @@
       $c = new sfLuceneCriteria;
       foreach($phrases as $phrase)
       {
-        $c->add($sign.'('.self::sanitize($phrase).')', $type, true);
+        $c->add($sign.'('.self::sanitize($phrase).')', $inner_type, true);
       }
       
-      $main_criteria->add($c->getQuery(), 'AND', true); 
+      $main_criteria->add('('.$c->getQuery().')', 'AND', true); 
     }
     
     $this->addField($field, $main_criteria, $type, true);

Modified: 
plugins/sfSolrPlugin/branches/sf1.2/test/unit/util/sfLuceneCriteriaTest.php
===================================================================
--- plugins/sfSolrPlugin/branches/sf1.2/test/unit/util/sfLuceneCriteriaTest.php 
2010-01-22 18:03:58 UTC (rev 27064)
+++ plugins/sfSolrPlugin/branches/sf1.2/test/unit/util/sfLuceneCriteriaTest.php 
2010-01-22 18:14:41 UTC (rev 27065)
@@ -191,8 +191,11 @@
 $t->cmp_ok($s, '===', $expected, '->addPhraseGuess()');
 
 $s = inst()->addPhraseFieldGuess('name', 'Thomas Rabaix +"sym"fony expert" 
-"zen-d framework" +javascript -.net')->getQuery();
-$expected = 'name:((+("sym") AND +("javascript") AND -("zen-d framework") AND 
-(".net") AND ("Thomas") AND ("Rabaix") AND ("fony") AND ("expert")))';
+$expected = 'name:(((+("sym") AND +("javascript")) AND (-("zen-d framework") 
AND -(".net")) AND (("Thomas") OR ("Rabaix") OR ("fony") OR ("expert"))))';
 $t->cmp_ok($s, '===', $expected, '->addPhraseGuess()');
 
 
+$s = inst()->addPhraseFieldGuess('name', 'poulet -sel -chasseur')->getQuery();
+$expected = 'name:(((-("sel") AND -("chasseur")) AND (("poulet"))))';
+$t->cmp_ok($s, '===', $expected, '->addPhraseGuess()');
 

-- 
You received this message because you are subscribed to the Google Groups 
"symfony SVN" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/symfony-svn?hl=en.

Reply via email to