2

、、、の3 つの列を持つMAH_KERESES_MVテーブルがあります。次の複数列のOracle Text索引を作成します。OBJEKTUM_NEVKERESES_SZOVEG_1KERESES_SZOVEG_2

exec ctx_ddl.create_preference( 'MAH_SEARCH', 'MULTI_COLUMN_DATASTORE');
exec ctx_ddl.set_attribute('MAH_SEARCH', 'COLUMNS', 'OBJEKTUM_NEV, KERESES_SZOVEG_1, KERESES_SZOVEG_2');

create index MAX_KERES_CTX on MAH_KERESES_MV(OBJEKTUM_NEV)
  indextype is ctxsys.context
  parameters ('DATASTORE MAH_SEARCH');

ただし、クエリは行を返しませんが、like演算子を使用してクエリを作成すると、期待どおりの結果が得られます。

SELECT  id, OBJEKTUM_NEV 
FROM MAH_KERESES_MV
WHERE CONTAINS(OBJEKTUM_NEV, 'C')>0;

誰かが助けてくれませんか?ティア、

タマス

4

1 に答える 1

0

後で誰かが興味を持つかもしれない場合に備えて、解決策は、上記のCONTAINS句がC文字をスタンドアロンエンティティ(つまり単語)としてフィルタリングすることでした。正しいwhere句は次のようになります。

WHERE CONTAINS(OBJEKTUM_NEV, 'C%')>0;
于 2011-12-05T22:19:10.093 に答える