【问题标题】:How to create an Inverted Index on a table using Oracle如何使用 Oracle 在表上创建倒排索引
【发布时间】:2011-07-24 01:46:24
【问题描述】:

我有一个名为 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'

我不确定我的查询有什么问题,这是我第一次尝试创建倒排索引,所以如果有人能告诉我我的查询有什么问题或其他方法,我真的很感激。

【问题讨论】:

    标签: sql oracle full-text-search indexing


    【解决方案1】:

    您是否已同步您的索引? 在较新的版本中,您可以构建索引,以便在提交时对其进行更新。否则,您可能会依赖手动同步操作。

    不要认为在事务中同步索引是可能的。

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

    【讨论】:

    • Oracle 开始支持的版本是什么?
    猜你喜欢
    • 2017-02-12
    • 1970-01-01
    • 2014-12-03
    • 2011-10-23
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 2010-12-06
    • 2021-04-05
    相关资源
    最近更新 更多