Domanda congiunta BOOL: Dobbe, dovrebbe, must_not
Se vogliamo richiedere qualcosa di simile a "contenuto con BMW, ma non in tag", dobbiamo usare bool federated query.
La query congiunta utilizzerà tre parole chiave: deve, dovrebbe, must_not.
Questi tre possono essere compresi in questo modo
must: Il documento deve corrispondere esattamente alle condizioni
should: deve avere più di una condizione e, se almeno una condizione viene soddisfatta, questo documento soddisferà se
must_not:Il documento non deve corrispondere ai criteri
Introduzione al sito ufficiale:https://www.elastic.co/guide/cn/ ... bining-filters.html
Consulta DSL
match_all Query
Tutti i documenti possono essere interrogati, ed è l'istruzione predefinita senza condizioni di interrogazione.
Questa query viene spesso utilizzata per unire i filtri. Ad esempio, devi recuperare tutte le cassette postali, e tutta la rilevanza dei documenti è la stessa, quindi il _score che ottieni è 1.
Query di corrispondenza
Una query di corrispondenza è una query standard che viene usata sia che tu abbia bisogno di una query in testo completo sia di una query esatta.
Se usi match per interrogare un campo di testo completo, utilizzerà l'analizzatore per analizzare i caratteri della query prima della query effettiva:
Se specifichi un valore esatto sotto Match, cercherà il valore indicato quando incontrerà un numero, data, booleano o not_analyzed stringa:
Consiglio: Quando si effettua una ricerca a corrispondenza esatta, è meglio usare istruzioni filtro perché le istruzioni filtro mettono i dati in cache.
Una query di corrispondenza può cercare solo un valore esatto che specifichi un campo esatto, e tutto ciò che devi fare è specificare il nome corretto del campo per evitare errori di sintassi.
multi_match Query
multi_match query ti permette di cercare contemporaneamente più campi basandoti su una query di corrispondenza, e di cercarne uno in più campi contemporaneamente:
Query bool
Le query bool sono simili al bool filtering e vengono utilizzate per unire più clausole di interrogazione. La differenza è che il filtro bool può indicare direttamente se la corrispondenza è riuscita, mentre la query bool calcola il _score (punteggio di correlacione) di ogni clausola di interrogazione.
must:: 查询指定文档一定要被包含。 must_not:: I documenti specificati per query non devono essere inclusi.
should:: 查询指定文档,有则可以为文档相关性加分。
La query seguente scoprirà che il campo titolo contiene "come fare milioni" e che il campo "tag" non è contrassegnato come spam. Se sono etichettati come "stellati" o hanno una data di rilascio prima del 2014, allora questi documenti corrispondenti saranno a un livello superiore rispetto a siti simili:
Consiglio: Se non c'è una clausola must nella query bool, dovrebbe esserci almeno una clausola devo. Ma se esiste una clausola must, allora la query può essere fatta anche senza la clausola necessità.
Query sulle carte jolly
Usa query wild card standard shell
La seguente query corrisponde ai documenti contenenti W1F 7HW e W2F 8HW:
Ad esempio, la seguente query per il nome host corrisponde al seguente jolly della shell:
Query regexp
Supponiamo che tu voglia abbinare solo i codici postali che iniziano con W seguito dai numeri. Usare query regexp ti permette di scrivere pattern più complessi:
Questa espressione regolare specifica che l'inserimento deve iniziare con W, seguito da un numero da 0 a 9, seguito da uno o più altri caratteri.
Il seguente esempio è composto da tutti gli inizi regolari con wxopen
Interrogazione del prefisso
Con quale carattere inizia, puoi usare il prefisso in modo più semplice, come nell'esempio qui sotto:
Abbinamento di frasi
Quando hai bisogno di trovare alcune parole in vicinanza, usi match_phrase domanda:
Simile alle query di corrispondenza, match_phrase query analizza prima la stringa di query per produrre una lista di termini. Cercherà tutte le voci, Tuttavia, vengono conservati solo i documenti contenenti tutti i termini di ricerca, e le posizioni dei termini dovrebbero essere adiacenti. Una query per la frase Quick Fox non corrisponderà Qualsiasi nostra documentazione, dato che nessuna documentazione contiene voci rapide e a caselle adiacenti tra loro. match_phrase query può anche essere scritta come query di corrispondenza di frase tipo:
|