Запрос Oracle CONTAINS не возвращает результаты

У меня есть таблица с именем products со следующей схемой и данными:

|   product_id   |   name   |   description   |   price   |   location   |
|     NUMBER     | VARCHAR2 |       CLOB      |NUMBER(9,2)| SDO_GEOMETRY |
--------------------------------------------------------------------------
|      27        | Nexus 4  |  Android phone  |    160    |     null     |

Когда я выдаю запрос SELECT * FROM products;, я получаю данные обратно. Все хорошо. Но я хочу иметь возможность возвращать результаты, используя CONTAINS() в where, например:

SELECT "PRODUCT_ID", "NAME", "DESCRIPTION", "PRICE"
FROM "PRODUCTS"
WHERE CONTAINS("NAME", 'nexus') > 0;

Однако я не получаю никаких результатов. То же самое происходит, когда я меняю nexus на Nexus или Nexus 4. Я подумал, что это может быть как-то связано с тем, что name является разрешаемым словом, но то же самое происходит и со столбцом description.


person John Dorean    schedule 14.11.2014    source источник
comment
Ваш индекс синхронизирован?   -  person Jon Heller    schedule 14.11.2014


Ответы (2)


Оказывается, это потому, что у меня было два текстовых индекса в одной таблице, для имени и описания. Я удалил один для описания, и это сработало.

person John Dorean    schedule 14.11.2014

Если вы не используете смешанные/строчные имена таблиц и столбцов, все символы " могут быть удалены в вашем запросе...

person tvCa    schedule 22.11.2014