Son zamanlarda kendimi belge indeksleme motorlarının sınırlamalarında şike buluyorum. Bazı oldukça sağlam arama yeteneklerine ihtiyaç duyan küçük bir web sitesi geliştiriyordum, ancak donanım kısıtlamaları nedeniyle bu ihtiyacı çözmek için bir Lucene-ish çözümü (normalde yaptığım gibi Solr veya Elastik Arama gibi) kullanamadım.
Ve o zaman bile, veritabanı yoğun olan bazı karmaşık veri ve hesaplamaları sunmam gerekiyorken, 250 bin potansiyel kayıttan fazlasını işlememe gerek yoktu. Tüm Solr veya ES örneğini sadece bunun üstesinden gelmek için dağıtmak bir atık gibi görünüyordu.
Bunu düşündükten sonra, oldukça büyük bir sorun gibi görünüyor. Çoğu kişi arama gereksinimlerini yalnızca SQL ile halleder. Verileri için sadece SQL sorguları çalıştırıyorlar ve işte bu. Arama yetenekleri de korkunç oluyor.
Bir battaniye tam metin joker karakteri araması yapmak, bazı sistemlerde (özellikle paylaşılan ana bilgisayarlar) acı verici bir şekilde yavaş olabilir ve özellikle karmaşık sorgularınız ve çok sayıda birleşiminiz varsa veritabanınızı zorlayabilir.
Kullanıcıdan gelen tek bir istek üzerine birden çok sorgu gerçekleştirirsiniz. Her zamankinden daha karmaşık sorgularla bu sorunu çözebilirsiniz, ancak önceki noktaya bakın.
Tam metin motorlarda tipik olarak özellik eksikliği.
Veritabanları bir sunucu olarak dağıtılma ihtiyacı ile aynı soruna sahipti ve sonra SQLite geldi ve aniden tek bir dosyada bulunan bir veritabanını dağıtabiliriz. Google'ım hiçbir şey üretmedi - tam metin dizine ekleme / arama için böyle bir şey olup olmadığını merak ediyorum.
Hafif belge dizine ekleme (örn. Başka bir sorunun cevabında açıklandığı gibi ) veya bu durumlar için SQL kullanmaya devam etmeye karar verirken dikkate alınması gereken faktörler nelerdir ?