Bonjour,
Je suis actuellement en train de faire des recherches fulltext sous PostgreSQL mais j'aimerais savoir si c'est normal que je n'obtienne pas le même score pour une même requête.
Par exemple, ces 3 requêtes me retournent 2 lignes avec les mêmes résultats sauf le score qui est différent.
Requête 1: Sous MySQL, j'obtiens des scores de 5.26 et 10.62.
1 2 3 4 5 6 7 8 9
| SELECT MATCH (sem_trk_name,sem_trk_label,sem_trk_city_start,sem_trk_city_end)
AGAINST ("waz*" IN BOOLEAN MODE) AS score, trk_id AS id, trk_name AS name,
trk_filename AS filename, trk_duration AS duration, trk_rate AS rate, trk_length AS
length, trk_view AS view, trk_veh_id AS veh_id, trk_mem_id AS mem_id,
trk_map_type
FROM track, search_match
WHERE MATCH(sem_trk_name,sem_trk_label,sem_trk_city_start,sem_trk_city_end) AGAINST
("waz*" IN BOOLEAN MODE) AND sem_trk_id=trk_id AND trk_status=0
GROUP BY trk_id ORDER BY score DESC |
Requête 2: Sous PostgreSQl, j'obtiens 0.3 et 0.1.
1 2 3 4 5 6 7
| SELECT ts_rank_cd(tsv, to_tsquery('waz:*')) AS score,
trk_id AS id, trk_name AS name, trk_filename AS filename, trk_duration AS duration, trk_rate AS rate,
trk_length AS length, trk_view AS view, trk_veh_id AS veh_id, trk_mem_id AS mem_id, trk_map_type
FROM search_match, track_group
WHERE to_tsquery('waz:*') @@ tsv
AND sem_trk_id=trk_id AND trk_status=0
ORDER BY score DESC |
Requête 3: Toujours sous PostgreSQL mais avec la fonction ts_rank() au lieu de ts_rank_cv(), j'obtiens 0.08 et 0.06
1 2 3 4 5 6 7 8
|
SELECT ts_rank(tsv, to_tsquery('waz:*')) AS score,
trk_id AS id, trk_name AS name, trk_filename AS filename, trk_duration AS duration, trk_rate AS rate,
trk_length AS length, trk_view AS view, trk_veh_id AS veh_id, trk_mem_id AS mem_id, trk_map_type
FROM search_match, track_group
WHERE to_tsquery('waz:*') @@ tsv
AND sem_trk_id=trk_id AND trk_status=0
ORDER BY score DESC |
De plus, j'aimerais aussi avoir quelques éclaircissements car
-avec ('waz:*') j'obtiens tous les lignes qui comprennent des mots débutant
par 'waz'
-avec ('waziers') j'obtiens tous les lignes qui comprennent le mot 'waziers'
Mais je ne trouve pas comment avoir les lignes qui comprennent les mots se terminant par 'ziers'.
Merci beaucoup pour votre aide
Partager