arama motoru (Solr / sfenks) soru

1 Cevap php

i Solr gibi tam metin arama motorları ile benim ipler içerik aranabilir yapmak istiyorum.

ama ben bir şeyi merak ediyorum. i endeksi sadece thread.title, thread.body ve post.body veya gerektiği i dizin adınızı, mesajların nr, tarih yarattı, görünümleri, ülke, bölge ve şehir de bu iplik aittir gerekir?

o hit alacak bir iş parçacığı için bir kullanıcı arama konu başlığı, yani 2 kullanıcı bunu gönderdi vücut hatları, oluşturulma tarihi, etiketleri içeren ve döndüğümde demek.

çok i endeksi tüm bu bilgileri gerekir? ama sonra hemen hemen tüm veritabanı olacaktır. ya ben sadece indeks i tam metin arama için belirtilen ilk 3 sütun gerekir.

ve başka bir soru. Bir kullanıcı yeni bir konu, o zaman ben immidiately bu satırı eklemek için SOLR söylemek zorunda? im değilse, nasıl aranabilir olurdu?

1 Cevap

Ben Apache lucene kullandım ama henüz Apache SOLR kullanmadım. Yani bu cevap bazı extrapolating ediyorum. Ama Lucene indeksleme güçler Solr yüzden hemen hemen aynı olduğunu varsayıyorum budur.

Ben aranabilir içerik veya bir arama sonucunda döndürülen bir parçası olarak isteyebileceğiniz her şeyi eklemek istiyorum.

Bu alanlar aranabilir içerik parçası değildir anlamına gelir - Lucene sen "analiz" gibi bir belgeye alanları eklemenize izin verir unutmayın. Eğer bir arama yapmak ve bu belge bulur Ama ekstra alanlar iade edilir. Alternatif Eğer eşleşen belgeleri bulduktan sonra, bir SQL arama yapmak için kullanmak zorunda sonra sadece birincil anahtar ve eklemektir.

Lucene da endekste belirli alanlara karşı sorguları destekler. Yani endeksindeki tüm alanları içerebilir, ancak alanların sadece bir alt karşı verilen bir arama tomatch istiyorsanız, bunu yapabilirsiniz.

Son olarak, evet sizin veritabanındaki veriler ile senkronize Lucene / Solr endeksi tutmak zorunda. Sen Solr sunucuya RDBMS veri yükü toplu yardım için DataImportHandler kullanabilirsiniz. Yoksa yeni bir iş parçacığı oluşturulur gibi onları gerçek zamanlı olarak endeksli gerekirse tek tek belgeleri göndermekten SOLR REST gibi HTTP arabirimini kullanabilirsiniz.