我有一个名为book的表,其中包含ISBN,Title和Description列。我一直在尝试使用以下命令在此表上创建倒排索引:
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'
我不确定我的查询有什么问题,这是我第一次尝试创建倒排索引,所以如果有人能告诉我查询的错误或其他方法,我真的很感激。
答案 0 :(得分:7)
你有同步你的索引吗? 在较新的版本中,您可以构造索引,以便在提交时更新它。否则,您可能依赖于手动同步操作。
不要认为可以在事务中同步索引。
create index search_idx
on ctx_demo (text)
indextype is ctxsys.context
parameters ('sync (on commit)')
/