Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 20947|Răspunde: 1

Interogările compuse ElasticSearch trebuie, ar trebui must_not folosite

[Copiază linkul]
Postat pe 28.12.2018 12:01:09 | | |
Întrebare BOOL Joint: Trebuie, ar trebui must_not

Dacă vrem să solicităm ceva similar cu "conținut cu BMW, dar nu în tag", trebuie să folosim bool federated query.

Interogarea comună va folosi trei cuvinte-cheie: must, should must_not.

Aceste trei pot fi înțelese astfel

must: Documentul trebuie să corespundă exact condițiilor
should: ar trebui să aibă mai multe condiții, iar dacă cel puțin o condiție este îndeplinită, acest document va îndeplini dacă
must_not:Documentul nu trebuie să corespundă criteriilor

Introducere pe site-ul oficial:https://www.elastic.co/guide/cn/ ... bining-filters.html

Interogare DSL

match_all Interogare

Toate documentele pot fi interogate și este instrucțiunea implicită fără condiții de interogare.


Această interogare este adesea folosită pentru a fuziona filtrele. De exemplu, trebuie să recuperezi toate cutiile poștale, iar relevanța tuturor documentelor este aceeași, deci _score primești este 1.

Interogare potrivire

O interogare de potrivire este o interogare standard care este folosită practic fie că ai nevoie de o interogare full-text sau una exactă.

Dacă folosești match pentru a interoga un câmp full-text, acesta va folosi analizorul pentru a analiza caracterele interogate înainte de interogarea propriu-zisă:



Dacă specifici o valoare exactă sub Match, va căuta valoarea dată când întâlnește un șir de număr, dată, boolean sau not_analyzed:


Sfat: Când faci o căutare prin potrivire exactă, cel mai bine este să folosești instrucțiuni de filtru, deoarece instrucțiunile de filtru stochează datele în cache.

O interogare de potrivire poate căuta doar o valoare exactă care specifică un câmp exact, iar tot ce trebuie să faci este să specifici numele corect al câmpului pentru a evita erorile de sintaxă.

multi_match Interogare

multi_match interogare îți permite să cauți mai multe câmpuri simultan pe baza unei interogări de potrivire și să cauți unul în mai multe câmpuri simultan:


Interogare bool

Interogările bool sunt similare cu filtrarea bool și sunt folosite pentru a combina mai multe clauze de interogare. Diferența este că filtrul bool poate indica direct dacă potrivirea este reușită, în timp ce interogarea bool calculează _score (scorul de corelație) fiecărei clauze de interogare.

must:: 查询指定文档一定要被包含。
must_not:: Documentele specificate de interogare nu trebuie incluse.
should:: 查询指定文档,有则可以为文档相关性加分。

Interogarea următoare va descoperi că câmpul de titlu conține "cum să faci milioane" și câmpul "etichetă" nu este marcat ca spam. Dacă sunt etichetate ca "stelate" sau au o dată de lansare înainte de 2014, atunci aceste documente corespunzătoare vor fi la un nivel mai ridicat decât site-urile similare:


Sfat: Dacă nu există o clauză must în interogarea bool, ar trebui să existe cel puțin o clauză must. Dar dacă există o clauză must, atunci interogarea poate fi făcută și fără clauza need.

Interogare wildcards

Folosiți interogările shell wildcard standard

Următoarea interogare corespunde documentelor care conțin W1F 7HW și W2F 8HW:


De exemplu, următoarea interogare pentru numele gazdei corespunde cu următorul wildcard din shell:


Interogare regexp

Să zicem că vrei să potrivești doar codurile poștale care încep cu W urmat de cifre. Folosirea interogărilor regexp îți permite să scrii modele mai complexe:



Această expresie regulată specifică că intrarea trebuie să înceapă cu W, urmată de un număr de la 0 la 9, urmată de unul sau mai multe alte caractere.

Următorul exemplu este cu toate începuturile regulate cu wxopen


Interogare prefix

Cu ce caracter începe, poți folosi prefixul mai simplu, așa cum se vede în exemplul de mai jos:


Potrivirea frazei

Când ai nevoie să găsești câteva cuvinte în apropiere, folosești match_phrase interogare:


Similar cu interogările de potrivire, interogarea match_phrase analizează mai întâi șirul de interogare pentru a produce o listă de termeni. Va căuta toate intrările,
Totuși, doar documentele care conțin toți termenii de căutare sunt păstrate, iar pozițiile acestora trebuie să fie adiacente. O cerere pentru expresia Quick Fox nu se potrivește
Oricare dintre documentația noastră, deoarece nicio documentație nu conține intrări rapide și casete adiacente.
match_phrase interogare poate fi scrisă și ca o interogare de potrivire a frazei de tip:







Precedent:Achiziționat de China Accounting Online School pe 18 decembrie (Tabăra de Instruire pentru Procesarea Vamală de Nivel 6 în Practica Contabilității)
Următor:C# regex ia valoarea etichetei A href în HTML
Postat pe 22.11.2022 14:25:30 |
Învață, mulțumesc, proprietar.
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com