Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 20947|Risposta: 1

Le query composte di ElasticSearch devono, dovrebbero, must_not usare

[Copiato link]
Pubblicato su 28/12/2018 12:01:09 | | |
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:







Precedente:Acquistato dalla China Accounting Online School il 18 dicembre (Campo di formazione per lo sgombero doganale di livello 6)
Prossimo:La regex C# prende il valore del tag A href in HTML
Pubblicato su 22/11/2022 14:25:30 |
Impara es, grazie padrone di casa
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com