Mediawiki'de, sayfa içeriğini içeren 'metin' veritabanında bir tablo vardır. Bir [BLOB] dosyası olarak kaydedilir. Belirli sayfaların belirli bir 'string' içerdiğini görmek için sitedeki tüm metinleri aramak için bir sorgu çalıştırmak istiyorum. [blob] dosyalarını aramak için nasıl bir sorgu çalıştırabilirim?Blob dosyalarında bir dize bulmak için bir sorgu nasıl çalıştırılır?
6
A
cevap
6
Mediawiki işaretleme metni, mediumblob türünde olan old_text
alanında depolanır. Diğer metin tabanlı alanlar gibi sorgulayabilirsiniz. MySQL, dizininizi sorgu için ikili haline getirecektir. Bu, büyük-hassas bir arama olduğunu unutmayın! Eğer küçük harf duyarsız gerekiyorsa
select old_id from text where old_text like "%string%";
sonra sütuna bir harf duyarsız harmanlama uygun character set uygulamak gerekir:
SELECT old_id from text where CONVERT(old_text USING latin1) like '%STRing%';
unutmayın o masa küçük değil bu sorgular ise uzun zaman alacak.
0
mediawiki documentation Metin Tablosuna göre, yalnızca revizyon metnini saklar. Bu nedenle, tam metne erişmek için, bir sayfaya karşılık gelen tüm revizyonların işlenmesi gerekir. Bir API çağrısı mediawiki search engine kullanmak ve sonuçları SQL sorgusu kullanarak aramaktan daha iyidir.
İlgili konular
- 1. Alt dizinlerdeki tüm java dosyalarında bir dize nasıl grep edilir?
- 2. Yabancı anahtarları bulmak için sorgu
- 3. Excel 2010 bulmak bir bir alt dize
- 4. Çift Başlı Bulmak için Sorgu
- 5. bir "blob" url
- 6. Zaman aralığındaki artışı bulmak için sorgu
- 7. Belirli bir uzunluktaki dize alanları için MySQL'de sorgu
- 8. Bir blob okumaya çalışıyorum
- 9. Node.js için bir Cron işi nasıl çalıştırılır
- 10. Belirli bir ortam için state.highstate nasıl çalıştırılır?
- 11. Nodejs için bir python betiği nasıl çalıştırılır
- 12. Objective-C - Bir dize içinde bir URL bulmak
- 13. Ayrılmış bir şemada saklı yordam nasıl çalıştırılır
- 14. Flask'in url_fors sorgu dizeleri için bir dize sınırlaması var mı?
- 15. dize içinde son sözcüğü bulmak için SQL deyimi
- 16. Verilen dize içinde çiftleri bulmak için nasıl C#
- 17. Emacs: nasıl değeri ile bir değişkeni bulmak için?
- 18. Dizi özniteliği belirli bir dize içeren nesneleri bulmak için ransack kullanın.
- 19. Dart bir sunucuda nasıl çalıştırılır?
- 20. Git repodan bir blob nasıl silinir?
- 21. Python: Bir listeden alt dizeler için bir dize nasıl denetlenir?
- 22. Belirli bir alan için tüm değeri bulmak için sorgu mongodb veritabanı C#
- 23. Hızlı bir dizi içinde bir satır bulmak için nasıl
- 24. Bir BLOB alanı eklemek için ScalaQuery nasıl kullanılır?
- 25. Javascript dize içinde kelime indeksi bulmak (kelimenin bir parçası değil)
- 26. "[]" bir dize dönüştürmek için nasıl bir tamsayı dizisi
- 27. Java ile bir .group() nasıl çalıştırılır
- 28. Bir alt öğe bulmak için jQuery'yi kullanma
- 29. Bir dize bir "word" sonra bir dize almak gerekiyor C#
- 30. Android'de XML dosyalarında bir diğerinin altında bir TextView nasıl görüntülenir?
Doğru hatırlıyorsam, MediaWiki 'text' tablonun içeriğini sıkıştırabilir. Durumunun bu olmadığından emin misin? – svick
Belgede, 'old_flags' sütununun bir gzip dosyası içerebileceğini, ancak aynı zamanda bir blob dosyası olduğunu ve indirdiğimde gzip dosyasını göremediğimi söylüyor. Tüm içeriğe rağmen arama yapmak istediğim wiki'mde çok miktarda içerik var, her sayfayı indiremiyorum ve çözemiyorum. Bunun nasıl yapılacağı hakkında bir fikrin var mı? – LTech