Adaloでは複雑な検索は中々難しいですが、簡単なものであればすぐできます。
ユーザーが検索ボックスにキーワードを入力すると、自動的にフィルターがかかるようなやつです。
こんな感じですね。
ではやってみましょう。
まずはText Inputとリストを配置
以下のように、検索用のInputBox(Text Input)を配置し、その下に検索される対象のリストを置きます。

リストの内容は何でもOKです。
僕の場合はPostsというコレクション名にして、以下のようにデータを入れてみました。


こんな感じで、データもテキトーに投入しておきます。
「Search Index」という謎な項目も入ってますが、こちらは後ほど説明しますね。
検索条件を設定する
リストを選択し、Filterを設定します。
リストのAdd Filterから条件を設定します。
Custom FilterでTitleがInput(TextInputの名前)をContainしているもののみを表示します。
以下のように設定します。

赤くInputとなってるのはインプットボックスの名前ですね。
Other Componentから探して選択します。

こんな感じ。
はい、これでできました。
とても簡単です。
しかしこれだと、
「Title」に含まれたものだけが表示されます。
もし僕のDB構成で言うところの、詳細情報の説明書きである「Description」にも入ってる項目からも検索したい、、、!
ということはよくありますよね?
そういった、複数の条件の指定は、標準の機能としてはAdaloはまだサポートできていません。
なので、苦肉の策として、以下にやり方を紹介します。
複数のデータベース項目から検索フィルターをかける方法
答えは単純で、データを登録する際に検索用の項目も追加してあげる方法です。
データベースのリスト(今回で言う「Posts」)に、Search Indexというプロパティを追加します。
今回は、Titleという項目とDescriptionという項目を検索対象にしたいので、
Postをデータベースに登録する際に、Title と Descriptionをくっつけた文字列をこのSearch Indexに追加してあげます。

↑こんな感じです。
投稿をするCreatePost画面を設けます。
その画面からPostをCreateした直後に、そのPostをUpdateします。
そのUpdateの中で上記のようにPostのTitleとPostのdescriptionをSearch Indexの中に突っ込んであげています。

あとは↑こんな感じでさっきのCustom Filterの対象をSearch Indexに変えてあげるだけで、Titleにある文字もDescriptionにある文字も両方検索対象にしてくれます。
動画で確認したい方はこちらもご参考まで↓
