Zapytanie oparte na słowach kluczowych(Match Query)
Zapytanie Match służy do wyszukiwania dokumentów zawierających określone słowa kluczowe. Zwróci dokumenty, które mają co najmniej jedno odpowiadające słowo kluczowe.
Przykład: Znajdź produkty o nazwie zawierającej słowo kluczowe laptop
w pliku products Index
.
GET /products/_search
{
"query": {
"match": {
"name": "laptop"
}
}
}
Musi zawierać wszystkie słowa kluczowe(Match Phrase Query)
Zapytanie Match Phrase wymaga, aby wszystkie słowa kluczowe w zapytaniu pojawiały się kolejno i we właściwej kolejności w tekście dokumentu.
Przykład: Znajdź produkty z opisem zawierającym frazę HP laptop
.
GET /products/_search
{
"query": {
"match_phrase": {
"description": "HP laptop"
}
}
}
Musi zawierać prefiks całego wyrażenia(Match Phrase Prefix Query)
Zapytanie Match Phrase Prefix jest podobne do Match Phrase, ale pozwala na częściowe dopasowanie ostatniego słowa kluczowego.
Przykład: Znajdź produkty z opisem zaczynającym się od laptop
.
GET /products/_search
{
"query": {
"match_phrase_prefix": {
"description": "laptop"
}
}
}
Zapytanie oparte na terminach(zapytanie o termin)
Zapytanie Termin służy do wyszukiwania dokumentów zawierających pole o dokładnie określonej wartości.
Przykład: Znajdź produkty z category
polem o wartości laptop
.
GET /products/_search
{
"query": {
"term": {
"category": "laptop"
}
}
}
Zapytanie oparte na zakresie(Range Query)
Zapytanie Zakres pomaga wyszukiwać dokumenty z wartością pola w określonym zakresie.
Przykład: Znajdź produkty o cenach od 500 do 1000.
GET /products/_search
{
"query": {
"range": {
"price": {
"gte": 500,
"lte": 1000
}
}
}
}
Zapytanie na poziomie terminu
Zapytania na poziomie terminów umożliwiają wyszukiwanie dokumentów na podstawie określonych warunków, takich jak zapytania dokładne, prefiksowe, zakresowe, wieloznaczne i rozmyte.
Przykład: Znajdź produkty o nazwie zaczynającej się od laptop
i cenach od 500 do 1000.
GET /products/_search
{
"query": {
"bool": {
"must": [
{
"prefix": {
"name": "laptop"
}
},
{
"range": {
"price": {
"gte": 500,
"lte": 1000
}
}
}
]
}
}
}
Full-Text Zapytanie
Full-Text zapytania umożliwiają przeszukiwanie pól tekstowych za pomocą algorytmów analizy tekstu w celu znalezienia podobnych słów lub synonimów.
Przykład: znajdź produkty z opisami zawierającymi computer
albo laptop
.
GET /products/_search
{
"query": {
"match": {
"description": "computer laptop"
}
}
}
Zapytanie logiczne
Boolean
zapytania umożliwiają łączenie wielu zapytań podrzędnych z różnymi warunkami wyszukiwania, takimi jak muszą zawierać wszystkie, muszą zawierać co najmniej jedno lub nie mogą zawierać, aby uzyskać precyzyjne wyniki wyszukiwania.
Przykład: Znajdź produkty z category
istotą laptop
i cenami od 500 do 1000.
GET /products/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"category": "laptop"
}
},
{
"range": {
"price": {
"gte": 500,
"lte": 1000
}
}
}
]
}
}
}
Oto podstawowe zapytania wyszukiwania w programie Elasticsearch wraz z ilustrowanymi przykładami dla każdego typu zapytań. Używając programu Elasticsearch, możesz łączyć te zapytania, aby elastycznie i wydajnie wyszukiwać dane.