sql >> データベース >  >> RDS >> Oracle

'%abc%'検索のテキストインデックスを作成するにはどうすればよいですか?

    私はこれを使用します(値を適切にするために最小長と最大長を設定します)

    BEGIN
        ctx_ddl.create_preference  ('FT_WL', 'BASIC_WORDLIST');
        ctx_ddl.set_attribute      ('FT_WL', 'substring_index',   'YES');
        ctx_ddl.set_attribute      ('FT_WL', 'prefix_index',      'YES');
        ctx_ddl.set_attribute      ('FT_WL', 'prefix_min_length', 1);
        ctx_ddl.set_attribute      ('FT_WL', 'prefix_max_length', 6);
      END;
    
    CREATE INDEX fulltext_idx ON tmp_fulltext (fulltext)
     INDEXTYPE IS CTXSYS.CTXCAT
     PARAMETERS ('WORDLIST FT_WL')
    

    パラメータについては、ここで説明されています Oracle Text Reference

    更新を管理する方法と、カーディナリティの高いデータを使用したフルスキャンよりもインデックスの速度が速くない可能性がある方法については、次の質問を参照してください。

    PL / SQL Performance Tuning for LIKE'% ...%'ワイルドカードクエリ



    1. マッピングファイルのHibernate'Inverse'

    2. MySQLで、1つの行をコピーして同じテーブルに挿入できますか?

    3. Oracle SQL Developerでrefcursorの結果/出力を確認するにはどうすればよいですか?

    4. SQLite JSON_REMOVE()