Я использую Oracle 11g Text,Oracle 11g Текст: Composite Index Домен - FILTER BY на колоннах из разных таблиц
AuthorTable: (таблица подробно автора) AuthorID, AUTHORNAME, AuthorDOB
ArticleTable: (таблица для статьи контента) ArticleID, WrittenDate, PublishDate, ARTICLE_TXT (CLOB)
LocationTable: (таблица для размещения) LocationId, LocationState, LocationCity
ArticleAuthorAssocTable: (таблица для статьи авторов ассоциации) AuthorID, ArticleID
LocAuthorAssocTable: (таблица для Автор-Location Ассоциации) AuthorID, LocationId, LocationStartDate, LocationEndDate
В моем запросе необходимо выполнить поиск любого входного условия поиска по ARTICLE_TXT вместе с любым другим запросом в диапазоне PublishDate/WrittenDate/AuthorDOB/LocationCity/LocationStartDate.
Как я должен выполнить смешанный запрос, я начал создавать CDI с индексом составного домена на ArticleTable.
CREATE INDEX ARTICLE_TXT_CDI_IDX ON ArticleTable(ARTICLE_TXT)
INDEXTYPE IS ctxsys.CONTEXT
FILTER BY WrittenDate, PublishDate
и запрос в
SELECT
/*+ domain_index_sort domain_index_filter(ARTICLE_TXT_CDI_IDX) */ article.ARTICLE_TXT,
author.AuthorName , article.WrittenDate, article.PublishDate, LocationTable.LocationCity ,location.LocationStartDate, location.LocationEndDate
FROM
ArticleTable article
INNER JOIN
ArticleAuthorAssocTable articleAuthorAssoc ON article.articleId = articleAuthorAssoc .articleId
INNER JOIN
AuthorTable author ON author.authorId= articleAuthorAssoc.authorId
INNER JOIN
LocAuthorAssocTable locAuthorAssoc req ON author.authorId = locAuthorAssoc.authorId
INNER JOIN
LocationTable location ON location .authorId = locAuthorAssoc.authorId
WHERE
CONTAINS(article.ARTICLE_TXT, 'Something') >0
AND author.AuthorDOB BETWEEN TO_DATE('01/01/2001','MM/DD/YYYY')
AND TO_DATE('12/31/2012','MM/DD/YYYY')
AND location.LocationId IN (1,2)
Теперь мои вопросы:
- Можно ли создать индекс домена Composite с FILTER BY на столбцов из разных таблиц?
- Есть ли другой способ улучшить вышеуказанный запрос?
Из моих исследований, некоторые варианты с использованием материализованных представлений, функции на основе индекса, USER_DATASTORE
Но, к сожалению, до сих пор не знаете, как использовать их ... Пожалуйста, помогите мне с вашего ведома.
Благодаря