Bool-yhteiskysymys: täytyy, pitäisi, must_not
Jos haluamme pyytää jotain vastaavaa kuin "content with BMW, mutta ei in in tag", meidän täytyy käyttää bool federated queryä.
Yhteiskyselyssä käytetään kolmea avainsanaa: täytyy, pitäisi, must_not.
Nämä kolme voidaan ymmärtää näin
must: Asiakirjan on täytettävä ehdot täsmälleen
should: tulisi sisältää useampi kuin yksi ehto, ja jos vähintään yksi ehto täyttyy, tämä asiakirja täyttää sen
must_not:Asiakirjan ei saa täyttää kriteerejä
Virallinen verkkosivuston esittely:https://www.elastic.co/guide/cn/ ... bining-filters.html
Kysely DSL:llä
match_all Kysely
Kaikki asiakirjat voidaan kysyä, ja se on oletuslause ilman kyselyehtoja.
Tätä kyselyä käytetään usein suodattimien yhdistämiseen. Esimerkiksi sinun täytyy hakea kaikki postilaatikot, ja kaikki dokumenttien merkitys on sama, joten saat _score on 1.
Ottelukysely
Vastaavuuskysely on tavallinen kysely, jota käytetään riippumatta siitä, tarvitsetko kokotekstikyselyn vai tarkan kyselyn.
Jos käytät matchia koko tekstikentän kyselyyn, se käyttää analysaattoria jäsentämään kyselyn merkit ennen varsinaista kyselyä:
Jos määrität tarkan arvon match-kohdassa, se hakee annettua arvoa, kun se kohtaa luvun, päivämäärän, totuusarvon tai not_analyzed merkkijonon:
Vinkki: Kun teet tarkkaa vastaavuushakua, on parasta käyttää suodatinlauseita, koska suodatinlauseet välimuistittavat dataa.
Match-kysely voi etsiä vain tarkkaa arvoa, joka määrittää tarkan kentän, ja sinun tarvitsee vain määrittää oikea kentän nimi syntaksivirheiden välttämiseksi.
multi_match Kysely
multi_match kysely antaa sinun hakea useita kenttiä samanaikaisesti vastaavuuden perusteella ja etsiä yhtä kentistä samanaikaisesti:
Bool-kysely
Bool-kyselyt ovat samankaltaisia kuin bool-suodatus ja niitä käytetään useiden kyselylausekkeiden yhdistämiseen. Ero on siinä, että bool-suodatin voi suoraan kertoa, onko vastaavuus onnistunut, kun taas bool-kysely laskee kunkin kyselylausekkeen _score (korrelaatiopisteet).
must:: 查询指定文档一定要被包含。 must_not:: Kyselyn määriteltyjä dokumentteja ei saa sisällyttää.
should:: 查询指定文档,有则可以为文档相关性加分。
Seuraava kysely osoittaa, että otsikkokentässä on "how to make millions" ja "tag"-kenttä ei ole merkitty roskapostiksi. Jos ne on merkitty "tähdellä" tai niiden julkaisupäivä on ennen vuotta 2014, nämä vastaavat asiakirjat ovat korkeammalla tasolla kuin vastaavat sivustot:
Vinkki: Jos bool-kyselyn alla ei ole must-lauseketta, pitäisi olla ainakin yksi "pitäisi-lauseke". Mutta jos on pakolauseke, kysely voidaan tehdä myös ilman tarveehtoa.
Villikorttikysely
Käytä tavallisia shell-villikorttikyselyitä
Seuraava kysely vastaa asiakirjoja, jotka sisältävät W1F 7HW:n ja W2F 8HW:n:
Esimerkiksi seuraava isäntänimikysely vastaa seuraavaa shell-villikorttia:
Regexp-kysely
Oletetaan, että haluat yhdistää vain postinumerot, jotka alkavat W:llä ja seuraavat numeroita. Regexp-kyselyiden avulla voit kirjoittaa monimutkaisempia kuvioita:
Tämä säännöllinen lauseke määrittelee, että merkinnän tulee alkaa W:llä, jota seuraa numero 0–9 ja sen jälkeen yksi tai useampi muu merkki.
Seuraava esimerkki on kaikki säännölliset aloitukset wxopenilla
Etuliitekysely
Millä merkillä se alkaa, voit käyttää etuliitettä yksinkertaisemmin, kuten alla olevassa esimerkissä:
Fraasien yhdistäminen
Kun sinun täytyy löytää muutama sana läheltä, käytät match_phrase kyselyä:
Samankaltaisesti kuin match-kyselyissä, match_phrase kysely ensin jäsentää kyselymerkkijonon muodostaakseen termilistan. Se hakee kaikki merkinnät, Kuitenkin vain asiakirjat, jotka sisältävät kaikki hakutermit, säilytetään, ja termien sijainnit tulisi olla vierekkäin. Haku ilmaisulle Quick Fox ei vastaa Kaikissa dokumentaatioissamme, sillä mikään dokumentaatio ei sisällä nopeita ja laatikkomerkintöjä vierekkäin. match_phrase kysely voidaan myös kirjoittaa tyyppilausekkeen vastaavuutena:
|