Arama kriterlerini veya arama sonuçlarını depolamak nasıl?

4 Cevap php

I have a php classifieds website (mostly) and I am currently using MYSQL as a database. Later on I will use SOLR or maybe Sphinx as a "search engine".

Ben mümkün kullanıcıların daha önce yapmış aramalar "sonuç" olarak görüntülemek için yapmak istiyorum, ama nereden başlayacağımı bilmiyorum ...

Bu nasıl yapılır?

Şu anda ben de doldurulması ve teslim zaman, php, sadece herhangi bir eşleşme olup olmadığını görmek için agains bir mysql tablosunu denetler bir form var.

Ben 'Arama kriterleri' depolamak ve yeni bir arama kullanıcılar önceki aramaların birine tıklayın her zaman yapmak, ya da ben sonuçlarını saklamak gerektiğine? Yeni öğeler son arama beri takılmış olabilir, çünkü ben yeni bir arama yapmak için tercih ederim!

Eğer daha fazla girdi ihtiyacınız varsa, sadece bana bildirin ve ben bu Q güncelleyeceğiz

Teşekkürler

4 Cevap

Temelde "kaydedilen aramalar" bahsediyoruz eğer ben sadece burada ayrı bir tablo var ki çok iyi ... Ben şu anda benzer bir şey yapıyorum ....

saved_search_id (birincil) | User_id (yabancı) | SEARCH_NAME | ölçüt1 | ölçüt2 | criteria3 ... vb

Yani temelde ben şimdi kullanıcı onlar yarattık kayıtlı arama listesini görüntüleyebilir ve tablo bu arayışın bir parçası olan kriterleri saklar. Ben o zaman kaydedilmiş bir arama çalıştırmak için bu kaydedilen kriterleri kullanabilirsiniz.

Bu yardımcı olur mu?

Arama formu için sorgu dizesi parametrelerini ($_GET) kullanın. Sonra kullanıcı aramayı favorilerinize ekleyebilirsiniz. İsterseniz, sizin uygulamanızda bir imleme özelliği oluşturabilir, ama gerçekten gerek yoktur.

Eğer performans konusunda endişeleriniz varsa, veritabanı 'önbellek ayarları doğru ayarlanmış ve tabloya çok sık yazmıyorum ki emin olun. MySql sonra önbelleğe alma iyi bir iş yapmak olacaktır.

Eğer zaten söyledi: kullanıcıların eski sorgu yeni sonuçlarını görmek gerekiyorsa, bir şekilde arama parametrelerini depolamak ve kullanıcıların istekleri aramayı yeniden yapmak gerekecek.

Arama kriterlerini saklayın. Veri kullanıcıları eski sonuçları alırsınız değiştirir gibi bu oldukça obivious olduğunu. Ve sonuç bir süre sonra sürebilir alanı düşünün :)

Ben de gerçekten gerçek sorgu arama kriterleri değil depolamak düşünün. Eğer veritabanı değiştirmek Eğer aynı sorgu nesil motor güncellemeniz gerekir saklanan aramalar hala çalışmak istiyorsunuz ama büyük olasılıkla depolanan her sorguyu güncelleştirmek unuttum olacaktır.