Grundlæggende søgeforespørgsler i Elasticsearch: En omfattende vejledning

Søgeordsbaseret forespørgsel(Match Query)

Match-forespørgslen bruges til at søge efter dokumenter, der indeholder specifikke nøgleord. Det vil returnere dokumenter, der har mindst ét ​​tilsvarende nøgleord.

Eksempel: Find produkter med navnet, der indeholder søgeordet laptop  i products Index.

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

 

Skal indeholde alle søgeord(Match Phrase Query)

Forespørgslen Match sætning kræver, at alle søgeord i forespørgslen vises fortløbende og i den rigtige rækkefølge i dokumentteksten.

Eksempel: Find produkter med beskrivelsen, der indeholder sætningen HP laptop.

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

 

Skal indeholde hele sætningspræfikset(Match Phrase Prefix Query)

Forespørgslen Match sætningspræfiks ligner Match sætning, men den giver mulighed for et delvist match af det sidste søgeord.

Eksempel: Find produkter med beskrivelsen, der starter med laptop.

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

 

Term-baseret forespørgsel(term forespørgsel)

Term-forespørgslen bruges til at søge efter dokumenter med et felt med en nøjagtig værdi som angivet.

Eksempel: Find produkter med category feltet med værdien laptop.

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

 

Områdebaseret forespørgsel(Range Query)

Range-forespørgslen hjælper med at søge efter dokumenter med en feltværdi inden for et specificeret område.

Eksempel: Find produkter med priser mellem 500 og 1000.

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

 

Forespørgsel på termniveau

Forespørgsler på termniveau gør det muligt at søge efter dokumenter baseret på specifikke forhold som eksakte, præfiks, rækkevidde, jokertegn og fuzzy forespørgsler.

Eksempel: Find produkter med navnet startende med laptop og priser mellem 500 og 1000.

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

 

Full-Text Forespørgsel

Full-Text Forespørgsler gør det muligt at søge i tekstfelter ved hjælp af tekstanalysealgoritmer for at finde lignende ord eller synonymer.

Eksempel: Find produkter med beskrivelser, der indeholder enten computer  eller laptop.

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

 

Boolesk forespørgsel

Boolean Forespørgsler gør det muligt at kombinere flere underforespørgsler med forskellige søgebetingelser, såsom skal indeholde alle, skal indeholde mindst én eller ikke indeholde, for at opnå præcise søgeresultater.

Eksempel: Find produkter med category væsen laptop  og priser mellem 500 og 1000.

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

 

Disse er de grundlæggende søgeforespørgsler i Elasticsearch sammen med illustrerede eksempler for hver forespørgselstype. Når du bruger Elasticsearch, kan du kombinere disse forespørgsler for at søge efter data fleksibelt og effektivt.