bool kopīgs vaicājums: jā, vajadzētu, must_not
Ja mēs vēlamies pieprasīt kaut ko līdzīgu "saturs ar BMW, bet ne tag", mums ir jāizmanto bool federated query.
Kopīgajā vaicājumā tiks izmantoti trīs atslēgvārdi: must, should, must_not.
Šos trīs var saprast šādi
must: Dokumentam precīzi jāatbilst nosacījumiem
should: jābūt vairāk nekā vienam nosacījumam, un, ja ir izpildīts vismaz viens nosacījums, šis dokuments atbilst
must_not:Dokuments nedrīkst atbilst kritērijiem
Oficiālās mājas lapas ievads:https://www.elastic.co/guide/cn/ ... bining-filters.html
Vaicājuma DSL
match_all vaicājums
Var vaicāt visus dokumentus, un tas ir noklusējuma priekšraksts bez vaicājuma nosacījumiem.
Šo vaicājumu bieži izmanto, lai sapludinātu filtrus. Piemēram, jums ir jāizgūst visas pastkastes, un visu dokumentu atbilstība ir vienāda, tāpēc iegūtais _score ir 1.
Atbilstības vaicājums
Atbilstības vaicājums ir standarta vaicājums, kas pamatā tiek izmantots neatkarīgi no tā, vai jums ir nepieciešams pilnteksta vaicājums vai precīzs vaicājums.
Ja izmantojat atbilstību, lai vaicātu pilnteksta lauku, tas izmantos analizatoru, lai parsētu vaicājuma rakstzīmes pirms faktiskā vaicājuma:
Ja sadaļā Atbilstība norādāt precīzu vērtību, tā meklēs doto vērtību, kad tiks atrasts skaitlis, datums, Būla vai not_analyzed virkne:
Padoms: veicot precīzas atbilstības meklēšanu, ieteicams izmantot filtra priekšrakstus, jo filtru priekšraksti kešatmiņā saglabā datus.
Atbilstības vaicājums var meklēt tikai precīzu vērtību, kas norāda precīzu lauku, un viss, kas jums jādara, ir norādīt pareizo lauka nosaukumu, lai izvairītos no sintakses kļūdām.
multi_match vaicājums
multi_match vaicājums ļauj meklēt vairākus laukus vienlaikus, pamatojoties uz atbilstības vaicājumu, un meklēt vienu vairākos laukos vienlaikus:
Bool vaicājums
Bool vaicājumi ir līdzīgi bool filtrēšanai un tiek izmantoti, lai sapludinātu vairākas vaicājuma klauzulas. Atšķirība ir tāda, ka bool filtrs var tieši norādīt, vai atbilstība ir veiksmīga, savukārt bool vaicājums aprēķina katras vaicājuma klauzulas _score (korelācijas rezultāts).
must:: 查询指定文档一定要被包含。 must_not:: Vaicājuma norādītos dokumentus nedrīkst iekļaut.
should:: 查询指定文档,有则可以为文档相关性加分。
Nākamajā vaicājumā tiks konstatēts, ka virsraksta laukā ir "kā nopelnīt miljonus" un lauks "tag" nav atzīmēts kā surogātpasts. Ja tie ir apzīmēti kā "zvaigžņoti" vai to izlaišanas datums ir pirms 2014. gada, tad šie atbilstošie dokumenti būs augstākā līmenī nekā līdzīgas vietnes:
Padoms: Ja zem bool vaicājuma nav obligātas klauzulas, jābūt vismaz vienai klauzulai. Bet, ja ir obligāta klauzula, tad vaicājumu var veikt arī bez nepieciešamības klauzulas.
Aizstājējzīmju vaicājums
Standarta čaulas aizstājējzīmju vaicājumu izmantošana
Tālāk norādītais vaicājums atbilst dokumentiem, kas satur W1F 7HW un W2F 8HW:
Piemēram, šāds vaicājums resursdatora nosaukumam atbilst šādai čaulas aizstājējzīmei:
regexp vaicājums
Pieņemsim, ka vēlaties saskaņot tikai pasta indeksus, kas sākas ar W un kam seko skaitļi. Izmantojot regexp vaicājumus, varat rakstīt sarežģītākus modeļus:
Šī regulārā izteiksme norāda, ka ierakstam jāsākas ar W, kam seko skaitlis no 0 līdz 9, kam seko viena vai vairākas citas rakstzīmes.
Šis piemērs ir viss regulārais sākums ar wxopen
prefiksa vaicājums
Ar kādu rakstzīmi tas sākas, varat vienkāršāk izmantot prefiksu, kā tas ir zemāk redzamajā piemērā:
Frāzes atbilstība
Ja nepieciešams atrast dažus vārdus tuvumā, izmantojiet match_phrase vaicājumu:
Līdzīgi kā atbilstības vaicājumos, match_phrase vaicājums vispirms parsē vaicājuma virkni, lai izveidotu terminu sarakstu. Tas meklēs visus ierakstus, Tomēr tiek saglabāti tikai tie dokumenti, kuros ir visi meklējamie termini, un terminu novietojumiem jābūt blakus. Vaicājums frāzei Quick Fox neatbilst jebkura mūsu dokumentācija, jo nevienā dokumentācijā nav ātro un lodziņu ierakstu blakus viens otram. match_phrase vaicājumu var rakstīt arī kā frāzes tipa atbilstības vaicājumu:
|