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.