Актуальность с использованием Oracle Text - PullRequest
9 голосов
/ 05 июля 2011

Я хочу реализовать поиск по релевантности текста в новостях. Вот требование.

Таблица будет содержать текст новостей в столбце таблицы Oracle типа CLOB. В результате поиска будет извлечена новостная статья на основе релевантности введенного пользователем значения в порядке убывания. например Пользователь вводит текст поиска "турнир Большого шлема". Приложение вернет все новостные статьи, в которых есть одно или несколько из этих трех ключевых слов в следующем порядке:

  1. Все статьи с "турниром Большого шлема" в нем
  2. Все статьи, в которых есть "турнир Большого шлема" или "турнир шлема"
  3. Все статьи, в которых есть все 3 слова, но не смежные
  4. Все статьи, в которых есть любые 2 слова, но не смежные
  5. Все статьи, в которых есть хотя бы одно из этих слов

LIKE поиск будет медленным из-за большого объема данных и длинного текста

Может ли это быть реализовано с помощью функций поиска Oracle TEXT в Oracle 11g?

Ответы [ 3 ]

1 голос
/ 26 августа 2011

Это может быть несколько оффтопно, но в зависимости от вашей среды (и если вы не привязаны только к базе данных), мы обнаружили, что использование чего-то вроде сервера SOLR (или приложения lucene, такого как hibernate-search) работает лучше,лучшая релевантность и более настраиваемый, чем у большинства БД.

По моему опыту, мы получили mysql для этого, используя функцию полнотекстового поиска, но она никогда не работала так, как мы хотели.

0 голосов
/ 03 августа 2011

Посмотрите на следующий пример, и он объяснит, как искать, используя «Contains».


http://www.oracle -base.com / Articles / 9i / FullTextIndexingUsingOracleText9i.php

Этот документ также включает операторов, которые вы можете использовать в поиске содержимого. http://download.oracle.com/docs/cd/B28359_01/text.111/b28304/cqoper.htm#autoId8

0 голосов
/ 03 августа 2011

Хотя я не очень хорошо разбираюсь в оракуле, но, насколько мне известно, для текстового типа данных требуется использование ключевого слова, а текстовые типы данных должны быть проиндексированы, чтобы обеспечить улучшенную производительность поиска

См. oracle docs для использования нового полнотекстового поиска

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...