問題タブ [oracle-text]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
51722 参照

oracle - Oracle は全文検索をサポートしていますか?

MS SQL の全文検索サービスに相当する Oracle はありますか?

もしそうなら、誰かがそれを実装し、良い/悪い経験をしましたか?

0 投票する
3 に答える
4551 参照

oracle - Oracle Text: ユーザー入力をサニタイズする方法

誰かが Oracle テキスト ( CTXSYS.CONTEXT) を使用した経験がある場合、ユーザーがアポストロフィを含む可能性のある名前を検索したい場合にユーザー入力を処理する方法を知りたいです。

' のエスケープは場合によっては機能するようですが、単語の末尾の 's では機能しません。s はストップ ワードのリストに含まれているため、削除されるようです。

現在、単純なクエリ テキスト (つまり、単なる文字) を%text%に変更しています。たとえば、次のようになります。

O'Neilの検索は機能しますが、Joe の検索は機能しません。

Oracle Text を使用してこの問題に対処した人はいますか?

0 投票する
1 に答える
7248 参照

oracle - Oracle表の複数の列の値に索引を付けるようにOracle Textを設定します

プロパティの所有者に関する情報を記述した一連の Oracle テーブルがあります。所有者名とその他のテキスト値は、所有者ごとに複数の関連テーブルの複数のフィールドに格納されます。これらのフィールドの内容に索引を付けたいと思います。私の目標は、ユーザーが所有者を見つけるためにキーワードを入力できる単一のフィールドを提供することです。

これを実現するためにOracle Textを設定するにはどうすればよいですか?

0 投票する
2 に答える
5281 参照

sql - Oracle は、contains キーワードを使用してすべての行を選択します

すべての結果を取得するために Oracle で使用できる文字を探しています。

タイトル列で文字列「test」を検索する場合、次のステートメントを使用します。

このステートメントを使用すると、タイトル列に「テスト」文字列が含まれる行が取得されます。

BUT:contains を使用してすべての行を選択する方法はありますか?

0 投票する
3 に答える
31198 参照

oracle - Oracle Textインデックスを同期および最適化する方法は?

ctxsys.context全文検索にはインデックスタイプを使用したいと思います。しかし、このタイプのインデックスが自動的に更新されないことに非常に驚いていました。1日あたり約1万件の更新/挿入/削除を含む300万件のドキュメントがあります。

OracleTextインデックスの同期と最適化に関する推奨事項は何ですか。

0 投票する
2 に答える
16781 参照

oracle - Oracle の CONTAINS 演算子で text_query の約 4000 文字の制限を取得するにはどうすればよいですか?

Oracle では、 Contains 演算子の全文検索構文は次のとおりです。

つまり、text_query の長さは 4000 文字を超えることはできません。そうしないと、エラーが発生します。多くの場合、4000 文字を超える text_query を繰り返し使用しています。オラクルの専門家として、可能であればそのような制限をどのように回避することをお勧めしますか?

簡単に 4000 に到達する状況をさらに明確にするために、多数の Contains クエリ演算子を組み合わせて text_query を構築すると、そのような 4000 文字の制限を超える可能性が十分にあります。

0 投票する
2 に答える
621 参照

oracle - 範囲のOracleテキスト検索

OracleTextで数値範囲を検索するためのより良い方法を探しています。私は多くのGISタイプのことを行うDBアプリを持っていますが、今度はそれにストリートレンジ検索を追加したいと思います。

そこで、最小値と最大値を列に格納し、それらの値内の数値を検索したいと思います。私はオプションを探求することに満足していますが、どこに向かうべきかについてのいくつかの指針が欲しいです。誰かが私に何か提案がありますか?

編集:住所検索を簡単にしようとしているだけです。住所部分のテキストは大成功を収めていますが、個々の家番号ではなく、番地を保存したいと考えています。したがって、「11 high street」を検索した場合、ハイストリートの範囲が1〜1000であれば一致するはずです。また、「flat 1 11highstreet」を検索した場合に使用できるオプションもいくつかあります。 「でも。このような場合は、入力を少し調整する必要があると思います。どのようなツールを使用して試してみることができるかを知りたいだけです。

0 投票する
1 に答える
1914 参照

oracle - 単一インデックスでの Oracle テキストのスケジュール同期

Oracle テキスト インデックスを同期する必要があります。しかし、ジョブは作成に失敗します:

または実行するには:

しかし、これらの作品のいずれかを実行すると:

正しい構文のアイデアはありますか?

ありがとうございました。

PD: 検索してみましたが、私の要件に合わない唯一の答えが見つかりました。また、私の英語についてお詫び申し上げます。

0 投票する
0 に答える
1043 参照

oracle - Oracle Text を使用した結合で複数のテーブルを検索

(注: この質問はServerFault からクロスポストされています。)

Oracle 10g データベースの複数のテーブルで Oracle テキスト検索を実行する必要があります。テーブルの構造は次のとおりです。

Table1 は、SubTable1 と Subtable2 の両方に対して 1 対 n の関係を持っています。

実行時に、クライアント アプリケーションは、3 つのテーブルを検索するための検索語を提供します。検索語を含むいずれかのテーブルのレコードのみを結合して、クライアント アプリケーションに返す必要があります。

シナリオ(簡略化した例)

Table1 のレコードに SubTable1 の 10 のレコードがあり、10 のうち 4 つだけに検索語が含まれている場合、4 つの行だけがクライアント アプリケーションに返されます。同じことが SubTable2 にも当てはまります。

質問

contains最小限の変更で、理想的にはすべてのテーブルで 1 回の検索だけでこれを行う方法はありますか? それともcontains、テーブルごとに 1 つ指定する必要がありますか?

追記事項

  • これに従って、 Table1 にダミーのテキスト インデックス列を作成してみましたUser_Datastore。ストアド プロシージャを使用して、すべてのテーブルからすべての関連データを取得し、XML 形式でフォーマットします。SubTable1 (シナリオで説明) の 10 レコードすべてが代わりに返されるため、これは機能しません。Table1 の行は検索語に一致し、Subtable1 の 10 行すべてと結合します。
0 投票する
1 に答える
386 参照

oracle - Oracle テキスト インデックス (コンテキスト) が増加し続ける

私のアプリケーションでは、さまざまなテーブルから多くの varchar 列を検索する必要がありました。

そのため、これらの列を連結するマテリアライズド ビューを作成しました。これらの列は 4000 文字を超えているため、列を TO_CLOBS(column1) || で連結してマージしました。TO_CLOB(列)... || TO_CLOB(列N)。

クエリは複雑であるため、ビューの要求に応じて更新が完了します。2分ごとに更新します。

CONTEXT インデックスは、sync on commit パラメータを使用して作成されます。

その後、インデックスは 2 分ごとに同期されます。

しかし、最適化インデックスを実行すると、インデックスは最適化されません。だから成長し続ける。

ctx_user_indexes では、最適化によって docid カウントが削除されますが、トークンは縮小されません。しかし、インデックスの最適化で REBUILD パラメータを使用すると、正しく機能します (DR$TEXT_INDEX_IDX$I の行数をドロップします)。

何か案が ?

ありがとう、そして私の下手な英語でごめんなさい。