キーワードベースのクエリ(Match Query)
一致クエリは、特定のキーワードを含むドキュメントを検索するために使用されます。 少なくとも 1 つの対応するキーワードを持つドキュメントが返されます。
laptop
例:に キーワードを含む名前の商品を検索します products Index
。
GET /products/_search
{
"query": {
"match": {
"name": "laptop"
}
}
}
すべてのキーワードを含める必要があります(Match Phrase Query)
一致フレーズ クエリでは、クエリ内のすべてのキーワードがドキュメント テキスト内で正しい順序で連続して出現する必要があります。
例: 説明に「 」という語句が含まれる製品を検索します HP laptop
。
GET /products/_search
{
"query": {
"match_phrase": {
"description": "HP laptop"
}
}
}
フレーズプレフィックス全体を含める必要があります(Match Phrase Prefix Query)
Match Phrase Prefix クエリは Match Phrase に似ていますが、最後のキーワードの部分一致が可能です。
例: で始まる説明を持つ製品を検索します laptop
。
GET /products/_search
{
"query": {
"match_phrase_prefix": {
"description": "laptop"
}
}
}
用語ベースのクエリ(用語クエリ)
用語クエリは、指定された正確な値を持つフィールドを持つドキュメントを検索するために使用されます。
例: category
値がフィールドにある製品を検索します laptop
。
GET /products/_search
{
"query": {
"term": {
"category": "laptop"
}
}
}
範囲ベースのクエリ(Range Query)
Range クエリは、指定された範囲内のフィールド値を持つドキュメントを検索するのに役立ちます。
例: 価格が 500 ~ 1000 の製品を検索します。
GET /products/_search
{
"query": {
"range": {
"price": {
"gte": 500,
"lte": 1000
}
}
}
}
用語レベルのクエリ
用語レベルのクエリを使用すると、完全一致、プレフィックス、範囲、ワイルドカード、ファジー クエリなどの特定の条件に基づいてドキュメントを検索できます。
例: 名前が で始まり laptop
、価格が 500 ~ 1000 の製品を検索します。
GET /products/_search
{
"query": {
"bool": {
"must": [
{
"prefix": {
"name": "laptop"
}
},
{
"range": {
"price": {
"gte": 500,
"lte": 1000
}
}
}
]
}
}
}
Full-Text クエリ
Full-Text クエリでは、テキスト分析アルゴリズムを使用してテキスト フィールドを検索し、類似の単語や同義語を見つけることができます。
例: 説明に または のいずれかを含む製品を検索し computer
ます laptop
。
GET /products/_search
{
"query": {
"match": {
"description": "computer laptop"
}
}
}
ブールクエリ
Boolean
クエリでは、複数のサブクエリをさまざまな検索条件(すべてを含む必要がある、少なくとも 1 つ含まなければならない、含まない必要があるなど) と組み合わせて、正確な検索結果を得ることができます。
例: 存在 category
および laptop
価格が 500 ~ 1000 の製品を検索します。
GET /products/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"category": "laptop"
}
},
{
"range": {
"price": {
"gte": 500,
"lte": 1000
}
}
}
]
}
}
}
これらは、 の基本的な検索クエリ Elasticsearch と、各クエリ タイプの例を示しています。 を使用する場合 Elasticsearch 、これらのクエリを組み合わせて、柔軟かつ効率的にデータを検索できます。