通过思考狮身人面像的浮动字段进行搜索和排序

我正在使用思考sphinx来搜索rails应用程序。 我有一个名为’height’的浮点字段。 我需要能够在此字段中搜索确切的值(即恰好是6.0,而不是6.5)。 我还需要能够对场地进行排序。

到目前为止我所拥有的:

indexes height, :sortable => true 

问题:没有正确排序,如果我搜索’6’则返回6.0和6.5

如果您正在处理浮点值,最好将它们作为属性而不是字段:

 define_index do # ... other fields has height end 

默认情况下,属性是可排序的(实际上,如果你添加:sortable到一个字段,它所做的只是在Thinking Sphinx的引擎下创建一个属性),所以这应该允许你排序。

当然,这不允许你搜索高度,所以你也需要一个字段:

 define_index do # ... other fields indexes height, :as => :height_field has height end 

我给了字段一个别名,因为你不能将字段和属性命名为同一个东西。

鉴于这一切,你在浮动上搜索,而对于Sphinx,所有字段都是字符串。 它读取6.5作为两个单词 – 6和5,以句号/句号分隔。 不幸的是,我不希望那些事情能够优雅地发挥作用。