firebaseの検索機能/全データを取得など覚書/elasticsearchやalgoliaの全文検索もちょい調査した

おすすめのオンラインプログラミング学習

firestoreの覚書です。

elasticsearchやalgoliaについてもちょっと調べてみました。

firestoreのデータの追加/置換/更新(addとsetとupdateの違い)

  • addは追加。
  • setは追加・置換。
  • updateは特定のフィールドの更新。

サンプル。setとupdateを使うことが多い。.docは省略可だけど大抵入れます。

firebase.firestore.collection('Users').doc('userID').add({
  ID,
  name
})

firebase.firestore.collection('Users').doc('userID').set({
  ID,
  name
})

firebase.firestore.collection('Users').doc('userID').update({
  name, // 名前だけを更新
  text // テキストを追加
 })
スポンサーリンク

電子書籍のおすすめ比較

firebaseの全データを取得(vuexの場合)

vuexの場合。

const userRef = firebase.firestore().collection('users')

export const actions = {
  users({ commit }) {
    userRef
      .get()
      .then((snap) => {
        snap.forEach((doc) => {
          console.log(doc.id, '=>', doc.data())
        })
      })
      .catch((error) => {
        console.log(error)
      })
  }
}
スポンサーリンク

firestoreの検索(vuexの場合)

vuexの場合。クエリー検索する場合は検索条件をしてあげましょう。

const userRef = firebase.firestore().collection('users')

export const actions = {
  users({ commit }) {
    userRef
      .orderBy('names', 'desc')
      .get()
      .then((snap) => {
        console.log('snap')
      })
      .catch((error) => {
        console.log(error)
      })
  }
}

orderByの前後にいろいろと条件を追加すればいいだけですね。他にもstartAtなどいろいろとあるため条件を追加しましょう。

注意点はぐぐるとき、firebaseでぐぐると、firestoreもRTDBも両方のコードがひっかります。しかし、コードの書き方が違います。RTDBのコードは書き方が違うため、そのまま使えません。置き換え作業が必要です.

RTDBのコードのサンプル。

firebase
  .database()
  .ref(`${ref}`)
  .orderByChild('name')
  .limitToLast(50)
  .startAt(payload.keyword)
  .endAt(payload.keyword + '\uF8FF')
  .then((snapShot) => {
})

firebaseの全文検索はなし、検索機能は中途半端で使えず!?

このぐらいならできます。

Vue.js + Vuexでストアの絞り込み検索(フィルター)
LaravelでSPA(タスク管理アプリ)作る日記5回目です。今回はVuexのStateに対して絞り込み検索を実装します。

ただし、firebaseは全文検索はサポートしていないようです。

また、範囲指定を複数置く場合、問題が生じるようです。。試したところ、検索についてはあまりいい印象がありませんね。。

つまるところ、firebaseに公式サイトにもありますが、algoliaかelasticsearchかを使ってくださいということですかね。。

firebaseに加え、algoliaもelasticsearchも有料なので個人開発者を悩ませそうですね。。

スポンサーリンク

全文検索比較、elasticsearchやalgoliaはどうなの?

有料ですがelasticsearchやalgoliaなどの選択肢があります。

Elasticはオランダの会社で株も公開されている上場企業です。githubなどで採用に加え、pairs(←彼氏彼女がいない人はすぐにはじめられます。)などマッチングアプリやショッピングサイトでの採用実績があるようです。

algoliaはフランス発のサービスで、現在はアメリカのサンフランシスコに本社があります。爆速のようです。

少し調べたところ、algoliaの方が評判がよさそうなのですが、料金はElasticsearchなのですかね。。

Elasticsearchの評判です。

他にも海外から情報をとったところelasticsearchの方が安いと書かれたものがありました。

難しいところです。普段ならいいものをとりたいですが、ただ、サブスプリクションなので料金をとりますかね。。

なお、elasticsearchはクロスドメインやインデックス頻度により料金が変更されるため、個人では敷居が高いかもしれません。algoliaもmultiple domainsはライセンスが分けられているようです。non-commercial use(非商用利用)に限り無料枠があるようです。商用利用の場合は有料プランでないと使えません。

elasticsearchはudemyで日本語講座がでています。英語講座は、Complete Guide to Elasticsearchが人気でした。algoliaは英語講座だけのようです。algoliaの情報も困らない程度にはありそうですが、elasticsearchの方が情報量が多いため、学習コスト的にはelasticsearchの方がやや楽かもしれません。

udemyのオススメ講座はこちらにまとめました。

動画編集/プログラミング/資産運用などUdemyのおすすめコース
プログラミング、動画編集、資産運用などudemyのすべて実経験でおすすめコースをまとめていきます。Udemyは日本に来る前から愛用しています。 udemyはセールがあるため、とりあえず会員登録してお気に入りに登録しておくことがおすすめ...

参考になれば幸いです。

人気記事  安いオンラインプログラミングスクールおすすめ比較
  • 無料体験あり、オンライン完結あり
  • プログラミングスクールはオンラインで格安に!
  • 電子書籍並みの価格で買える動画学習サイトも一緒に紹介!初心者から上級者向け英語コンテンツまであり。ソースコードは言語関係なしに世界共通!
スポンサーリンク
おすすめのオンラインプログラミング学習
neruをフォローする
スポンサーリンク
ebookbrain

コメント

タイトルとURLをコピーしました