- テーブルのインデックスの作成:
まず、インデックス検索を行いたいテーブルに対してインデックスを作成する必要があります。propelでは、スキーマファイルを使用してテーブルを定義し、インデックスを設定することができます。次の例は、
BlogPost
テーブルにtitle
フィールドに対するインデックスを作成する方法を示しています。
<table name="blog_post">
<column name="id" type="integer" primaryKey="true" autoIncrement="true" />
<column name="title" type="varchar" size="255" />
<column name="content" type="text" />
<index>
<index-column name="title" />
</index>
</table>
- インデックスを使用した検索クエリ:
インデックスを作成した後は、そのインデックスを使用して検索クエリを実行することができます。propelでは、モデルクラスを使用してクエリを組み立てることができます。次の例は、
BlogPostQuery
クラスを使用して、title
フィールドに基づいてインデックス検索を行う方法を示しています。
$posts = BlogPostQuery::create()
->findByTitle('keyword')
->find();
上記の例では、findByTitle
メソッドを使用してtitle
フィールドを指定し、'keyword'というキーワードでインデックス検索を行っています。
- コード例: 以下に、propelを使用してインデックス検索を行うためのいくつかのコード例を示します。
// インデックス検索
$posts = BlogPostQuery::create()
->findByTitle('keyword')
->find();
// インデックスを指定した複数の条件で検索
$posts = BlogPostQuery::create()
->filterByTitle('keyword')
->filterByTag('tag')
->find();
// インデックスを指定してソート
$posts = BlogPostQuery::create()
->filterByTitle('keyword')
->orderByDate()
->find();
上記の例では、findByTitle
メソッドを使用して特定のフィールドでのインデックス検索を行ったり、filterBy
メソッドを使用して複数の条件での検索を行ったりすることができます。また、orderBy
メソッドを使用して結果をソートすることも可能です。