クエリガイド
MygramDBで効果的に検索する方法を学びましょう。
WARNING
クエリを実行する前に、設定ファイルの allow_cidrs にIPアドレスが登録されていることを確認してください。CIDR登録がない場合、すべての接続が拒否されます。ネットワークセキュリティを参照してください。
mygram-cliで接続
bash
mygram-cli -h localhost -p 11016接続後、対話的にクエリを実行できます。
基本検索
mygram> SEARCH articles hello world
OK RESULTS 3 101 205 387ブール演算子
AND - すべての語句を含む
mygram> SEARCH articles golang AND tutorialOR - いずれかの語句を含む
mygram> SEARCH articles golang OR python OR rustNOT - 語句を除外
mygram> SEARCH articles tutorial NOT beginner組み合わせ
mygram> SEARCH articles (golang OR python) AND tutorial NOT beginnerフレーズ検索
引用符で完全一致:
mygram> SEARCH articles "machine learning"
mygram> SEARCH articles '機械学習'演算子と組み合わせ:
mygram> SEARCH articles "web framework" AND (golang OR python)フィルタリング
カラム値でフィルタ:
mygram> SEARCH articles tech FILTER status = 1
mygram> SEARCH articles tech FILTER views > 1000
mygram> SEARCH articles tech FILTER created_at >= 2024-01-01複数フィルタ(AND条件):
mygram> SEARCH articles tech FILTER status = 1 FILTER category_id = 5フィルタ演算子
| 演算子 | 別名 | 説明 |
|---|---|---|
= | EQ | 等しい |
!= | NE | 等しくない |
> | GT | より大きい |
>= | GTE | 以上 |
< | LT | より小さい |
<= | LTE | 以下 |
ソート
プライマリキーでソート:
mygram> SEARCH articles golang SORT ASC
mygram> SEARCH articles golang SORT DESCカラムでソート:
mygram> SEARCH articles golang SORT created_at DESC
mygram> SEARCH articles golang SORT score ASCページネーション
mygram> SEARCH articles golang LIMIT 10
mygram> SEARCH articles golang LIMIT 10 OFFSET 20カウントクエリ
IDなしでカウントのみ取得:
mygram> COUNT articles golang AND tutorial
OK COUNT 42実用例
最新のGoチュートリアルを検索
mygram> SEARCH articles golang AND tutorial FILTER status = 1 SORT created_at DESC LIMIT 20データベースに関する人気記事
mygram> SEARCH posts (mysql OR postgresql) AND performance FILTER views > 1000 SORT score DESC LIMIT 10カテゴリ内のアクティブユーザー数
mygram> COUNT users tech FILTER status = 1 FILTER category_id = 5HTTP API
すべてのクエリはHTTPでも利用可能:
bash
curl "http://localhost:8080/search?table=articles&q=golang+tutorial&limit=10"bash
curl "http://localhost:8080/count?table=articles&q=golang"演算子の優先順位
括弧がない場合、演算子は以下の順序で評価されます:
- NOT(最高)
- AND
- OR(最低)
例:a OR b AND c は a OR (b AND c) と解釈されます
TIP
意図を明確にし、予期しない結果を避けるため括弧を使用してください。
パフォーマンスのヒント
- LIMITを使用 - 高速な部分ソートが有効
- 具体的なフィルタを追加 - 結果セットを早期に削減
- ORよりANDを優先 - ANDクエリは通常高速
- フィルタカラムをインデックス - 頻繁にフィルタするカラムを設定に追加