# algolia-cliでexportしたデータを置換して別のindexにimportする

# AlgoliaのClick Analyticsを有効化しています

AlgoliaのqueryID(どのクエリ?)で、何番目に表示されている、どのobjectIDがクリックされたのかをトラッキングするデバックをローカルで行っていました👇

Algolia

# クリックで遷移した先でエラーが発生している

TypeError: Cannot read property 'indexOf' of undefined というエラーがクリックで遷移した先で発生していました。

Error

デバッグをしたかったのですが…

  • ローカルの開発環境は localhost:8888
    • 8080だと会社のラップトップがブロックされてしまうのでconfig.jsで8888にしている
  • Algoliaのindexに入っているレコードのURLはhttps://www.yoshida.red〜
    • クリックの遷移先がローカルではない

ということで、ローカルでテストする用にindexを作ろうと思いました。

# algolia-cliを使ったexport

マイメンSepehrが作ってるalgolia-cliというツールがあるのですが、これを使ってチャチャっとやっていきます。

👇してやるだけなので、、

algolia export -a <algoliaAppId> -k <algoliaApiKey> -n <algoliaIndexName>

👇こんな感じでalgolia-index-〜っていうjsonファイルが落ちてきます。

$ algolia export -a <<App ID>> -k <<API KEY>> -n <<Index>>
Records browsed: 200
Done writing algolia-index-www.yoshida.red-1.json

Done exporting index.
See your data here: /Users/eijishinohara/xxx

そして、おじさんなら皆んな大好きsedで置換のお時間です。

sed 's/置換前/(置換後)/g'

こんな感じなので、

  • 置換前: https://www.yoshida.red
  • 置換後: http://localhost:8888

スラッシュはエスケープしてあげて👇こんな要領で。

$ sed 's/https:\/\/www.yoshida.red/http:\/\/localhost:8888/g' algolia-index-www.yoshida.red-1.json > local.json

# algolia-cliを使ったimport

👇これもデータ量が少なければ非常にお手軽(サイズ大きいとチャンクのサイズとか並列実行とかパラメーターに考慮が必要)

algolia export -a <algoliaAppId> -k <algoliaApiKey> -n <algoliaIndexName>

👇実際に流すとこんな感じ

$ algolia import -s local.json -a <<APP ID>> -k <<API KEY>> -n <<Index>>
Estimating data size...
Average record size: 5 Kb
Estimating network speed...
Download: 4.96 MB/s 
Upload: 3.67 MB/s
Calculating optimal batch size...
Optimal batch size: 367
Starting import...

Importing [local.json]

Done reading files

# Local用のインデックスを使って検証を進めていきます

vue-cliにもenvファイルを使った環境にやりくりする機構があるのですね。この辺を上手いこと使ってビルド時にやりくり出来ると良さそうだな〜

んま、とりあえずローカルでの問題再現とデバッグを進めていきます。

Local

このエントリーをはてなブックマークに追加

Algolia検索からの流入のみConversionボタン表示