我们有一个Apache Solr实例,它返回一个表的ID以及一个分数。记录如下:
<doc>
<int name="entity_id">13686</int>
<float name="score">2.6653142</float></doc>
<doc>
<int name="entity_id">16506</int>
<float name="score">2.5128825</float></doc>
<doc>
我们已经存在一个SQL查询(这是更大的ORM框架的一部分)。我们需要在结果的entity_id
部分过滤集合。到目前为止,我们使用了一个表,我们存储了从Solr实例收到的所有记录,然后根据附加的score
加入和排序。
然而,经过一些考虑后,我们处于存储在我们加入的表中的数据非常易变,它只用于单个连接,然后在执行新搜索时被删除(Solr实例索引)可以在平均时间内改变)。因此,我们希望完全跳过表开销,并通过使用聪明的SQL以某种方式获得相同的功能。
对于entity_id
来说,
entity_id IN (<list of entity_ids)
但是,现在我们需要按score
部分生成排序。检查文档我使用SORT BY
SQL无法看到任何方法。
有没有办法按某个常量列表对MySQL查询进行排序?