Perushakukyselyt julkaisussa Elasticsearch: Kattava opas

Avainsanapohjainen kysely(Match Query)

Vastaa-kyselyä käytetään tiettyjä avainsanoja sisältävien asiakirjojen etsimiseen. Se palauttaa asiakirjat, joissa on vähintään yksi vastaava avainsana.

Esimerkki: Etsi tuotteita, joiden nimi sisältää laptop  avainsanan products Index.

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

 

Täytyy sisältää kaikki avainsanat(Match Phrase Query)

Match Phrase -kysely edellyttää, että kaikki kyselyn avainsanat näkyvät peräkkäin ja oikeassa järjestyksessä asiakirjan tekstissä.

Esimerkki: Etsi tuotteita, joiden kuvaus sisältää lauseen HP laptop.

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

 

Täytyy sisältää koko lauseen etuliite(Match Phrase Prefix Query)

Match Phrase -etuliitekysely on samanlainen kuin Match Phrase -kysely, mutta se sallii viimeisen avainsanan osittaisen vastaavuuden.

Esimerkki: Etsi tuotteita, joiden kuvaus alkaa laptop.

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

 

Termipohjainen kysely(termikysely)

Termikyselyä käytetään sellaisten asiakirjojen etsimiseen, joiden kentällä on määritetty tarkka arvo.

Esimerkki: Etsi tuotteita, joiden category kentän arvo on laptop.

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

 

Aluepohjainen kysely(Range Query)

Aluekysely auttaa etsimään asiakirjoja, joiden kentän arvo on tietyllä alueella.

Esimerkki: Etsi tuotteita, joiden hinnat ovat 500–1000.

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

 

Termitason kysely

Termitason kyselyt mahdollistavat asiakirjojen etsimisen tiettyjen ehtojen perusteella, kuten täsmälliset, etuliite-, alue-, jokeri- ja sumeat kyselyt.

Esimerkki: Etsi tuotteita, joiden nimi alkaa laptop ja joiden hinnat ovat 500–1000.

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

 

Full-Text Kysely

Full-Text kyselyt mahdollistavat haun tekstikentistä käyttämällä tekstianalyysialgoritmeja samankaltaisten sanojen tai synonyymien löytämiseksi.

Esimerkki: Etsi tuotteita, joiden kuvaukset sisältävät joko computer  tai laptop.

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

 

Boolen kysely

Boolean kyselyt mahdollistavat useiden alikyselyjen yhdistämisen erilaisilla hakuehdoilla, kuten pitää sisältää kaikki, täytyy sisältää vähintään yksi tai ei saa sisältää tarkkojen hakutulosten saavuttamiseksi.

Esimerkki: Etsi tuotteita, joiden category olemus laptop  ja hinnat ovat välillä 500–1000.

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

 

Nämä ovat perushakukyselyitä kohteessa Elasticsearch, sekä kuvitetut esimerkit jokaiselle kyselytyypille. Kun käytät Elasticsearch, voit yhdistää nämä kyselyt etsiäksesi tietoja joustavasti ja tehokkaasti.