Benim arama motoru için sfenks yüklü var ve o inşaat büyük, ama şimdi beni NEREDE / VE hükümlerini yapmak için izin vermelidir SetFilter () kullanarak arama birkaç ekstra özellikler eklemek için çalışıyorum, ama ben bir arama deneyin ne zaman Orada gerektiği zaman, hiçbir sonuç döndürür.
Bu benim çalışma kodu:
require_once ( "sphinxapi.php" );
$cl = new SphinxClient ();
$cl->SetConnectTimeout ( 5 );
$cl->SetMatchMode ( SPH_MATCH_BOOLEAN );
$cl->SetSortMode ( SPH_SORT_EXPR , "@weight" );
$cl->SetFieldWeights ( array ( "item_title"=>100, "item_tags"=>99 ) );
$cl->SetLimits(0, 1000, 1000, 1000);
$cl->SetRankingMode ( SPH_RANK_PROXIMITY_BM25 );
$cl->AddQuery( $term, "indexTubelogr" );
Şimdi QUERY ile aramaya başlamak istiyorum - AND item_site_id = 1
. Ekleyebilirsiniz:
$cl->SetFilter('item_site_id', 1);
Sonra ben aşağıdaki hatayı alıyorum:
Warning: assert() [function.assert]: Assertion failed in /home/domain.com/sphinxapi.php on line 810
Ben de denedim:
$cl->SetFilter('item_site_id', array(1));
Bu bir hata verecektir, ama yine sonuç yok etmedi.
Benim sphinx.conf gibi görünüyor:
source srcDomain
{
type = mysql
sql_sock = /tmp/mysql.sock
sql_attr_timestamp = item_date
sql_ranged_throttle = 0
sql_query_info = SELECT * FROM items WHERE item_id=$id
sql_query = \
SELECT item_id, item_date, item_runtime, item_title, item_tags, item_site_id FROM items
}
index indexDomain
{
source = srcDomain
path = /opt/sphinx/var/data/domain
docinfo = extern
mlock = 0
morphology = stem_en
min_word_len = 2
charset_type = sbcs
ignore_chars = U+00AD
phrase_boundary = ., ?, !, U+2026 # horizontal ellipsis
html_strip = 0
preopen = 1
}
Herkes yanlış yapıyorum bana söyleyebilir misiniz?
Ben kodu hassas verileri kaldırıldı.