1

Java Web アプリケーションで、「Oracle Text」を使用して複数のテーブル (異なる列) を検索する「グローバル検索」テキスト ボックスを配置したいですか?

例えば

テーブル 生徒 {name}

テーブルティーチャー {name}

テーブル部門{名前、説明}

表の件名{名前、タイトル}

ここで私がやりたいことは、ユーザーが「Chem」と入力すると、この単語が Student:name、Teacher:name、Department:name、Department:description、Subject:name、Subject:title 列に対して検索され、ソートされることです。 Oracle Textスコアによる結果

これを達成するための最良の方法を誰にもアドバイスできますか? 「Contains」オラクルテキスト関数を使用して、単一のクエリで複数のテーブルにわたってこれらすべての列を検索する方法がわかりませんか?

また、テーブル間に関係はないと仮定してください。前もって感謝します!

4

3 に答える 3

0

ユーザー・データストアを使用すると、複数の表を1つの仮想ドキュメントに結合して、Oracle Textが索引付けおよび検索に使用できます。これにより、複数のテーブルを検索する 1 つの contains 句を使用できます。ユーザー データストアを作成するときは、インデックスを作成する各テーブルの列を定義します。

于 2014-06-06T11:47:01.523 に答える
0

次のようなことができます。

with search_fields as (
    select 'student' as table,
           'name' as field,
           name as text
       from student
    union all 
    select 'teacher' as table,
           'name'    as field,
           name as text
       from student 
    union all
    ...
)
select * from search_fields where text contains ...

何らかの方法で元のテーブルにリンクする必要がある場合は、これに追加する必要があります。

于 2013-02-20T12:17:16.393 に答える
0

テーブルからビューを作成し、そこから選択します。

 SELECT * FROM your_view WHERE UPPER(name) Like Upper('Chem%'); -- or '%Chem%'
于 2013-02-20T14:00:44.770 に答える