1 sql oracle indexing full-text-search
我有一个名为book的表,其中包含ISBN,Title和Description列.我一直在尝试使用以下命令在此表上创建倒排索引:
CREATE INDEX myindex ON book(description) INDEXTYPE IS CTXSYS.CONTEXT;
Run Code Online (Sandbox Code Playgroud)
我一直试图用下面的查询来查询它:
SELECT score(1), title
FROM book b
WHERE CONTAINS(b.description, 'Huckleberry Finn', 1) > 0
ORDER BY score(1) DESC;
Run Code Online (Sandbox Code Playgroud)
每当我运行此查询时,即使查询也没有选择任何行
SELECT title, description
FROM book
WHERE description = 'Huckleberry Finn';
Run Code Online (Sandbox Code Playgroud)
收益:
Title description
------------------------------------
'Huckleberry' 'Huckleberry Finn'
Run Code Online (Sandbox Code Playgroud)
我不确定我的查询有什么问题,这是我第一次尝试创建一个倒置索引,所以如果有人能告诉我我的查询有什么问题或其他方法,我会真的欣赏它.
你有同步你的索引吗?在较新的版本中,您可以构造索引,以便在提交时更新它.否则,您可能依赖于手动同步操作.
不要认为可以在事务中使索引同步.
create index search_idx
on ctx_demo (text)
indextype is ctxsys.context
parameters ('sync (on commit)')
/
Run Code Online (Sandbox Code Playgroud)