PHP tabanlı arama çerçeveler

4 Cevap php

Ben gelişmiş arama yetenekleri gerektiren küçük bir site yapmak için gidiyorum. Tekerleği yeniden böyle değerli bir etkinlik değildir, çünkü ben biraz araştırma yaptım ve Zend çerçevesi entegre bir tanesi bazı PHP tabanlı arama çerçeveler vardır bulduk.

Ben çerçevesinde istiyorum ne:

  1. Tam metin ve katalog hem de arama yetenekleri
  2. Sonuç alaka düzeyine göre sıralanır
  3. Kategoriye göre sonuçları filtrelemek yeteneği
  4. Çeşitli kriterlere göre sonuçları sıralama
  5. Hızlı arama
  6. Hızlı ekleme gerekli değildir

Site oldukça fazla statik içerik (bazı yazı ve bir ürün kataloğu) yer alacak bu yana, bazı öncesi oluşturulan indeksi ile gidebilir.

Yukarıdaki gereksinimlerini karşılamak olabilir (serbest) çerçeveler var mı? Öneriler, ipuçları ve fikirler bekliyoruz daha vardır. Eğer bir arama sistemini uyguluyor deneyimlerini paylaşmak olsa harika olurdu.

4 Cevap

a link to the Xapian project page - Omega (Xapian dayalı) bir göz

Cgi-bilge entegre edebilirsiniz. O kör edici hızlı Xapian dayalı çünkü doğru kurmak eğer hızlı seçeneklerden biri olacaktır. Bu sormak için her şeyi yapmak (arama sonuçları, dizin web sunucusu belgeler (html, pdf, word, excel, sql veritabanları ...) için uygunluğu vb dahil olmak üzere 'doğan' yok ..) olabilir

Başka (aynı zamanda çok iyi bir seçenek) ders dışı olmak Apache Lucene olur -> Eğer başvurulan Zend çerçevesi ("Zend Search") dahil bu bir. Ben şahsen Xapian tercih rağmen, hepsi aynı hileler yapabilirsiniz.

Edit: eğer doğru geri çağırmak Apache Lucene LGPL ise Omega (ve Xapian) GPL olduğunu unutmayın.

Site sadece statik içerik olacak eğer böyle Joomla veya Drupal gibi bir CMS ile gitmek isteyebilirsiniz. Hem iyi arama sistemleri var. Ancak, arama gerçekten var içeriğinin ne tür bağlıdır. Onun sadece sayfanın HTML arama varsa, bu bir şey, ama bir ürünün belirli bir modeli için # veritabanı arama yerine bir CMS daha alışveriş sepeti / e-ticaret sistemi gerekir ki bu durumda başka, olduğunu.

kesinlikle kullanabilirsiniz SOLR. Solr lucene kullanır. Bu orta / büyük site için biz yararlı olabilir ....

iyi bir şey Solr php tefrika formatında sonucu isteyebilirsiniz olduğunu ...

EDIT:

Bu ben tam onu ​​unuttum, arıyoruz budur: Lucene Port To PHP by Zend

Geçenlerde benim Zend Framework tabanlı web uygulama ile kullanmak için bir düşündüren tam arama geliştirildi - Ben benim gereksinimlere uygun herhangi bir hazır çözüm bulamadı, bu yüzden tüm dışarı gitti ve sıfırdan bir basit (tam metin) anahtar kelime arama mekanizmasını geliştirdi. Ben aşağıdaki makaleler yararlı buldu:

http://devzone.zend.com/node/view/id/1304

http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html

Ben şimdi ne var veritabanına kaydedilen öğe (veya güncelleştirilmiş) olduğu anda oluşturulan 'metin özetle' dayanan öğeleri eşleşen bir sistemdir. Ben her öğenin (script oluşturulur), kendi kimliği ve kendi kategorisinde id metin özetini içeren bir tablo olarak adlandırılan kw_search_summary var. 'Özet' sütunu bir mysql tam endeks, bu yüzden ben sadece KAÇINCI () özet KARŞI sütun () belirli bir ifade ve alaka ile sonuçlarını görüntüler. Bu sorguyu oluşturur kodu bu gibi biraz görünüyor:

    $select = $this->db->select()
                 ->from(array('kwi' => 'kw_search_index'),
                        array('id','prodcatid','itemid','useradid','summary','relevance' => "match(summary) against($safeExp in boolean mode)"))
                 ->where("match(summary) against($safeExp in boolean mode)")
                 ->order('relevance desc')
                 ->limitPage($currentPage,self::RESULTS_PER_PAGE);

En azından biraz yardımcı oldu umuyoruz.