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

Endecaの発音区別符号の折りたたみマッピングを拡張する

    提供するドキュメントには、次のように記載されています。

    これは、ギリシャ語がこれらの文字セットのいずれにも該当しないため、サポートされていないことを示しています(ギリシャ語はラテン語-7であると思います)。とはいえ、各言語に独自のレコードがあると想定して、レコードレベルで言語フラグを設定してみるか(データに英語とギリシャ語の両方が含まれていることを示しているため)、dgidx およびdgraph パラメータですが、これは、グローバル言語以外のレコードやプロパティのステミングなどに影響します。

    dgidx --lang el
    dgraph --lang el
    

    元のステートメントに基づいて機能するかどうかはわかりませんが。

    または、カスタムの Accessor を使用して、発音区別符号の削除プロセスを実装することもできます。 、 atg.repository.search.indexing.PropertyAccessorImplを拡張します クラス( Nucleusを参照するためのオプション 、したがって、ATG / Oracle Commerceを使用していると思います)。これを使用して、現在のインデックスの検索可能フィールドを複製するが、すべての発音区別符号が削除された、インデックス内の正規化された検索可能フィールドを指定します。 アクセサで適用するのと同じロジック 次に、入力を正規化してインデックス付きの値に一致させるように、検索語のプリプロセッサとして適用する必要があります。最後に、インデックス内の元のフィールド(強調文字を含む)を表示専用にし、正規化されたフィールドを検索可能にします(ただし、表示しないでください)。

    結果は正規化されたテキストと一致しますが、欠点はデータが重複しているため、インデックスが大きくなることです。小さなデータセットでは大きな問題ではありません。また、ステミングなどのOOTB機能が、正規化されたデータセットでどのように動作するかに影響を与える可能性があります。適合率と再現率が悪影響を受けるかどうかを確認するには、ギリシャ語と英語のさまざまなシナリオでいくつかのテストを行う必要があります。




    1. 2つの列の間でフィルタリングするクエリにインデックスを使用する方法

    2. DISTINCT <>GROUPBYの場合

    3. mysqlでSQL結合を使用する方法

    4. Rails 4:MySqlとMongoDBを一緒に使用する