Hi Thibault,

I got the same problem once time ago.

I used mysql FIELD keyword to sort result in the same way Lucene did
it.
Let me show you my code :

$hits = $this->getLuceneIndex()->find($query);
$pks = array();
foreach ($hits as $hit)
{
  $pks[] = $hit->pk;
}

$query = $this->createQuery();
$query->select('b.*, FIELD(b.id,' . implode(',', $pks) . ') AS
field');
$query->from('blogPost b');
$query->whereIn('b.id', $pks);
$query->orderBy('field');

And it works like a charme :-)


On 1 mai, 14:22, Thibault Jouannic <[email protected]> wrote:
> Hi group !
>
> On my symfony website, I've build a search engine following the jobeet
> tutorial (day 17). Everything's fine, except one thing. The Zend
> Lucene engine is kind enough to sort its results by relevance.
> However, this order is lost when I build the doctrine query :
>
> $hits = $this->getLuceneIndex()->find($queryString);
>
> $pks = array();
> foreach($hits as $hit)
>     $pks[] = $hit->pk;
>
> $query->whereIn('v.id', $pks);
>
> return $query;
>
> Is there an easy way I could tell mysql and / or doctrine to keep the
> same order in the query's results as in the IN clause ? If no, does
> anybody as an idea about how could I achieve the same result ?
>
> Thanks
> Thibault.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony users" 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-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to