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
-~----------~----~----~----~------~----~------~--~---