Basiszoekopdrachten in Elasticsearch: een uitgebreide gids

Op zoekwoorden gebaseerde zoekopdracht(Match Query)

De Match-query wordt gebruikt om te zoeken naar documenten die specifieke trefwoorden bevatten. Het retourneert documenten met ten minste één bijbehorend trefwoord.

Voorbeeld: Zoek producten waarvan de naam het trefwoord bevat laptop  in het products Index.

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

 

Moet alle zoekwoorden bevatten(Match Phrase Query)

De Match Phrase-query vereist dat alle trefwoorden in de query opeenvolgend en in de juiste volgorde in de documenttekst verschijnen.

Voorbeeld: zoek producten waarvan de beschrijving de woordgroep bevat HP laptop.

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

 

Moet het volledige woordgroepvoorvoegsel bevatten(Match Phrase Prefix Query)

De zoekopdracht Match Phrase Prefix is ​​vergelijkbaar met Match Phrase, maar staat een gedeeltelijke match van het laatste trefwoord toe.

Voorbeeld: Zoek producten waarvan de omschrijving begint met laptop.

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

 

Op termen gebaseerde zoekopdracht(Term Query)

De Term-query wordt gebruikt om te zoeken naar documenten met een veld met een exacte waarde zoals gespecificeerd.

Voorbeeld: Zoek producten waarbij het category veld de waarde heeft laptop.

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

 

Op bereik gebaseerde zoekopdracht(Range Query)

De Range-query helpt bij het zoeken naar documenten met een veldwaarde binnen een opgegeven bereik.

Voorbeeld: Vind producten met prijzen tussen 500 en 1000.

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

 

Zoekopdracht op termniveau

Met zoekopdrachten op termniveau kunt u documenten zoeken op basis van specifieke voorwaarden, zoals zoekopdrachten Exact, Prefix, Range, Wildcard en Fuzzy.

Voorbeeld: Zoek producten waarvan de naam begint met laptop en prijzen tussen 500 en 1000.

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

 

Full-Text Vraag

Full-Text Met query's kunt u tekstvelden doorzoeken met behulp van algoritmen voor tekstanalyse om vergelijkbare woorden of synoniemen te vinden.

Voorbeeld: zoek producten met beschrijvingen die ofwel computer  of bevatten laptop.

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

 

Booleaanse vraag

Boolean Met query's kunt u meerdere subquery's combineren met verschillende zoekvoorwaarden, zoals alles bevatten, ten minste één bevatten of niet bevatten, om nauwkeurige zoekresultaten te krijgen.

Voorbeeld: Zoek producten met het category wezen laptop  en prijzen tussen 500 en 1000.

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

 

Dit zijn de basiszoekopdrachten in Elasticsearch, samen met geïllustreerde voorbeelden voor elk zoektype. Wanneer u gebruikt Elasticsearch, kunt u deze zoekopdrachten combineren om flexibel en efficiënt naar gegevens te zoeken.