2016-01-23 2 views
0

сначала я все новичок в Oracle Text, поэтому, пожалуйста, несите меня. Я думаю, что моя ситуация довольно проста в управлении, потому что я должен выполнить поиск по двум полям одной таблицы, и эти поля довольно малы. После прочтения некоторых статей, мне кажется, что для меня достаточно индекса CTXCAT, но я не понимаю, как искать части слов; например, если я ищу «пик», мне бы хотелось, чтобы возвращались такие слова, как «говорить». Можете ли вы помочь мне понять это?Oracle Full Text, как искать похожие слова

ответ

1

Пожалуйста, посетите ниже ссылке:

http://www.oracle.com/technetwork/testcontent/ctxcat-primer-090555.html

Некоторая часть из ссылки, упомянутые выше, ниже.

Я хочу, чтобы найти все элементы аукциона, который содержит слова «игрушки» и «собака», но не фразу «живое животное»:

SELECT item_id, item_desc 
FROM auction WHERE CATSEARCH (item_desc, '(toy dog) | "live animal"', null) > 0;         

Несколько моментов, чтобы отметить:

  1. Идентичные термины не нуждаются в слове «И» и даже «&». И имеет значение между любыми смежными терминами.
  2. НЕТ представляет "|" (OR, а не здесь, представлен «|»).
  3. Круглые скобки могут использоваться для группировки терминов.
  4. Двойные кавычки используются, чтобы окружить фразу (иначе «живые животных» были бы читаться как «живые и животные».

«нулевой» в приведенном выше запросе является заполнителем для structable clause. По умолчанию не установлено - если вы не предоставляете никакого структурированного предложения, вы ДОЛЖНЫ поставить здесь «null». Структурированное предложение позволяет вам ограничить или отсортировать результаты. Если бы я хотел расширить запрос выше, найти только предметы стоимостью менее $ 100, я мог бы использовать

WHERE CATSEARCH (item_desc, '(toy dog) | "live animal"', 'price < 100') > 0 

и если бы я хотел результатов с новейшими пунктов первой, я мог бы использовать

WHERE CATSEARCH (item_desc, '(toy dog) | "live animal"', 
        'price < 100 order by start_time desc') > 0 
+0

Благодаря Shariar :) – Fra83

+0

Вы только приветствовать братан :) –