У меня есть многоколоночное хранилище данных, индексированное с использованием Oracle Text, и я запускаю запросы, используя ключевое слово Contains.
Чтобы различить разные столбцы, я продолжаю следовать.Oracle Text: Как не считать часть запроса для подсчета очков?
Если пользователь ищет «ужасный», запрос выдается оракул будет выглядеть следующим образом:
WHERE CONTAINS(indexname,
'((horrible WITHIN column1) * 3)
OR ((horrible WITHIN column2) * 2))') > 1
Но, чтобы добавить категорию фильтра, который также проиндексирован, я делаю это:
WHERE CONTAINS(indexname,
'((horrible WITHIN Column1) * 3)
OR ((horrible WITHIN Column2) * 2))
AND (movie WITHIN CategoryColumn)', 1) > 1
Это фильтрует по категориям, но это полностью забивает счет, потому что текст Oracle будет принимать самый низкий результат с любой стороны ключевого слова AND. Вместо этого я хотел бы дать указание оракулу игнорировать правую часть моего И.
Есть ли способ, чтобы эта конкретная часть запроса была проигнорирована подсчетом?
В принципе, я хочу, чтобы выиграть в соответствии с
(horrible WITHIN Column1) * 3
OR (horrible WITHIN Column2) * 2)
, но я хочу, чтобы выбрать в соответствии с
'((horrible WITHIN Column1) * 3)
OR ((horrible WITHIN Column2) * 2))
AND (movie WITHIN CategoryColumn)'
спасибо за ввод, я посмотрю на это ближе в ближайшее время. –