1

私は単純な検索エンジンを実装しています.JSONとしてテキストファイルに保存されたすべてのデータ。私の実装シナリオは、「ロック」メソッドのような単語を検索すると、「ロック」値を含むタグ ID のリストとして結果が返されるはずです。値による. これは私のサンプル JSON 配列です..

ここに画像の説明を入力

テストワード : rock 予想結果 : 991335,991336,991337

4

1 に答える 1

2

Json.net などの JSON ライブラリを使用することをお勧めします。

ファイル全体の読み取りを許可できる場合は、linq を使用すると非常に簡単です。

class TrackElement {
    public Track Track {get;set;}
}
class Track {
    public string track_id{get;set;}
    public string track_name{get;set;}
    public string track_category{get;set;}
}

ファイルを読み取り、逆シリアル化し、検索します。

var data = File.ReadAlltext("path/to/your/file.txt");
List<TrackElement> database = JsonConvert.DeserializeObject<List<TrackElement>>(data);

var results = database.Where(i=>i.Track.track_category.ToLower().Contains("rock")).Select(t=>t.Track.track_id);

データベースが非常に大きい場合、すべてのものをメモリに読み込むべきではありません。この場合、ストリーム解析 (トークンごと) を使用して、ファイルを直接読み取ることができます。これには、Json.net lib の JsonReader クラスを使用できます。( http://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_JsonReader.htm )

于 2015-11-19T12:43:04.060 に答える