query - 怎样基于Redis实现模糊查询
某草草
某草草 2017-04-24 16:00:35
0
3
1260

问题如题,注意不是指模糊查询Key,是指对值的模糊(关键字)查询。
举个栗子:

$ HMSET user:1 name jack age 18
$ HMSET user:2 name jackson age 21
$ HMSET user:3 name suse age 16

假如有上述用户数据,以哈希形式存储,如果要做排序,可以

# score为#age,value为#userId,以ZSET结构存储
$ ZADD user:rank:age 18 1 21 2 16 3
# 查询有序列表
$ ZRANGE user:rank:age 0 -1

但如果需要既实现根据年龄排序,还要能够实现关键字查询(模糊匹配用户名),应该怎样实现?

某草草
某草草

membalas semua(3)
淡淡烟草味

Terdapat kaedah alternatif, yang boleh mencapai jumlah pertanyaan kabur yang mudah dan kecil pada tahap tertentu:
Apabila menulis maklumat pengguna, pisahkan nama pengguna sebagai Kunci untuk merekodkan ID pengguna

SADD user:like:j jack jackson
SADD user:like:ja jack jackson
SADD user:like:jac jack jackson
SADD user:like:jack jack jackson
SADD user:like:jacks jackson
SADD user:like:jackso jackson
SADD user:like:jackson jackson
Apabila melakukan pertanyaan kabur selepas

, masukkan: j, kemudian anda boleh mencari dua item SET dan jack daripada koleksi jackson Sudah tentu, kedua-dua nilai ini boleh digantikan dengan ID pengguna, dan kemudian mengikut ID pengguna untuk menanyakan maklumat hash pengguna.
Kaedah ini hanya sesuai untuk senario di mana keadaan pertanyaan adalah tunggal dan panjang medan adalah pendek Jika: Padanan kabur tajuk siaran dan artikel tidak akan berfungsi pada masa yang sama. Anda masih boleh mencuba tajuk kandungan pasti tidak akan tercapai.

Sudah tentu Redis tidak sesuai untuk ini, jadi jika terdapat penyelesaian lain, adalah disyorkan untuk menggunakan penyelesaian lain untuk mencapainya.

巴扎黑

Cara eufemistik ialah dengan menulis sendiri skrip Lua.
Atau jika set data tidak besar, tapis sendiri di sisi pelanggan.
Jika pertanyaan kabur adalah keperluan yang sukar, adalah disyorkan untuk beralih ke Solr atau Elasticsearch.

黄舟

Redis tidak mempunyai kaedah pertanyaan kaya dan pertanyaan kabur hanya boleh dilakukan dalam kekunci, yang tidak dapat memenuhi keperluan kaya anda. Jika anda mahukan storan berkelajuan tinggi, disyorkan untuk menggunakan Redis Jika anda ingin melaksanakan logik perniagaan dan mempunyai kaedah pertanyaan yang kaya, disyorkan untuk menggunakan MongoDb

.
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan