Sökordsbaserad fråga(Match Query)
Matchningsfrågan används för att söka efter dokument som innehåller specifika nyckelord. Det kommer att returnera dokument som har minst ett motsvarande nyckelord.
Exempel: Hitta produkter med namnet som innehåller nyckelordet laptop
i products Index
.
GET /products/_search
{
"query": {
"match": {
"name": "laptop"
}
}
}
Måste innehålla alla nyckelord(Match Phrase Query)
Frågan Matcha fras kräver att alla nyckelord i frågan visas i följd och i rätt ordning i dokumenttexten.
Exempel: Hitta produkter med beskrivningen som innehåller frasen HP laptop
.
GET /products/_search
{
"query": {
"match_phrase": {
"description": "HP laptop"
}
}
}
Måste innehålla hela frasprefixet(Match Phrase Prefix Query)
Frågan Matcha frasprefix liknar Matcha fras, men den tillåter en partiell matchning av det sista sökordet.
Exempel: Hitta produkter med beskrivningen som börjar med laptop
.
GET /products/_search
{
"query": {
"match_phrase_prefix": {
"description": "laptop"
}
}
}
Termbaserad fråga(Termfråga)
Term-frågan används för att söka efter dokument med ett fält som har ett exakt värde som specificerats.
Exempel: Hitta produkter med category
fältet som har värdet laptop
.
GET /products/_search
{
"query": {
"term": {
"category": "laptop"
}
}
}
Områdesbaserad fråga(Range Query)
Områdesfrågan hjälper till att söka efter dokument med ett fältvärde inom ett angivet intervall.
Exempel: Hitta produkter med priser mellan 500 och 1000.
GET /products/_search
{
"query": {
"range": {
"price": {
"gte": 500,
"lte": 1000
}
}
}
}
Term Level Query
Term Level-frågor tillåter sökning efter dokument baserat på specifika villkor som Exakt, Prefix, Range, Wildcard och Fuzzy-frågor.
Exempel: Hitta produkter med namn som börjar med laptop
och priser mellan 500 och 1000.
GET /products/_search
{
"query": {
"bool": {
"must": [
{
"prefix": {
"name": "laptop"
}
},
{
"range": {
"price": {
"gte": 500,
"lte": 1000
}
}
}
]
}
}
}
Full-Text Fråga
Full-Text frågor tillåter sökning i textfält med hjälp av textanalysalgoritmer för att hitta liknande ord eller synonymer.
Exempel: Hitta produkter med beskrivningar som innehåller antingen computer
eller laptop
.
GET /products/_search
{
"query": {
"match": {
"description": "computer laptop"
}
}
}
Boolean fråga
Boolean
sökningar gör det möjligt att kombinera flera underfrågor med olika sökvillkor, som måste innehålla alla, måste innehålla minst en, eller får inte innehålla, för att få exakta sökresultat.
Exempel: Hitta produkter med category
vara laptop
och priser mellan 500 och 1000.
GET /products/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"category": "laptop"
}
},
{
"range": {
"price": {
"gte": 500,
"lte": 1000
}
}
}
]
}
}
}
Det här är de grundläggande sökfrågorna i Elasticsearch, tillsammans med illustrerade exempel för varje frågetyp. När du använder Elasticsearch kan du kombinera dessa frågor för att söka efter data flexibelt och effektivt.