2012-02-10 11 views
2

キーワードのデータを解析する際に誰かが私を助けてくれるのだろうかと思います。データを効率的に解析する方法

は、私は、このキーワードを探していますと言う:My Example Yo(これは多くのキーワードの一つである)

私はこれがわずか数の組み合わせである。この

MY EXAMPLE YO #108 
my-example-yo #108 
my-example #108 
MY Example #108 

のようなデータを持っています。言葉や数字がこれらの文章の前にある可能性がありますが、場合によっては、上記の例が何かの後に来るようなものが何も来ないかもしれません。

いくつかのアイデアが気になりました。

  1. 店は私ができる私のデータベースは、その後、使用中の可能思うが

これと欠点が含まれているすべての組み合わせは、私が見つけるために必要なすべてのもののすべての組み合わせで、巨大なデータベーステーブルを行っています。私は(nhibernateとすべての組み合わせをチェックして)メモリにデータをロードする必要があります。キーワードに基づいてどのカテゴリを使用するかを判断しようとしています。確認するために何千もの行をアップロードできます。

サブセットを読み込んで見ても、私はまだこれが遅くなることを示しています。

  1. すべての特殊文字を削除して1つの空白を作成し、大文字と小文字を無視して正規表現を使用して、一致するキーワードの量を確認してください。

キーワードにダッシュなどの特殊文字が含まれている場合はどうすればよいかわかりません。

私はそこにすべての組み合わせを取得しないことを知っているが、私はできるだけ多くを取得しようとしたい。

+0

解析しているデータはどのように保存されていますか?これは、フラットファイル、データベース、C#アプリケーションのいくつかの構造体、または何か他の場所に格納されていますか? –

+0

私が保存しているデータは、後でfilehelperを通してdatatableに変換されるcsvファイルから来ています。次に、私が期待している列がないかどうかを確認します。私はこの情報を得ることができる潜在的な列を見つけようとしています(これは通常私が見たファイルから記述フィールドです)、それが私が解析しようとしているものです。キーワードは、nhibernateが取得するmssqlデータベースに格納されます。 – chobo2

+0

@ chobo2これには 'grep'ユーティリティを使うことができます。 – ElKamina

答えて

1

Lucene.Netとお考えですか?私は自分で使ったことはありませんが、フルテキスト検索のための素晴らしいツールだと思います。キーワード検索もうまくいくかもしれません。私はそれがstackoverflow uses Luceneと信じています。

+0

私はそれを調べます。インデックスを使用しているようですが、私は不思議です。キーワードを持つテーブルはおそらくguidになり、varchar()はこれに関するインデックスのヘルプになりますか?私はインデックスをあまり使用していないので、多くのことを知らない。 – chobo2