Wyszukiwanie podstawowe w Elasticsearch: obszerny przewodnik

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.