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:
|