Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 20947|Odpověď: 1

Složené dotazy ElasticSearch musí, měly by must_not používat

[Kopírovat odkaz]
Zveřejněno 28.12.2018 12:01:09 | | |
Dotaz na bool joint dotaz: musím, měl by, must_not

Pokud chceme požádat o něco podobného jako "obsah s BMW, ale ne v tagu", musíme použít bool federated query.

Společný dotaz použije tři klíčová slova: musí, měl by, must_not.

Tyto tři lze takto pochopit

must: Dokument musí přesně odpovídat podmínkám
should: Mělo by mít více než jednu podmínku, a pokud je splněna alespoň jedna podmínka, tento dokument splní Should
must_not:Dokument nesmí splňovat kritéria

Oficiální úvod na webové stránky:https://www.elastic.co/guide/cn/ ... bining-filters.html

Dotaz na DSL

match_all Dotaz

Všechny dokumenty lze dotazovat a je to výchozí příkaz bez podmínek dotazu.


Tento dotaz se často používá k sloučení filtrů. Například musíte získat všechny schránky a relevance všech dokumentů je stejná, takže _score, kterou dostanete, je 1.

Dotaz na shodu

Dotaz na shodu je standardní dotaz, který se v podstatě používá bez ohledu na to, zda potřebujete plnotextový dotaz nebo přesný dotaz.

Pokud použijete match k dotazování na plnotextové pole, použije analyzátor k analýze znaků dotazu před samotným dotazem:



Pokud zadáte přesnou hodnotu pod shodou, vyhledá vaši hodnotu, když narazí na číslo, datum, booleovskou nebo not_analyzed řetězec:


Tip: Při vyhledávání podle přesné shody je nejlepší používat filtrační příkazy, protože filtrační příkazy ukládají data do mezipaměti.

Dotaz na shodu může vyhledávat pouze přesnou hodnotu, která specifikuje přesné pole, a stačí zadat správný název pole, abyste předešli syntaktickým chybám.

multi_match Dotaz

multi_match dotaz vám umožňuje vyhledávat více polí současně na základě dotazu shody a zároveň vyhledávat pole ve více polích:


Bool dotaz

Bool dotazy jsou podobné bool filtrování a používají se ke sloučení více dotazových klauzulí. Rozdíl je v tom, že bool filtr může přímo říct, zda je shoda úspěšná, zatímco bool dotaz počítá _score (korelacní skóre) každé dotazovací klauzule.

must:: 查询指定文档一定要被包含。
must_not:: Dotazy určené k dokumentům nesmí být zahrnuty.
should:: 查询指定文档,有则可以为文档相关性加分。

Následující dotaz zjistí, že pole názvu obsahuje "jak vydělat miliony" a pole "tag" není označeno jako spam. Pokud jsou označeny jako "hvězdičkované" nebo mají datum vydání před rokem 2014, pak budou tyto shodné dokumenty na vyšší úrovni než podobné stránky:


Tip: Pokud pod bool dotazem není klauzule "musít", měla by být alespoň jedna klauzule "měla by". Pokud však existuje klauzule nutnosti, pak lze dotaz provést i bez klauzule potřeby.

Dotaz na divoké karty

Použijte standardní shell wildcard dotazy

Následující dotaz odpovídá dokumentům obsahujícím W1F 7HW a W2F 8HW:


Například následující dotaz na název hostitele odpovídá následujícímu žolíku shellu:


regexp dotaz

Řekněme, že chcete spojit pouze PSČ začínající na W a následovaná čísly. Použití regexp dotazů umožňuje psát složitější vzory:



Tento regulární výraz určuje, že prvek musí začínat na W, následované číslem od 0 do 9 a následně jedním nebo více dalšími znaky.

Následující příklad je všechny regulární starty s wxopen


Dotaz na předponu

Jakým znakem začíná, můžete použít předponu jednodušší, jako je uvedeno v příkladu níže:


Párování frází

Když potřebujete najít pár slov v blízké blízkosti, použijete match_phrase dotaz:


Podobně jako u match dotazů match_phrase dotaz nejprve parsuje dotazovací řetězec, aby vytvořil seznam termínů. Bude hledat všechny záznamy,
Nicméně jsou uchovávány pouze dokumenty obsahující všechna vyhledávaná slova a pozice těchto výrazů by měly být sousední. Dotaz na frázi Quick Fox neodpovídá
Žádná z našich dokumentací, protože žádná dokumentace neobsahuje rychlé a rámečkové záznamy vedle sebe.
match_phrase dotaz lze také zapsat jako dotaz na shodu typu fráze:







Předchozí:Zakoupeno Čínskou účetní online školou 18. prosince (Výcvikový tábor pro celní odbavení účetnictví úrovně 6)
Další:C# regex bere hodnotu href značky A v HTML
Zveřejněno 22.11.2022 14:25:30 |
Učte se, děkuji pronajímateli
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com