2017-05-16 3 views
0

ATG-Endecaアプリケーション用のギリシャ語、英語データが混在した索引があります。インデックス付きギリシャ語データにはアクセント付きの単語があります。検索語にアクセントがない場合、それらはいずれのデータとも一致しない(または、アクセント付きの文字にアクセントを付けずに文字に起こる自動取り込みのため一致し、これは望ましい機能ではない)。 Dgidxフラグ - 二重折り畳み構成には、ギリシャ文字のマッピング(https://docs.oracle.com/cd/E29584_01/webhelp/mdex_basicDev/src/rbdv_chars_mapping.html)は含まれません。Endecaの発音区別フォールディングマッピングを拡張する

このoob機能を拡張することは可能ですか?Endecaサイドまたは核またはコードのプロパティファイルと思われますか?あなたが提供するドキュメントで

答えて

1

それは述べて:

Dgidxは、索引付け時に、その単純なASCII同等にマッピングLatin1の、ラテン拡張A、およびWindows CP1252国際文字をサポートしています。

これは、これらの文字セットに該当しないため、ギリシャ語はサポートされていないことを示しています(ギリシャ語はLatin-7と思われます)。つまり、各言語に独自のレコードがあると仮定して、またはdgidxdgraphパラメータを使用してグローバル言語を実装しようとすると、レコードレベルで言語フラグを設定することができます(ただし、データに英語とギリシャ語の両方が含まれていることを示します)。グローバル言語ではないレコードやプロパティのステミングなどに影響します。

dgidx --lang el 
dgraph --lang el 

元の文に基づいて動作するかどうかはわかりませんが、

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

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

+0

こんにちはRadimpe。ご回答有難うございます。ギリシャ語のoobはOLTですが、先読みとワイルドカードが必要なので、Latin-1を使用します。 –

+1

この場合、インデックスの入力データを正規化し、それを先行入力に渡す前にオンザフライで正規化すると、肯定的な結果が得られる可能性があります。 – radimpe

+0

先送り用のフォームハンドラーでは、発音区別符号のいずれかを字下げし、ProductCatalogIndexingAdminにサービスを追加してEndecaデータにも同様の処理を行いました。魅力のように動作します。 – bated

関連する問題