2014-06-24 11 views
6

Sphinx'te yeniyim ve doğru şekilde yapılandırılmaya çalışıyorum. Tüm aramalarda kısmi kelime eşleştirmesine izin vermek ve kullanıcıların joker karakterleri kendi başlarına yazmasını istemelerini istemiyorum.Sfenks'te kısmi kelime eşleşmelerini etkinleştirme?

Aramanın Amazon veya Google gibi çalışmasını istiyorum. Burada bir kelime yazmaya başlarsanız öneriler ortaya çıkacaktır. Yani, örneğin, birisi "x" yazmışsa, "Xbox" gibi eşleşmeler görünmelidir.

İşte indeks ayarları Şu anda var şunlardır:

şeylerin PHP tarafında
min_word_len = 1 
min_prefix_len = 1 
prefix_fields = name 
charset_type = utf-8 

, ben SPH_MATCH_EXTENDED2 ve SPH_SORT_RELEVANCE kullanıyorum. Sıralama modunu varsayılan olarak bıraktım, her ne ise. Deneme ve hataya göre ayarları değiştirdiğimde, bu ayarlar en iyi arama sonuçlarını sağladı.

Burada ve başka sitelerde de benzer soruları okudum, ancak yanıtların her zaman, belgenin kullanımdan kaldırıldığını belirten enable_star başvurusu görünüyor.

Sorularım, Sphinx'te kısmi kelime eşlemelerini nasıl etkinleştiririm? Bir kullanıcı sorgusunda her kelimeye *'u eklemem gerekir mi?

$search = str_replace(' ', '* ', trim($search)) + '*'; 

cevap

6

Sen described in the docs olarak expand_keywords = 1 ayarlayabilirsiniz.

Aslında, hemen hemen sizin için yıldızları otomatik olarak ekler - genel olarak kesin eşlemeler, saf 'kısım' eşleşmelerden biraz daha yüksek olacak şekilde.

+0

Teşekkür ederim, mükemmel çalışıyor! – Nate