Základní vyhledávací dotazy v Elasticsearch: Komplexní příručka

Dotaz založený na klíčových slovech(Match Query)

Dotaz na shodu se používá k vyhledávání dokumentů obsahujících konkrétní klíčová slova. Vrátí dokumenty, které mají alespoň jedno odpovídající klíčové slovo.

Příklad: Najděte produkty s názvem obsahujícím klíčové slovo laptop  v products Index.

GET /products/_search  
{  
  "query": {  
    "match": {  
      "name": "laptop"  
    }  
  }  
}  

 

Musí obsahovat všechna klíčová slova(Match Phrase Query)

Dotaz na shodu fráze vyžaduje, aby se všechna klíčová slova v dotazu objevila po sobě a ve správném pořadí v textu dokumentu.

Příklad: Najděte produkty s popisem obsahujícím frázi HP laptop.

GET /products/_search  
{  
  "query": {  
    "match_phrase": {  
      "description": "HP laptop"  
    }  
  }  
}  

 

Musí obsahovat celou předponu fráze(Match Phrase Prefix Query)

Dotaz na předponu fráze shody je podobný dotazu na frázi shody, ale umožňuje částečnou shodu posledního klíčového slova.

Příklad: Najděte produkty s popisem začínajícím na laptop.

GET /products/_search  
{  
  "query": {  
    "match_phrase_prefix": {  
      "description": "laptop"  
    }  
  }  
}  

 

Dotaz na základě termínu(Dotaz na termín)

Dotaz na termín se používá k vyhledávání dokumentů s polem s přesnou hodnotou, jak je uvedeno.

Příklad: Najděte produkty s category polem s hodnotou laptop.

GET /products/_search  
{  
  "query": {  
    "term": {  
      "category": "laptop"  
    }  
  }  
}  

 

Dotaz založený na rozsahu(Range Query)

Dotaz na rozsah pomáhá hledat dokumenty s hodnotou pole v určeném rozsahu.

Příklad: Najděte produkty s cenami mezi 500 a 1000.

GET /products/_search  
{  
  "query": {  
    "range": {  
      "price": {  
        "gte": 500,  
        "lte": 1000  
      }  
    }  
  }  
}  

 

Dotaz na úrovni termínu

Dotazy na úrovni termínu umožňují vyhledávat dokumenty na základě specifických podmínek, jako jsou přesné dotazy, prefixy, rozsahy, zástupné znaky a fuzzy dotazy.

Příklad: Najděte produkty s názvem začínajícím na laptop a cenami mezi 500 a 1000.

GET /products/_search  
{  
  "query": {  
    "bool": {  
      "must": [  
        {  
          "prefix": {  
            "name": "laptop"  
          }  
        },  
        {  
          "range": {  
            "price": {  
              "gte": 500,  
              "lte": 1000  
            }  
          }  
        }  
      ]  
    }  
  }  
}  

 

Full-Text Dotaz

Full-Text dotazy umožňují prohledávat textová pole pomocí algoritmů pro analýzu textu k nalezení podobných slov nebo synonym.

Příklad: Najděte produkty s popisy obsahujícími buď computer  nebo laptop.

GET /products/_search  
{  
  "query": {  
    "match": {  
      "description": "computer laptop"  
    }  
  }  
}  

 

Booleovský dotaz

Boolean dotazy umožňují kombinovat více dílčích dotazů s různými podmínkami vyhledávání, jako musí obsahovat všechny, musí obsahovat alespoň jeden nebo nesmí obsahovat, aby bylo dosaženo přesných výsledků vyhledávání.

Příklad: Najděte produkty s category bytím laptop  a cenami mezi 500 a 1000.

GET /products/_search  
{  
  "query": {  
    "bool": {  
      "must": [  
        {  
          "term": {  
            "category": "laptop"  
          }  
        },  
        {  
          "range": {  
            "price": {  
              "gte": 500,  
              "lte": 1000  
            }  
          }  
        }  
      ]  
    }  
  }  
}  

 

Toto jsou základní vyhledávací dotazy v Elasticsearch, spolu s ilustrovanými příklady pro každý typ dotazu. Při použití Elasticsearch, můžete tyto dotazy kombinovat a vyhledávat data flexibilně a efektivně.