Hoi,
ik ben bezig om binnen een J2EE app met Oracle 8.1.7 te samen met Intermedia Text een 'google-like' zoek mechanisme te bouwen.
Graag zou ik dit binnen 1 query doen.
Ik heb hem functioneel werkend maar ben niet echt tevreden over de query.
Hij doet er op het huidige systeem dan ook 55 sec's over.
Heeft iemand een idee hoe ik hem kan verbeteren? Of ik binnen oracle zaken kan optimaliseren zodat dit sneller gaat?
Dit is de query;
select DISTINCT
/*+ FIRST_ROWS */
p.uuid, a.stringvalue, g.score1, g.score2
from
product p, attributevalue a, (select ownerid, SCORE(10) AS score1, SCORE(20) AS score2
from attributevalue
where contains(stringValue,'(sociaal AND recht)', 10)>0 OR contains(stringValue,'(sociaal OR recht)', 20)>0)
g
where
p.uuid IN
(
select ownerID
from attributevalue
where name IN ('name') and
contains(stringValue,'(sociaal OR recht)')>0 and
(localizedFlag=0 or localeID='nl_NL')
)
and
p.typeCode IN (2,4,10,16) and
p.onlineFlag=1 and
p.uuid=a.ownerID(+) and
a.name(+)='name' and
a.localeID(+)='nl_NL' and
p.uuid = g.ownerid
ORDER BY NVL(g.score1,0) desc, NVL(g.score2,0) desc
Alvast bedankt .....
ik ben bezig om binnen een J2EE app met Oracle 8.1.7 te samen met Intermedia Text een 'google-like' zoek mechanisme te bouwen.
Graag zou ik dit binnen 1 query doen.
Ik heb hem functioneel werkend maar ben niet echt tevreden over de query.
Hij doet er op het huidige systeem dan ook 55 sec's over.
Heeft iemand een idee hoe ik hem kan verbeteren? Of ik binnen oracle zaken kan optimaliseren zodat dit sneller gaat?
Dit is de query;
select DISTINCT
/*+ FIRST_ROWS */
p.uuid, a.stringvalue, g.score1, g.score2
from
product p, attributevalue a, (select ownerid, SCORE(10) AS score1, SCORE(20) AS score2
from attributevalue
where contains(stringValue,'(sociaal AND recht)', 10)>0 OR contains(stringValue,'(sociaal OR recht)', 20)>0)
g
where
p.uuid IN
(
select ownerID
from attributevalue
where name IN ('name') and
contains(stringValue,'(sociaal OR recht)')>0 and
(localizedFlag=0 or localeID='nl_NL')
)
and
p.typeCode IN (2,4,10,16) and
p.onlineFlag=1 and
p.uuid=a.ownerID(+) and
a.name(+)='name' and
a.localeID(+)='nl_NL' and
p.uuid = g.ownerid
ORDER BY NVL(g.score1,0) desc, NVL(g.score2,0) desc
Alvast bedankt .....