2011-03-27 196 views
1

我有一張名爲book的表格,其中有列號ISBN,標題和說明。我一直在試圖使用命令此表創建一個倒排索引:如何使用Oracle在表格上創建倒排索引

CREATE INDEX myindex ON book(description) INDEXTYPE IS CTXSYS.CONTEXT; 

,我一直試圖與下面的查詢進行查詢:

SELECT score(1), title 
    FROM book b 
    WHERE CONTAINS(b.description, 'Huckleberry Finn', 1) > 0 
ORDER BY score(1) DESC; 

每當我運行此查詢,然而,沒有行即使查詢選擇

SELECT title, description 
    FROM book 
WHERE description = 'Huckleberry Finn'; 

回報:

Title   description 
------------------------------------ 
'Huckleberry' 'Huckleberry Finn' 

我不確定我的查詢出了什麼問題,這是我第一次嘗試創建一個倒排索引,所以如果有人能告訴我我的查詢有什麼問題或另一種方法來做到這一點,我真的很感激。

回答

7

你是否同步了你的索引? 在較新的版本中,您可以構建您的索引,以便在提交時進行更新。否則,您可能依靠手動同步操作。

不要認爲在事務中獲取同步索引是可能的。

create index search_idx 
    on ctx_demo (text) 
    indextype is ctxsys.context 
    parameters ('sync (on commit)') 
/
+1

Oracle開始支持那個版本? – 2011-03-27 23:40:35

+0

非常感謝!工作! – Jennifer 2011-03-27 23:51:11