J'ai installé sphinx pour mon moteur de recherche, et ça fonctionne très bien, mais maintenant j'essaie d'ajouter quelques fonctionnalités supplémentaires à la recherche en utilisant setFilter() qui devrait me permettre de faire O WH?/AND clauses, mais chaque fois que j'essaie une recherche, elle ne renvoie aucun résultat quand il le faut.Sphinx setFilter() tue tous les résultats
Ceci est mon code de travail:
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");
Maintenant, je veux commencer à chercher avec QUERY - AND item_site_id = 1
. J'ajoute:
$cl->SetFilter('item_site_id', 1);
Puis-je obtenir l'erreur suivante:
Warning: assert() [function.assert]: Assertion failed in /home/domain.com/sphinxapi.php on line 810
J'ai essayé aussi:
$cl->SetFilter('item_site_id', array(1));
Cela n'a pas donné une erreur, mais encore une fois, aucun résultat .
Mon sphinx.conf ressemble:
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
}
Quelqu'un peut-il s'il vous plaît me dire ce que je fais mal?
J'ai supprimé les données sensibles du code.
pour être honnête avec vous, je ne sais pas comment lancer des commandes sphinx via la ligne de commande. –
@Godius: il suffit de copier et coller les commandes (en changeant 'myterm' à votre requête de recherche réelle) :) – Quassnoi
Ok, j'ai obtenu la chose de ligne de commande working.using fichier de configuration '/opt/sphinx/etc/sphinx.conf' .. index 'indexTubelogr': erreur de recherche: aucun attribut de filtre 'item_site_id'. –