Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#1 20/06/2013 10:31:46
- pitpoule
- Membre
[NEWBIE] Recherche plein texte qui ne retourne pas ce que j'attends...
bonjour à tous,
Ma question doit être surement bête mais je n'arrive pas à comprendre... j'ai installé pour faire joujou une des bases "sample" de pgfoundry, la base "dell store"
Dans cette base existe une fonction qui fait de la recherche plein texte (si j'ai bien compris la fonction !)
CREATE OR REPLACE FUNCTION browse_by_actor(batch_size_in integer, actor_in text)
RETURNS SETOF products AS
$BODY$
DECLARE
vector_in TEXT;
BEGIN
vector_in := replace(trim(both from actor_in), ' ','&');
RETURN QUERY SELECT * FROM PRODUCTS WHERE to_tsvector('simple',ACTOR) @@ to_tsquery(vector_in) LIMIT batch_size_in;
RETURN;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION browse_by_actor(integer, text)
OWNER TO ds2;
Lorsque je fais cette recherche, j'ai un résultat
ds2=# select browse_by_actor(10,'TOM');
browse_by_actor
--------------------------------------------------------
(396,1,"ACADEMY HANGING","TOM BRANDO",11.99,0,175497)
(456,3,"ACADEMY INCH","TOM PACINO",16.99,0,281711)
(533,5,"ACADEMY LOST","TOM OLIVIER",12.99,0,890719)
(715,1,"ACADEMY RANGE","TOM BOGART",16.99,0,595664)
(1182,6,"ACE CONTROL","TOM RYAN",25.99,0,384257)
(1617,13,"ACE NATURAL","TOM DAY-LEWIS",10.99,0,313129)
(1653,15,"ACE PANIC","TOM MCKELLEN",19.99,0,70037)
(1725,4,"ACE REQUIEM","TOM LANCASTER",17.99,0,502027)
(1826,11,"ACE SPEED","TOM MATTHAU",19.99,0,351249)
(1849,13,"ACE STORM","TOM MIRANDA",11.99,0,932078)
(10 rows)
Tandis que si je fais
ds2=# select browse_by_actor(10,'LISA');
browse_by_actor
-----------------
(0 rows)
Alors qu'il existe bien des "LISA" dans la colonne actor
ds2=# SELECT * FROM PRODUCTS WHERE ACTOR like '%LISA%' limit 10;
prod_id | category | title | actor | price | special | common_prod_id
---------+----------+----------------------+-------------------+-------+---------+----------------
6775 | 2 | AIRPLANE SEATTLE | LISA TURNER | 20.99 | 0 | 449863
6944 | 6 | AIRPLANE VIRGIN | LISA SINATRA | 23.99 | 0 | 397913
7056 | 13 | AIRPORT BAREFOOT | LISA BACALL | 29.99 | 0 | 175242
7064 | 6 | AIRPORT BEETHOVEN | LISA OLIVIER | 15.99 | 0 | 446202
7096 | 3 | AIRPORT BREAKING | LISA LOLLOBRIGIDA | 9.99 | 0 | 694809
7332 | 15 | AIRPORT FRANKENSTEIN | LISA CLOSE | 28.99 | 0 | 379655
7850 | 3 | AIRPORT STORY | LISA MARTIN | 24.99 | 0 | 924982
8009 | 13 | ALABAMA ALABAMA | LISA BOGART | 28.99 | 0 | 902136
8013 | 16 | ALABAMA ALI | LISA BERGMAN | 22.99 | 0 | 758305
8041 | 11 | ALABAMA ARSENIC | LISA MOORE | 28.99 | 0 | 85891
(10 rows)
Je suis sur une version 9.2
Que se passe t'il ?
Merci
Dernière modification par pitpoule (20/06/2013 10:34:24)
Hors ligne
#2 20/06/2013 11:39:18
- gleu
- Administrateur
Re : [NEWBIE] Recherche plein texte qui ne retourne pas ce que j'attends...
Aucune idée. Ça fonctionne parfaitement pour moi.
dellstore2=# select browse_by_actor(10,'LISA');
browse_by_actor
-------------------------------------------------------------
(6,9,"ACADEMY AGENT","LISA SPACEK",15.99,0,5243)
(241,13,"ACADEMY DONNIE","LISA TANDY",18.99,0,5463)
(243,16,"ACADEMY DOORS","LISA KEATON",24.99,1,4739)
(520,13,"ACADEMY LICENSE","LISA LOLLOBRIGIDA",22.99,0,2144)
(694,1,"ACADEMY PREJUDICE","LISA NOLTE",24.99,0,4408)
(708,4,"ACADEMY QUILLS","LISA RYAN",9.99,0,2916)
(780,14,"ACADEMY SENSIBILITY","LISA KAHN",21.99,0,3881)
(935,2,"ACADEMY VANISHED","LISA DRIVER",22.99,0,7792)
(1185,16,"ACE COWBOY","LISA LOLLOBRIGIDA",15.99,0,453)
(1254,7,"ACE DRIVER","LISA GARBO",11.99,0,5399)
(10 rows)
Vous avez dû faire d'autre chose, comme ne pas utiliser lle bon encodage ou changer la configuration 'simple'.
Guillaume.
Hors ligne
#3 20/06/2013 12:01:58
- kenrio
- Membre
Re : [NEWBIE] Recherche plein texte qui ne retourne pas ce que j'attends...
j'ai installé la base pour m'amuser, j'ai la même erreur voici la configuration de la bdd :
CREATE DATABASE dellstore3
WITH OWNER = seb
ENCODING = 'LATIN1'
TABLESPACE = pg_default
LC_COLLATE = 'C'
LC_CTYPE = 'C'
CONNECTION LIMIT = -1;
j'ai pas touché a la configuration simple
Dernière modification par kenrio (20/06/2013 12:03:31)
Hors ligne
#4 20/06/2013 13:45:04
- pitpoule
- Membre
Re : [NEWBIE] Recherche plein texte qui ne retourne pas ce que j'attends...
Moi, j'ai utilisé les scripts généraux (ds2.tar.gz) pour créer une base de 1Gb. Les infos de ma base
Name | ds2
Owner | ds2
Encoding | UTF8
Collate | fr_FR.UTF-8
Ctype | fr_FR.UTF-8
Access privileges |
Size | 1624 MB
Tablespace | pg_default
Hors ligne