# 複数カラムに対し OR 条件で検索の実現方法 ## 概要 User が持つデータに対し、キー......

複数カラムに対し OR 条件で検索の実現方法

概要

User が持つデータに対し、キーワード検索ができる機能を実装したいと思っています。
User は名前、性別、出身、一言のカラムを持っています。
検索の要件は、

  1. 全てのカラムに対し、 OR 条件で検索
  2. 複数キーワードの場合、キーワードごとに AND 条件で検索
    (Adaloでは 要件2 は満たせないかもと思っています。)

要件を満たす実現方法を知りたいです!

やったこと

Adalo の検索バーで、いろいろ実験してみました。

実験1

Custom Filter を複数カラムに対して
名前 Contains Search term
性別 Contains Search term
と複数設定をしました

(画像は別モデルに対する実装)

この場合、複数カラムに対し、 AND 条件となってしまったため、実験失敗

実験2

「検索用カラム」を追加し、 User モデルの登録 / 更新があった場合、全てのカラムのデータを「検索用カラム」に登録し、検索バーから Contains の検索対象カラムを「検索用カラム」にする

実現方法1〜Form の Set Automativally を使用する〜

Form で入力した値を設定することができず、実現不可能(だった)

実現方法2〜API と Custome Actions を使用する〜

https://help.adalo.com/integrations/external-collections-with-apis

User sign up の時に、生成されたレコードの id を Adalo 上で取得する方法がわからず、断念、、、

質問まとめ

  • 要件を満たす検索方法の実現方法について、何かアドバイスやアイデアをいただけると幸いです
  • 実験1 では、AND 条件になってしまいました。 OR 条件にする方法はありますでしょうか?
  • 実験2の実現方法1で Form で入力した値を連結して、一つのカラムに保存する方法はありますでしょうか?
  • 実験2の実現方法2で生成されたレコードの id を Adalo 上で取得する方法はありますでしょうか? API の Get All Records で id が含まれていることは知っているのですが、取得するのにはかなり力技になりそうで、処理に時間がかかりそうだと懸念しているため、生成されたレコードの id を取得する方法があれば、知りたいです。

回答者1
まず1については少しトリッキーですができます。
例えば@maejimayuto さんの場合はuserに関するキーワード検索で、僕の場合は投稿に対する検索ですがやり方は同じなので参考にしてください。
画像1のように投稿(post collection)にsearch indexというpropertyを追加します。
画像2のようにユーザーが投稿を作成した際にUPDATEでsearch indexに僕の場合は投稿のタイトル、内容、カテゴリーを追加します。(@maejimayuto さんの場合は名前、性別、出身、一言)
画像3のようにsearch index contains search form(text inputの名前)でキーワード検索をします。
すると画像4-6のように投稿のカテゴリー、タイトル、質問内容でキーワード検索をすることができます。このときauto refreshを忘れずに!
質問の2の複数キーワードごとにand検索ですが今やり方を考え中です。

投稿した際にUPDATEでもCREATEでもsearch indexは作成できました。
お好みの方法でどうぞ

回答者2
あ、そうか、
index用に Seach property を作れば良いのか。
私は、どちらかと言うと、
通常通り入力した後に、OR条件式を作らないといけないと思い込んでいたため、
前提で、indexでまとめる考え方欠如してました:sweat_drops:
OR用のDB を別途に作って、
A の条件が満たされるとき グループDB1を表示
Bの条件が満たされるとき グループDB2(グループDB1と同じコピー) を表示みたいなイメージです。
@カイト さんのやり方がスマートですね。

回答者2
@Tsubasa Miyazaki 僕も自分で思いついたわけではなくこの人のyoutubeを昔見たことがあったのでそれを活用しました!笑
airtableまだあまり知りませんがすごいですね

回答者1
Patrick Ford 有名な人ですねー。 NoCodeCampのAdaloの人、みんなPatrick Ford に教わっているようなw
知識がぱっとでるのが強いです~。

参考画像

参考URL

https://support.airtable.com/hc/en-us/articles/203255215-Formula-field-reference