-id、 -status 、-ratingフィールドを持ついくつかのスペーストップがあります
スペースtopには 2 つのインデックスがあります。
--primary
box.space.top:create_index('primary', { type = 'TREE', unique = true, parts = { 1, 'NUM' } })
--status
box.space.top:create_index('status', { type = 'TREE', unique = false, parts = { 2, 'NUM' } })
IDまたはステータスで選択できます
--select by id
space.top.index.primary:select(someId)
--select by status with limit/offset
space.top.index.status:select({someStatus}, {iterator = box.index.EQ, offset = 0, limit = 20})
場合によっては、評価で並べ替えてステータスで選択する必要があります。
最善の方法は何ですか?部品のステータス、評価を含む別のインデックスを作成し、可能であればトリッキーなクエリを作成しますか? または、ステータスによる選択を続けて、Lua 手順で評価による並べ替えを行いますか? ありがとう!
UPD: ありがとう、コスチャ! インデックスのステータスを次のように変更しました。
box.space.top:create_index('status_rating', { type = 'TREE', unique = false, parts = { 2, 'NUM', 3 'NUM' } })
そして今、私はクエリすることができます:
local active_status = 1
local limit = 20
local offset = 0
box.space.top.index.status_rating:select({active_status}, {iterator = box.index.LE, offset=offset, limit=limit})
すごい!