をAlgoliaで使用するには、objectID
を知る必要があります。 SourceAlgoliaでオブジェクトIDの代わりに特定のキーを使用するJSONオブジェクト
しかし、私の状況では、私は直接objectID
のバットを知りません。私は説明しましょう...
私は、アーティストが音楽を提出できる音楽サイトを持っています。このJSONは、歌情報でいっぱいになり、Algoliaのインデックスに格納されます。今、アーティストはプロフィールを更新することもできます(アーティスト名を変更するなど)。私は2つの別々の指標を持っています。 1つはSong
と呼ばれ、すべての曲情報を含み、Artist
にはアーティスト情報が含まれています。アーティストがプロフィールを編集してアーティスト名を変更すると、この変更を彼のArtist
アカウントのJSONと彼がアップロードしたすべての曲に反映させようとしています。 JSONが曲面で更新されなかった場合でも、以前の名前が表示されます。ここで
{
"AccountInfoID": 94,
"AccountType": "Artist",
"DisplayName": "Unlike Pluto",
"ImageURL": "https://ucarecdn.com/81abba2d-7966-48ac-abab-79a2ecc97811/",
"UserID": "",
"objectID": "94"
}
Song
JSONは次のようになります。ここでは
はArtist
JSONは次のようになります。また、2つのjsonファイル間の1つの定数がAccountInfoID
であることに注意してください。これはアーティストに曲をリンクします。この場合はPlutoとは異なります。 Song
のobjectID
は異なります。そして、私は別の曲をアップロードした場合、以下のすべての値がAccountInfoID
除く異なるだろう(ただ明確にする):しかし
dynamic registerArtistObjs = new JObject();
registerArtistObjs.DisplayName = accountInfo.DisplayName;
registerArtistObjs.ImageURL = accountInfo.ImageURL;
registerArtistObjs.objectID = accountInfo.AccountInfoID;
var artistIndexHelper = HttpContext.Application.Get("ArtistIndexHelper") as IndexHelper<ArtistAlgoliaModel>;
artistIndexHelper.PartialUpdateObject(registerArtistObjs);
:
{
"ApprovalFL": true,
"FreeFL": true,
"LicenseFL": true,
"AccountInfoID": 94,
"AlbumID": 117,
"SongID": 105,
"BPM": 92,
"AccountImageURL": "https://ucarecdn.com/81abba2d-7966-48ac-abab-79a2ecc97811/",
"AccountType": "Artist",
"AlbumName": "Let It Bleed",
"Artist": "Unlike Pluto",
"FeaturedArtist": "Cristina Gatti",
"ImageURL": "https://ucarecdn.com/d60c9302-eacf-4050-920d-9d54ce93cd46/",
"iTunesURL": null,
"LabelName": "Lowly Palace",
"Title": "Let It Bleed",
"URL": "https://ucarecdn.com/b75e6e30-7082-49e5-b5d5-93d23e74af21/",
"UserID": "",
"UploadDate": "2017-12-16T01:55:22.81",
"Duration": "2017-12-16T00:03:20",
"objectID": "105"
}
アーティストJSONを更新するには、それは大したことありません、私はそのアーティストによってアップロードされたすべての曲を見つけることができるようにする必要があるので、曲の更新は厄介です。上記のように、私はobjectID
と更新Artist
を得ることができるように、すべての曲をAccountInfoID: 94
で見つける必要があります。それを行うための最善のアプローチは何ですか?あるいは私が紛失しているより簡単な方法はありますか?
ここで私は歌のインデックスにアーティスト名を更新するためのコードとによどこだが、私には、例えば、含まれているソングインデックス、AccountInfo: 94
からすべてのobjectID
の値を取得する方法について見当もつかない:
dynamic registerSongObjs = new JObject();
registerSongObjs.Artist = accountInfo.DisplayName;
registerSongObjs.objectID = ??????????Possibly Multiple values?????????
var songIndexHelper = HttpContext.Application.Get("SongIndexHelper") as IndexHelper<SongAlgoliaModel>;
songIndexHelper.PartialUpdateObject(registerSongObjs);
@mjwills: –