我有一个带有“名称”列的“餐厅”表。我定义了以下索引:
indexes "REPLACE(UPPER(restaurants.name), 'THE ', '')", :as => :restaurant_name, :sortable => true
...因为我想对餐厅名称进行排序而不考虑前缀“The”。
我的问题是,每当这些记录之一被更新(以任何方式)时,新记录都会跳到排序顺序的顶部。如果另一个记录被更新,它也会跳到其他记录之前。我最终得到了两个列表:自上次重新索引以来已更新的餐厅列表和尚未更新的餐厅列表。每个相应的列表都按字母顺序排列,但我不明白为什么整个列表会以这种方式被隔离。我确实设置了延迟增量索引,我认为问题与此有关。