Query basata su parole chiave(Match Query)
La query Match viene utilizzata per cercare documenti contenenti parole chiave specifiche. Restituirà documenti che hanno almeno una parola chiave corrispondente.
Esempio: trova i prodotti con il nome che contiene la parola chiave laptop
nel file products Index
.
GET /products/_search
{
"query": {
"match": {
"name": "laptop"
}
}
}
Deve contenere tutte le parole chiave(Match Phrase Query)
La query Match Phrase richiede che tutte le parole chiave nella query appaiano consecutivamente e nell'ordine corretto all'interno del testo del documento.
Esempio: trova i prodotti con la descrizione che contiene la frase HP laptop
.
GET /products/_search
{
"query": {
"match_phrase": {
"description": "HP laptop"
}
}
}
Deve contenere il prefisso dell'intera frase(Match Phrase Prefix Query)
La query Match Phrase Prefix è simile a Match Phrase, ma consente una corrispondenza parziale dell'ultima parola chiave.
Esempio: trova i prodotti con la descrizione che inizia con laptop
.
GET /products/_search
{
"query": {
"match_phrase_prefix": {
"description": "laptop"
}
}
}
Query basata sui termini(Query sui termini)
La query Term viene utilizzata per cercare documenti con un campo avente un valore esatto come specificato.
Esempio: trova i prodotti con il category
campo che ha il valore laptop
.
GET /products/_search
{
"query": {
"term": {
"category": "laptop"
}
}
}
Query basata su intervallo(Range Query)
La query Intervallo consente di cercare documenti con un valore di campo all'interno di un intervallo specificato.
Esempio: trova prodotti con prezzi compresi tra 500 e 1000.
GET /products/_search
{
"query": {
"range": {
"price": {
"gte": 500,
"lte": 1000
}
}
}
}
Query a livello di termine
Le query a livello di termine consentono la ricerca di documenti in base a condizioni specifiche come query esatte, prefisso, intervallo, caratteri jolly e fuzzy.
Esempio: Trova prodotti con il nome che inizia con laptop
e prezzi compresi tra 500 e 1000.
GET /products/_search
{
"query": {
"bool": {
"must": [
{
"prefix": {
"name": "laptop"
}
},
{
"range": {
"price": {
"gte": 500,
"lte": 1000
}
}
}
]
}
}
}
Full-Text Domanda
Full-Text le query consentono di cercare campi di testo utilizzando algoritmi di analisi del testo per trovare parole o sinonimi simili.
Esempio: trova prodotti con descrizioni che contengono computer
o laptop
.
GET /products/_search
{
"query": {
"match": {
"description": "computer laptop"
}
}
}
Interrogazione booleana
Boolean
le query consentono di combinare più sottoquery con diverse condizioni di ricerca, ad esempio deve contenere tutto, deve contenerne almeno una o non deve contenere, per ottenere risultati di ricerca precisi.
Esempio: trova prodotti con category
essere laptop
e prezzi compresi tra 500 e 1000.
GET /products/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"category": "laptop"
}
},
{
"range": {
"price": {
"gte": 500,
"lte": 1000
}
}
}
]
}
}
}
Queste sono le query di ricerca di base in Elasticsearch, insieme a esempi illustrati per ogni tipo di query. Quando si utilizza Elasticsearch, è possibile combinare queste query per cercare i dati in modo flessibile ed efficiente.