J'ai un problème avec Sphinx. J'ai la configuration comme ceci:Problème de sphinx. Filtre
sql_query = \
SELECT id, product_title, product_inf, product_code, ptype_name, title, cat, value, car \
FROM Catalog_View;
sql_attr_uint = car
sql_attr_uint = cat
Catalog_View est une vue qui collecter des données de plusieurs tables. Cela fonctionne bien et n'a aucun problème. J'ai créé l'index avec cette configuration:
index src1
{
source = src1
path = /var/data/src1
docinfo = extern
mlock = 0
morphology = stem_en, stem_ru
min_word_len = 3
charset_type = sbcs
min_prefix_len = 0
min_infix_len = 3
enable_star = 1
}
Et l'indexeur a fait son travail parfait. Mais quand je suis à la recherche de requête vide (comme ceci '') et configurer deux filtres
$cl->SetFilter('cat',array(9));
$cl->SetFilter('car',array(2));
Je perds beaucoup de matches. Par exemple, lorsque j'utilise SQL-query pour Catalog_View, j'ai 76 lignes, et la même chose dans Sphinx ne me donne que 11 lignes. Je ne peux pas comprendre ce que je fais mal. Tout semble bien sauf filtre. En fait, j'ai le même problème avec les filtres lorsque je cherche une requête non-vide.
Dans votre requête utilisez-vous ET ou OU pour sélectionner ces deux colonnes? – datasage
Je ne comprends pas de quoi vous parlez ... ma requête est une chaîne vide ('') ou quelques mots (comme 'voiture vend') – Anton
Vous avez dit que vous avez fait une requête SQL et obtenu plus de résultats. Ma question est de savoir si vous avez utilisé AND ou OR sur les colonnes chat et voiture? Les filtres Sphinx sont ET'd ensemble, mais vous pouvez faire un ou à travers la requête elle-même. – datasage