クエリ文字列検索
HTTPリクエストのクエリ文字列にパラメータを含める形式です。一時的な検索に適しています。
curl -XGET 'http://localhost:9301/book_shop/it_book/_search?q=タイトル:Java&sort=価格:desc'
例: 商品名に「Java」が含まれるすべての商品を取得します。
http://172.16.22.133:9301/book_shop/it_book/_search?q=タイトル:Java
レスポンス例
{
"時間": 8,
"タイムアウト": false,
"_シャード": {
"合計": 5,
"成功": 5,
"スキップ": 0,
"失敗": 0
},
"ヒット": {
"合計": 3,
"最大スコア": 1,
"ヒット": [
{
"_インデックス": "book_shop",
"_タイプ": "it_book",
"_ID": "2",
"_スコア": 1,
"_ソース": {
"タイトル": "Java仮想マシンの詳細な理解:JVM高度な特性とベストプラクティス",
"著者": "周志明",
"カテゴリ": "プログラミング言語",
"説明": "Java書籍分野で広く認められている古典的著作",
"価格": 79,
"日付": "2013-10-01",
"出版社": "機械工業出版社",
"タグ": [
"Java",
"仮想マシン",
"ベストプラクティス"
]
}
}
]
}
}
Query DSLを使用した検索
JSON形式のデータを使用して、複雑な検索を作成できます。
全商品を検索
POST /book_shop/it_book/_search
{
"クエリ": { "一致_全て": {} }
}
タイトルに「Java」が含まれる商品を価格順に並べ替え
POST /book_shop/it_book/_search
{
"クエリ": {
"一致": {
"タイトル": "Java"
}
},
"ソート": [
{ "価格": {"注文": "降順"} }
]
}
ページネーションによる商品検索 - 各ページ1件表示、3ページ目
POST /book_shop/it_book/_search
{
"クエリ": { "一致_全て": {} },
"開始位置": 2,
"サイズ": 1
}
商品のタイトルと価格のみを取得
POST /book_shop/it_book/_search
{
"クエリ": { "一致_全て": {} },
"_ソース": ["タイトル", "価格"]
}
フィルター検索
タイトルに「Java」が含まれ、かつ価格が80円以下の商品を検索します。
POST /book_shop/it_book/_search
{
"クエリ": {
"論理組み合わせ": {
"必須": {
"一致": {"タイトル": "Java"}
},
"フィルター": {
"範囲": {
"価格": {"最大値以下": 80.0}
}
}
}
}
}
全文検索
説明欄に「Java書籍」というフレーズが含まれる商品を検索し、タイトルと説明を表示します。
POST /book_shop/it_book/_search
{
"クエリ": {
"一致": {"説明": "Java書籍"}
},
"_ソース": ["タイトル", "説明"]
}
フレーズ検索
説明欄に完全一致する「Java書籍」を持つ商品を検索します。
POST /book_shop/it_book/_search
{
"クエリ": {
"一致_フレーズ": {
"説明": "Java書籍"
}
},
"_ソース": ["タイトル", "説明"]
}
ハイライト検索
説明欄に「Java書籍」というフレーズが含まれる商品をページネーション付きで検索し、結果をハイライト表示します。
POST /book_shop/it_book/_search
{
"クエリ": {
"一致": {"説明": "Java書籍"}
},
"開始位置": 0,
"サイズ": 1,
"ハイライト": {
"フィールド": {"説明": {}}
},
"_ソース": ["タイトル", "説明"]
}