|
||||||||||||||||
| 1 2 3 次のページ | ||||||||||||||||
| Ludiaの高度な検索機能 | ||||||||||||||||
|
前回はLudiaの基本的な検索のバリエーションと種類について解説しました。今回は、前回説明できなかった設定項目と全文検索の応用について説明します。 |
||||||||||||||||
| 検索ヒット件数の上限の設定 | ||||||||||||||||
|
「第4回:Ludiaを体験」で説明したインストールの手順の中で、PostgreSQLの設定ファイル(postgresql.conf)に以下のようなカスタム変数を記述しました。
custom_variable_classes = 'ludia'
この中のludia.max_n_sort_resultは、全文検索のヒット件数の上限を設定する変数になります。これはSQLのクエリにLIMIT句を指定した場合と意味がすこし異なります。LIMIT句の指定は最終的に返却される行数の上限を設定しますが、Ludiaのカスタム変数の設定はLudiaがPostgreSQLに(ソートして)返却する結果数の上限を設定します。 例として、第4回で作成したテーブルをヒット件数の制限をつけて検索してみます。カスタム変数の現在の値はSHOWコマンドで確認ことができます。
# SHOW ludia.max_n_sort_result;
カスタム変数の値はSETコマンドで変更することができます。値を100にしてもう一度同じ検索を実行してみます。
# SET ludia.max_n_sort_result TO 100;
得られる結果数が100件に変化していることがわかります。さらに、次のように複数の検索条件を組み合わせた場合を見てみます。
# EXPLAIN SELECT count(*) FROM zip
この場合は、まずaddress列に「東京都」が含まれる行を100行まで取りだされ、次にその行のzip列が「104」からはじまるかどうかチェックしています。 こうすると、実際には両方の条件を満たすものがあっても、最初に取得される100行に含まれていないものは取得されません。ヒットするはずのものがヒットしないということにならないよう、注意してください。 全文検索ではキーワードによってはヒット件数が非常に大きくなりますが、この設定をしておくことでソート処理などの時間を減らすことができます。 PostgreSQLは構造上(インデックスで処理できる検索の)結果数を取得するだけでも処理に時間を要してしまうため、この設定が役に立つことがあります(PostgreSQLの構造については、後述します)。 |
||||||||||||||||
|
1 2 3 次のページ |
||||||||||||||||
|
|
||||||||||||||||
|
|
||||||||||||||||
|
||||||||||||||||
|
|
||||||||||||||||
|
||||||||||||||||
|
|
||||||||||||||||
|
||||||||||||||||

