Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 20947|Válasz: 1

Az ElasticSearch összetett lekérdezéseinek kell, kell, must_not kell használni

[Linket másol]
Közzétéve 2018. 12. 28. 12:01:09 | | |
Bool Joint kérdés: Muszáj, kellene, must_not

Ha valami hasonlót akarunk kérni, mint "tartalom BMW-vel, de nem a tagben", akkor a bool federated query-t kell használnunk.

A közös lekérdezés három kulcsszót fog használni: kell, kell, must_not.

Ezeket a három így érthető meg

must: A dokumentumnak pontosan meg kell felelnie a feltételeknek
should: több feltétellel kell rendelkeznie, és ha legalább egy feltétel teljesül, akkor ez a dokumentum megfelel
must_not:A dokumentumnak nem kell megfelelnie a kritériumoknak

Hivatalos weboldal bevezetés:https://www.elastic.co/guide/cn/ ... bining-filters.html

DSL lekérdezés

match_all Lekérdezés

Minden dokumentum lekérdezhető, és ez az alapértelmezett állítás lekérdezési feltételek nélkül.


Ezt a lekérdezést gyakran használják szűrők összevonására. Például minden postaládát le kell szerezned, és minden dokumentum relevancia ugyanaz, így az _score 1.

Match lekérdezés

A match query egy szabványos lekérdezés, amelyet alapvetően akkor használnak, ha teljes szövegű lekérdezésre vagy pontos lekérdezésre van szükség.

Ha a match-et használod egy teljes szöveges mező lekérdezéséhez, az elemző segítségével a lekérdezés karaktereit a tényleges lekérdezés előtt elemzi meg:



Ha pontos értéket ad meg az egyezés alatt, akkor keresi meg a megadott értéket, amikor találkozik egy számmal, dátummal, boolean-jel vagy not_analyzed stringtel:


Tipp: Pontosan egyező kereséskor a legjobb szűrő utasításokat használni, mert a szűrő utasítások gyorsítótárat tárolnak.

Egy egyeztetési lekérdezés csak olyan pontos értéket tud keresni, amely pontosan egy mezőt megad, és csak meg kell adnod a helyes mezőnevet a szintaxishiba elkerülése érdekében.

multi_match Lekérdezés

multi_match lekérdezés lehetővé teszi, hogy egyszerre több mezőt keress egy egyező lekérdezés alapján, és egyszerre keress egyet több mezőben:


BOOL lekérdezés

A bool lekérdezések hasonlóak a bool szűréshez, és több lekérdezési záradék összevonására használják. A különbség az, hogy a bool szűrő közvetlenül meg tudja adni, hogy az egyezés sikeres-e, míg a bool lekérdezés kiszámítja az egyes lekérdezési klauzulék _score-jét (korrelációs pontszámot).

must:: 查询指定文档一定要被包含。
must_not:: A lekérdezés által megadott dokumentumokat nem szabad belefoglalni.
should:: 查询指定文档,有则可以为文档相关性加分。

A következő lekérdezés azt mutatja, hogy a címmező tartalmazza a "hogyan lehet milliókat keresni" (hogyan lehet milliókat keresni), és a "tag" mező nincs spamként jelölve. Ha "csillagosnak" címkézték őket, vagy megjelenésük 2014 előtt van, akkor ezek a párosítási dokumentumok magasabb szinten lesznek, mint a hasonló oldalak:


Tipp: Ha a bool lekérdezés alatt nincs kötelező klauzulat, legalább egy "kellene kell" klauzuladnak lennie. De ha van kötelező klauzula, akkor a lekérdezés szükség nélkül is elvégezhető.

Wildcard lekérdezés

Használj szabványos shell wildcard lekérdezéseket

Az alábbi lekérdezés egyezik a W1F 7HW és W2F 8HW dokumentumokkal:


Például a következő lekérdezés a hajtónévre egyezik a következő shell wildcard-val:


regexp lekérdezés

Tegyük fel, hogy csak olyan irányítószámokat szeretnél egyeztetni, amelyek W-vel kezdődnek, majd számokat követnek. Regexp lekérdezések használata lehetővé teszi, hogy összetettebb mintákat írj:



Ez a reguláris kifejezés azt írja ki, hogy a bejegyzésnek W-vel kell kezdődnie, majd 0-tól 9-ig terjedő számnak, majd egy vagy több másik karakternek kell lennie.

A következő példa a minden szabályos wxopen-rel kezdődik


Prefix query

Milyen karakterrel kezdődik, egyszerűbben is használhatod előtagot, mint az alábbi példában:


Kifejezéspárosítás

Ha néhány közeli szót kell találnod, match_phrase lekérdezést használsz:


Hasonlóan a match lekérdezésekhez, match_phrase lekérdezés először a lekérdezési láncszálat elemzi, hogy egy kifejezéslistát hozzon létre. Minden bejegyzést keres,
Azonban csak azokat a dokumentumokat tartják meg, amelyek minden keresési kifejezést tartalmaznak, és a kifejezések helyeinek szomszédos kell lenniük. A Quick Fox kifejezésre vonatkozó lekérdezés nem egyezik
bármilyen dokumentációnk, mivel nincs olyan dokumentum, amely egymáshoz közel áll a gyors és dobozos bejegyzésekkel.
match_phrase lekérdezés írható egyező lekérdezésként is:







Előző:December 18-án vásárolta meg a China Accounting Online School (Számviteli gyakorlat 6. szintű vámellenőrzési képzési tábor)
Következő:A C# regex a HTML A címke href értékét veszi
Közzétéve 2022. 11. 22. 14:25:30 |
Tanuld meg, köszönöm a bérbeadó
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com