Doubt using Excalibur Datablade
Posted in 2004
Alejandro Jimenez Choclan created several Excalibur (ETX) indexes with different stopword lists on one column, but queries always used the last index created. Obnoxio The Chav and Paul Watson suggested optimizer directives. Alejandro confirmed that select {+INDEX (cw_trad_content i_content_name_ES)} forced the right index. Solved.
Auto-generated by Claude from the posts below — may be imperfect; read the full thread.
Topics: General Discussion
Hi,
I'd like use several StopWordlists on the same column. Using ETX I can make
different indexs with different Stopworlists.
EXECUTE PROCEDURE
etx_CreateStopWlst('ES_LIST','/palabrastabu_ES.txt','etxspace') ;
EXECUTE PROCEDURE
etx_CreateStopWlst('FR_LIST','/palabrastabu_FR.txt','etxspace') ;
create index i_content_name_ES on cw_trad_content (trad_name etx_varc_ops)
using etx (word_support='EXACT', stopword_list='ES_LIST'
, include_stopwords='FALSE') in etxspace ;
create index i_content_name_FR on cw_trad_content (trad_name etx_varc_ops)
using etx (word_support='EXACT', stopword_list='FR_LIST'
, include_stopwords='FALSE') in etxspace ;
But now, when I try the sql
SELECT * from cw_trad_content WHERE etx_contains(trad_name, Row ('estudio',
'SEARCH_TYPE =PHRASE_EXACT&NO_HILITE'))
Always the server use the last created index . Are there a possibility to
specify the index name in the SQL using ETX ?.
Thans in advance.
---------------------------------
Alejandro J.... said:
>
> I'd like use several StopWordlists on the same column. Using ETX I can
> make different indexs with different Stopworlists.
>
> EXECUTE PROCEDURE
> etx_CreateStopWlst('ES_LIST','/palabrastabu_ES.txt','etxspace') ;
>
> EXECUTE PROCEDURE
> etx_CreateStopWlst('FR_LIST','/palabrastabu_FR.txt','etxspace') ;
>
> create index i_content_name_ES on cw_trad_content (trad_name> etx_varc_ops) using etx (word_support='EXACT', stopword_list='ES_LIST'
> , include_stopwords='FALSE') in etxspace ;
>
> create index i_content_name_FR on cw_trad_content (trad_name> etx_varc_ops) using etx (word_support='EXACT', stopword_list='FR_LIST'
> , include_stopwords='FALSE') in etxspace ;
>
> But now, when I try the sql
>
> SELECT * from cw_trad_content WHERE etx_contains(trad_name, Row
> ('estudio', 'SEARCH_TYPE =PHRASE_EXACT&NO_HILITE'))>
> Always the server use the last created index . Are there a possibility to
> specify the index name in the SQL using ETX ?.
I really haven't thought this through at all, but "optimizer directives"?
--
Bye now,
Obnoxio
"C'est pas parce qu'on n'a rien à dire qu'il faut fermer sa gueule"
- Coluche
"I'm trying to see things your way, but I can't get my head up my ass"
- JCH
"Ogni uomo mi guarda come se fossi una testa di cazzo"
- Marco
I went to the airport to check in and they asked what I did because I
looked like a terrorist. I said I was a comedian. They said, "Say
something funny then." I told them I had just graduated from flying
school.
-- Ahmed Ahmed
Have you tried using an
optimiser directive on the SQL
Alejandro J.... wrote:
> Hi,
>
> I'd like use several StopWordlists on the same column. Using ETX I can make
different indexs with different Stopworlists.
>
> EXECUTE PROCEDURE
etx_CreateStopWlst('ES_LIST','/palabrastabu_ES.txt','etxspace') ;
>
> EXECUTE PROCEDURE
etx_CreateStopWlst('FR_LIST','/palabrastabu_FR.txt','etxspace') ;
>
> create index i_content_name_ES on cw_trad_content (trad_name etx_varc_ops)
using etx (word_support='EXACT', stopword_list='ES_LIST'
> , include_stopwords='FALSE') in etxspace ;>
> create index i_content_name_FR on cw_trad_content (trad_name etx_varc_ops)
using etx (word_support='EXACT', stopword_list='FR_LIST'
> , include_stopwords='FALSE') in etxspace ;>
> But now, when I try the sql
>
> SELECT * from cw_trad_content WHERE etx_contains(trad_name, Row ('estudio',
'SEARCH_TYPE =PHRASE_EXACT&NO_HILITE'))>
> Always the server use the last created index . Are there a possibility to
specify the index name in the SQL using ETX ?.
>
> Thans in advance.
>
>
>
> ---------------------------------
> .
>
--
Paul Watson #
Oninit Ltd # Growing old is mandatory
Tel: +44 1436 672201 # Growing up is optional
Fax: +44 1436 678693 #
Mob: +44 7818 003457 #
www.oninit.com #
Thanks
Obnoxio & Paul..
Using
select {+INDEX (cw_trad_content i_content_name_ES) } ...
Works!!!
Thanks
paul@oninit.com wrote:
Have you tried using an optimiser directive on the SQL
Alejandro J.... wrote:
> Hi,
>
> I'd like use several StopWordlists on the same column. Using ETX I can make
different indexs with different Stopworlists.
>
> EXECUTE PROCEDURE
etx_CreateStopWlst('ES_LIST','/palabrastabu_ES.txt','etxspace') ;
>
> EXECUTE PROCEDURE
etx_CreateStopWlst('FR_LIST','/palabrastabu_FR.txt','etxspace') ;
>
> create index i_content_name_ES on cw_trad_content (trad_name etx_varc_ops)
using etx (word_support='EXACT', stopword_list='ES_LIST'
> , include_stopwords='FALSE') in etxspace ;>
> create index i_content_name_FR on cw_trad_content (trad_name etx_varc_ops)
using etx (word_support='EXACT', stopword_list='FR_LIST'
> , include_stopwords='FALSE') in etxspace ;>
> But now, when I try the sql
>
> SELECT * from cw_trad_content WHERE etx_contains(trad_name, Row ('estudio',
'SEARCH_TYPE =PHRASE_EXACT&NO_HILITE'))>
> Always the server use the last created index . Are there a possibility to
specify the index name in the SQL using ETX ?.
>
> Thans in advance.
>
>
>
> ---------------------------------
> .
>
--
Paul Watson #
Oninit Ltd # Growing old is mandatory
Tel: +44 1436 672201 # Growing up is optional
Fax: +44 1436 678693 #
Mob: +44 7818 003457 #
www.oninit.com #
begin:vcard
fn:Paul Watson
n:Watson;Paul
email;internet:paul@oninit.com
tel;work:+44 1436 672201
tel;fax:+44 1436 678693
tel;cell:+44 7818 003457
x-mozilla-html:FALSE
version:2.1
end:vcard
---------------------------------