3

postgresqlで最長共通部分列関数が必要です。通常のインストールは機能しません。plpgsqlでコードを書きましたが、動作が遅くなります。そのような機能を備えたpostgres用のアドオン(または何か)はありますか?

編集:2つの文字列を比較する必要がありますが、=演算子を使用しないでください。たとえば、abcbaを検索する必要がある場合、結果はadbcbdacになります。このために、LCS(文字列ではなく最長の共通サブシーケンス)を実装したいと思います

編集:fuzzystrmatchと呼ばれるpostgreの拡張機能を見つけましたが、最大255バイトのテキストに対してのみ機能します。誰かがその拡張機能の類似物を知っていますか?

4

1 に答える 1

1

Erwin、Craig、および Deer Hunter の意見に同意しますが、どのような比較を行っているかを教えていただければ、より多くの情報を提供していただけますか? テキスト ファイルを比較し、行全体を比較するだけで十分だと仮定しましょう。次に、最短ファイルの行と最長ファイルの行を比較できますか。比較には 3 つの可能性があります: 1. ファイル A の行がファイル B のどの行とも一致しない 2. ファイル A の行がファイル B の行と一致する 3. ファイル A の行が一致し、両方が一致する行は前の一致に連続しています。状況 1 の場合は、開いているオブジェクトをすべて閉じます。開いているオブジェクトが存在する場合は、それを配列に追加します。状況 2 で、開いているオブジェクトがない場合は、新しいオブジェクトを作成します。開いているオブジェクトがある場合、それは状況番号 3 である必要があるため、開いているオブジェクトに行 (または行番号) を追加します。

ただし、この種の操作は、plpgsql という別の言語で実行します。私の場合、それはJavaまたはPHPになります。データをこのタイプの言語に変換して、仕事をするだけです。これらの言語は、この種のアクションに対してはるかに優れています。

于 2012-10-11T09:56:00.350 に答える