2012-02-19 6 views
5

Ben şöyle dünyadaki şehirlerde bir dizi var düşünelim.Can Redis önek eşleştirmesi yapabilir mi? İlk harf kıta</p> <pre><code>EUKLOND EUKMANC EUKEDIN EITROME EITMILA EITNAPE EFRPARI EFRAVIG EFRBRES </code></pre> <p>, önümüzdeki iki ülkeyiz ve sondaki 4 kısaltılmış şehir adı şunlardır:

Bu girişi "E" ile girerek, tüm girişleri veya EIT'yi döndürüp İtalya veya EFRPARI için tüm girişleri alıp sadece Paris'e giriş yapıp arama yapabilmek istiyorum.

Bu, Redis ile yapabileceğim bir şey mi?

cevap

11

Genellikle, Otomatik Tamamlama senaryosudur. Redis'in yazarı, bunun nasıl yapılacağı konusunda bir thorough blog post yazmıştır.

GÜNCELLEME: İlk Salvatore'nın çözümünü alır ve net bir şekilde bunu açıklar ve ikinci daha fazla kelimeden ifadeler için de iyi bir çözüm sunuyor ben sadece başka bir büyük blog post gördü.

+0

Teşekkürler Ofer, Bu makaleyi okudum ama yazarın nasıl ulaştığını göremiyorum: "zrange zset 6 -1". 6 -1 dilim yapması gerektiğini nereden biliyor? Bir Avrupa ülkesinde değişen sayıda şehir varsa, "zrange zset X -1" de X'i nasıl hesaplayabilirim? – jdoig

+0

İlk olarak, '' z' zset fo' çalıştırarak '' fo' bulundu. Cevap 5’i aldı. Ardından, 6 (5 + 1) 'den sonuna kadar olan tüm öğeleri almak için sorguladı. 'Zrange zset 6 -1' çalıştırır. Negatif rakamlar kullandığınızda, 'sondan' anlamına gelir. -1, 'sıralanmış kümenin son öğesi' anlamına gelir (bkz. [Redis belgeleri] (http://redis.io/commands/zrange)). –

+0

Evet, bunu varsaydım. "Fo" dan "listenin sonuna" kadar, bunu yapmam için uygun bir yol değil. Yukarıdaki veri seti sadece bir örnekti. Potansiyel olarak büyük miktarda veri (kümeler IRC'nin 4 milyar maddesini tutabiliyor) olduğu için, bazı keyfi puanlardan kümenin sonuna kadar geri dönmeyi gerçekten göze alamam. – jdoig

İlgili konular