The problem is that most probably in your query Oracle uses CATSEARCH
as a function invocation, rather than using your index. This is because you have the OR condition and Oracle has to check every row in your table. That's also the reason why HINT won't help. Can you show us the execution plan?
Perhaps try this:
select *
from customer
where customer_id > 100
UNION
select /*+ INDEX(customer CTXCAT_CUSTOMER_NAME)*/ *
from customer
where CATSEARCH(customer_name,'ltd Anderson',null) > 0;
(the hint shouldn't be necessary in above example)