Alapvető keresési lekérdezések itt Elasticsearch: Átfogó útmutató

Kulcsszó alapú lekérdezés(Match Query)

Az Egyezés lekérdezés meghatározott kulcsszavakat tartalmazó dokumentumok keresésére szolgál. Olyan dokumentumokat ad vissza, amelyek legalább egy megfelelő kulcsszóval rendelkeznek.

Példa: Keressen olyan termékeket, amelyek neve tartalmazza a kulcsszót laptop  a products Index.

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

 

Minden kulcsszót tartalmaznia kell(Match Phrase Query)

A Kifejezés egyezése lekérdezéshez a lekérdezésben szereplő összes kulcsszónak egymás után és a megfelelő sorrendben kell megjelennie a dokumentum szövegében.

Példa: Keressen olyan termékeket, amelyek leírása tartalmazza a kifejezést HP laptop.

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

 

Tartalmaznia kell a teljes kifejezés előtagot(Match Phrase Prefix Query)

Az Match Phrase Prefix lekérdezés hasonló az Match Phrase lekérdezéshez, de lehetővé teszi az utolsó kulcsszó részleges egyezését.

Példa: Keressen olyan termékeket, amelyek leírása a következővel kezdődik laptop.

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

 

Kifejezés alapú lekérdezés(kifejezés lekérdezés)

A kifejezés lekérdezés arra szolgál, hogy olyan dokumentumokat keressen, amelyeknek a mezője a megadott pontos értékű.

Példa: Keressen olyan termékeket, amelyeknél a category mező értéke laptop.

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

 

Tartomány alapú lekérdezés(Range Query)

A Tartomány lekérdezés segít olyan dokumentumok keresésében, amelyek mezőértéke egy megadott tartományon belül van.

Példa: Keressen olyan termékeket, amelyek ára 500 és 1000 között van.

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

 

Kifejezés szintű lekérdezés

A kifejezésszintű lekérdezések lehetővé teszik a dokumentumok keresését meghatározott feltételek, például pontos, előtag, tartomány, helyettesítő karakter és fuzzy lekérdezések alapján.

Példa: Keressen olyan termékeket, amelyeknek a neve laptop 500 és 1000 között van.

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

 

Full-Text Lekérdezés

Full-Text A lekérdezések lehetővé teszik a szövegmezőkben történő keresést szövegelemző algoritmusok segítségével hasonló szavak vagy szinonimák megtalálásához.

Példa: Keressen olyan termékeket, amelyek leírása tartalmazza a computer  vagy laptop.

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

 

Logikai lekérdezés

Boolean A lekérdezések lehetővé teszik több allekérdezés kombinálását különböző keresési feltételekkel, például mindent tartalmaznia kell, legalább egyet tartalmaznia kell, vagy nem tartalmazhat, a pontos keresési eredmények elérése érdekében.

Példa: Keressen olyan termékeket, amelyek category lénye laptop  és ára 500 és 1000 között van.

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

 

Ezek az alapvető keresési lekérdezések a nyelven Elasticsearch, az egyes lekérdezéstípusokhoz illusztrált példákkal együtt. A használatakor Elasticsearch ezeket a lekérdezéseket kombinálhatja az adatok rugalmas és hatékony keresése érdekében.