問題タブ [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.
oracle - Oracle テキスト: スコア関数の奇妙な動作
ドイツ語の姓「Warsoenke」に奇妙な振る舞いがあります。
これをチェックしてください:
出力は次のとおりです。
理由がわかりませんか?「Warsoe」または「War」と入力すると、スコア 2 が返されます。「Warsoen」と入力すると、私が理解しているように機能し、1 が返されます。
使用しない場合definescore
、同じ方向に機能し、異なる数字 (27 と 13) が表示されます。
他の姓の場合、完全かつ明確に機能します。でもこいつには…
これはドイツ語のデータベース設定、例えば "War so e..." によるものだと推測しましたが、この考えは非常に奇妙で、なぜ "Warsoen" が機能するのかはまだ明らかではありません。
何か案は?
編集
上記のように機能しない姓がはるかに多いことがわかりました。そして、私はまだこれについて可能な説明を見ていません...
ruby-on-rails - オラクルの強化された宝石:belongs_toを使用したテキストインデックス
Rails gem oracle-enhanced のドキュメントで、これが複数のテーブルにインデックスを作成することを発見しました:
これは、投稿に多くのコメントがある場合に機能します。しかし、投稿に 1 つのコメント (belongs_to) しかない場合、これをどのように記述すればよいでしょうか? または、has_many トラフ関係はどうですか?
ご協力いただきありがとうございます。
-e- 私がしたことを試すためだけに
そして、この例外を得ました:
sql - セパレータ付きのOracle Textの内容と数字
Oracle Text の全文検索機能を容易にするために、1 つの列で ctxsys.context 索引を使用しています。しかし、',' または '.' で区切られた数値をインデックス化するときに問題が発生します。
次のようなインデックスを作成しました。
次に、4 つのテキスト ドキュメントを挿入します。
ここで、contains 演算子を使用して、「FOO 300 BAR」、「1,000.00」、および両方の組み合わせを検索したいと思います。
最初のものは期待どおりに機能し、結果として id 1 と 2 の両方を取得します。1,000.00 を使用しようとすると、結果として 0 行が得られます。
ドキュメントから読んだように、デフォルトとして BASIC_LEXER を使用しています。また、レクサーでセパレーターを明示的に指定して、それをインデックスに適用しようとしました。
しかし、私は以前と同じ行動を経験しました。
Oracle Textがセパレータ付きの数字をどのように処理するか、および区切られた数字が単一の単語として扱われるように索引を構成する方法を説明してもらえますか?
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production を使用しています
sql - 数百のキーワードに対するOracle Text問合せ
Oracle Text は素晴らしいです。しかし今では、別のテーブル (table_keywords としましょう) に保存されている 100 を超える単語をクエリする必要があります。すべてのキーワードをクエリに書き込まずにそれを行う方法を知っている人はいますか?
それ以外の
行う
です。そのようなことは可能ですか?
どうもありがとう!
sql - 大文字と小文字を区別しないインデックスで大文字と小文字を区別して検索する方法
別のテーブルに格納されている 100 を超える単語 (大文字と小文字を区別しない) をクエリする必要があります。
これはうまくいきます。しかし、大文字と小文字を区別して照会する必要があるキーワードが 1 つあります。
大文字と小文字を区別するインデックスを作成せずにそのキーワードを個別にクエリする方法を誰かが知っていますか? 「us」などのキーワードを無視して、大文字のキーワード (「US」) のみを使用してインデックスを作成することは可能でしょうか。
ストップワードに「us」を追加して試してみましたが、うまくいきませんでした。
oracle - Oracle で LIKE を含む構造化述語を使用してヒットをカウントすると、間違った結果が返される
Oracle Text を使用して、「AIX」で始まり、部分文字列「XYZ」を含む OS 名を検索するクエリを実行しようとしています。このクエリの定式化では、結果が 0 になりますが、別の部分に分割すると明らかに結果が得られます。
これは 0 件の結果を返します。
しかし、不思議なことに、次のように変更すると:
結果を返しますが、もちろん AIX 6.1.0.0 に関連するものだけです...
私はOracle 11g2を使用しています。
ORACLE TEXT パッケージにバグがある可能性はありますか?
2 つの INTERSECT クエリに分割して結果の COUNT(*) を実行できると思いますが、それは問題を複雑にし、長時間実行されるようです...単純な「AND」形式を使用したいと思います....もし可能なら...
これは機能しますが、長時間実行され、不必要に複雑です。
また、元のクエリで EXPLAIN を実行しようとすると、クエリの「LIKE」部分がまったく実行されていないように見えることにも注意してください...! これはかなり奇妙です:
Oracle Database 11g Enterprise Edition リリース 11.2.0.3.0 - 64 ビット。NLS_COMP 値は BINARY、NLS_SORT 値はヌルです。テーブルは 1 回だけ読み込まれるため、インデックスの同期には問題ありません。
oracle - Oracleは定義済みのインデックスを使用していません
以下に示すように、テーブル A と B の間に単純な結合があります。さらに、各テーブルには Or 演算子と組み合わせた条件があります。
ProductId には B ツリー インデックスが定義され、KeyWords には関数インデックスがあります。しかし、私の実行計画がこれらのインデックスを使用せず、テーブル アクセスをフルに実行する理由がわかりません。私がこのURL で見つけたように、NO_EXPAND 最適化のヒントは、実行計画でインデックスを使用する可能性があります (NO_EXPAND ヒントは、コストベースのオプティマイザーが、OR 条件または WHERE 句の IN リストを持つクエリの OR 拡張を考慮しないようにします)。しかし、定義されたインデックスの使用は見られませんでした
私のクエリでオラクルの問題は何ですか?!
sql - Oracle CONTAINS() が数値の結果を返さない
したがって、全文インデックス付きの列「値」を含むこのテーブルがあります。フィールドにはいくつかの数値文字列が含まれており、次のようなクエリを使用すると正しく返されます。
問題は、このテーブルに多くの行があるため信じられないほど遅いことですが、CONTAINS 演算子を使用すると結果が得られません。
誰でも何か考えがありますか?
残念ながら、私は Oracle の専門家ではなく、同じクエリが SQL Server でも問題なく機能します。変更できるOracle Lexerのストップリストか何かに違いないと思いますが、どうすればよいかわかりません。