Apache Solr

Úvod do Apache Solr. 2. časť Dopyt Solr

Úvod do Apache Solr. 2. časť Dopyt Solr
Apache Solr [1] je rámec vyhľadávacieho nástroja napísaný v prostredí Java a založený na vyhľadávacej knižnici Lucene [6]. V predchádzajúcom článku sme nastavili Apache Solr na čoskoro vydanom Debian GNU / Linux 11, spustili sme jedno dátové jadro, nahrali ukážkové dáta a demonštrovali sme, ako vykonať základné vyhľadávanie v množine dát pomocou jednoduchého dopyt.

Toto je článok nadväzujúci na predchádzajúci. Pokryjeme, ako spresniť dopyt, formulovať zložitejšie kritériá vyhľadávania s rôznymi parametrami a porozumieť rôznym webovým formulárom stránky dotazu Apache Solr. Budeme tiež diskutovať o tom, ako postprocesovať výsledok vyhľadávania pomocou rôznych výstupných formátov, ako sú XML, CSV a JSON.

Dopytovanie Apache Solr

Apache Solr je navrhnutý ako webová aplikácia a služba, ktorá beží na pozadí. Výsledkom je, že akákoľvek klientská aplikácia môže komunikovať so spoločnosťou Solr odosielaním otázok do nej (zameranie tohto článku), manipuláciou s jadrom dokumentu pridávaním, aktualizáciou a mazaním indexovaných údajov a optimalizáciou základných údajov. Existujú dve možnosti - prostredníctvom palubnej dosky / webového rozhrania alebo pomocou API zaslaním príslušnej žiadosti.

Je bežné používať prvá možnosť na testovacie účely a nie na pravidelný prístup. Obrázok nižšie zobrazuje informačný panel z používateľského rozhrania správy Apache Solr s rôznymi formulármi dotazov vo webovom prehliadači Firefox.

Najskôr z ponuky pod poľom na výber jadra vyberte položku ponuky „Dotaz“. Na nasledujúcom paneli sa zobrazí niekoľko vstupných polí nasledovne:

Kliknutím na tlačidlo Vykonať dopyt sa spustí požadovaná požiadavka. Praktické príklady nájdete nižšie.

Ako druhá možnosť, môžete poslať požiadavku pomocou API. Toto je požiadavka HTTP, ktorú môže na server Apache Solr odoslať ľubovoľná aplikácia. Solr spracuje požiadavku a vráti odpoveď. Špeciálnym prípadom je pripojenie k Apache Solr cez Java API. Tento bol zadaný outsourcingu do samostatného projektu s názvom SolrJ [7] - Java API bez nutnosti pripojenia HTTP.

Syntax dopytu

Syntax dotazu je najlepšie opísaná v [3] a [5]. Rôzne názvy parametrov priamo zodpovedajú názvom vstupných polí vo formulároch vysvetlených vyššie. V nasledujúcej tabuľke je uvedený zoznam plus praktické príklady.

Register parametrov dopytu

Parameter Popis Príklad
q Hlavný parameter dotazu Apache Solr - názvy a hodnoty polí. Ich skóre podobnosti dokumentuje výrazy v tomto parametri. Id: 5
autá: * adilla *
*: X5
časté otázky Výslednú množinu obmedzte na nadmnožinu dokumentov, ktoré zodpovedajú filtru, napríklad definovanému pomocou analyzátora dotazov na rozsah funkcií Model
id, model
začať Ofsety pre výsledky na stránke (začiatok). Predvolená hodnota tohto parametra je 0. 5
riadkov Korekcie výsledkov stránky (koniec). Hodnota tohto parametra je predvolene 10 15
triediť Určuje zoznam polí oddelených čiarkami, na základe ktorých sa majú zoradiť výsledky dotazu model asc
fl Určuje zoznam polí, ktoré sa majú vrátiť pre všetky dokumenty v množine výsledkov Model
id, model
hm Tento parameter predstavuje typ zapisovača odpovedí, ktorý sme chceli zobraziť. Hodnota tohto súboru je predvolene JSON. json
xml

Vyhľadávania sa vykonávajú prostredníctvom požiadavky HTTP GET s reťazcom dopytu v parametri q. Nasledujúce príklady objasnia, ako to funguje. Používa sa curl na odoslanie dotazu do systému Solr, ktorý je nainštalovaný lokálne.

Ďalej môžete definovať svoj vlastný obslužný program požiadaviek, ktorý bude posielať voliteľné parametre požiadavky analyzátoru dotazov, aby bolo možné riadiť, ktoré informácie sa vrátia.

Analyzátory dotazov

Apache Solr používa takzvaný analyzátor dotazov - komponent, ktorý prevádza váš vyhľadávací reťazec na konkrétne pokyny pre vyhľadávací stroj. Analyzátor dotazov stojí medzi vami a dokumentom, ktorý hľadáte.

Solr prichádza s rôznymi typmi syntaktických analyzátorov, ktoré sa líšia v spôsobe spracovania zadaného dotazu. Analyzátor štandardných dotazov funguje dobre pre štruktúrované dotazy, je však menej tolerantný voči syntaktickým chybám. Zároveň sú DisMax aj Extended DisMax Query Parser optimalizované pre dotazy podobné prirodzenému jazyku. Sú určené na spracovanie jednoduchých fráz zadaných používateľmi a na hľadanie jednotlivých výrazov vo viacerých poliach s použitím rôznej váhy.

Okrem toho spoločnosť Solr ponúka aj takzvané funkčné dotazy, ktoré umožňujú kombináciu funkcií s dotazom s cieľom vygenerovať konkrétne skóre relevancie. Tieto analyzátory sa nazývajú analyzátor dotazov na funkcie a analyzátor dotazov na rozsah funkcií. Nasledujúci príklad ukazuje, že druhý z nich vyberie všetky súbory údajov pre „bmw“ (uložené v značke dátového poľa) s modelmi od 318 do 323:

curl http: // localhost: 8983 / solr / cars / query -d '
q = značka: bmw &
fq = model: [318 TO 323] '

Dodatočné spracovanie výsledkov

Posielanie dotazov na Apache Solr je jednou časťou, ale následné spracovanie výsledku vyhľadávania z druhej. Najskôr si môžete vybrať medzi rôznymi formátmi odpovedí - od JSON po XML, CSV a zjednodušeným formátom Ruby. Jednoducho zadajte zodpovedajúci parameter wt v dotaze. Nižšie uvedený príklad kódu to demonštruje na získanie množiny údajov vo formáte CSV pre všetky položky pomocou príkazu curl s únikom &:

zvlnenie http: // localhost: 8983 / solr / cars / dopyt?q = id: 5 \ & wt = csv

Výstupom je zoznam oddelený čiarkami:

Ak chcete získať výsledok ako údaje XML, ale iba dve výstupné polia tvoria a modelujú, spustite nasledujúci dotaz:

curl http: // localhost: 8983 / solr / cars / dopyt?q = *: * \ & fl = značka, model \ & wt = xml

Výstup je iný a obsahuje hlavičku odpovede aj skutočnú odpoveď:

Wget jednoducho vytlačí prijaté dáta na štandardný výstup. To vám umožňuje postprocesovať odpoveď pomocou štandardných nástrojov príkazového riadku. Uvádzame niekoľko jq [9] pre JSON, xsltproc, xidel, xmlstarlet [10] pre XML a csvkit [11] pre formát CSV.

Záver

Tento článok ukazuje rôzne spôsoby odosielania dotazov do Apache Solr a vysvetľuje, ako spracovať výsledok vyhľadávania. V ďalšej časti sa naučíte, ako používať Apache Solr na vyhľadávanie v PostgreSQL, systéme správy relačnej databázy.

O autoroch

Jacqui Kabeta je environmentalistka, zanietená výskumníčka, trénerka a mentorka. Vo viacerých afrických krajinách pracovala v IT priemysle a v prostredí mimovládnych organizácií.

Frank Hofmann je IT vývojár, tréner a autor a najradšej pracuje z Berlína, Ženevy a Kapského Mesta. Spoluautor knihy Debian Package Management Book, ktorá je k dispozícii na stránke dpmb.org

Odkazy a referencie

Kurzor pri písaní v systéme Windows 10 skáče alebo sa pohybuje náhodne
Ak zistíte, že kurzor myši skáče alebo sa pohybuje sám, automaticky a náhodne pri písaní na notebooku alebo počítači so systémom Windows, niektoré z t...
Ako zmeniť smer posúvania myši a touchpadu v systéme Windows 10
Myš a TouchpadNielenže uľahčujú výpočty, ale sú aj efektívnejšie a menej časovo náročné. Nemôžeme si predstaviť život bez týchto zariadení, ale je pra...
Ako zmeniť veľkosť, farbu a schému ukazovateľa myši a kurzora v systéme Windows 10
Ukazovateľ myši a kurzor vo Windows 10 sú veľmi dôležité aspekty operačného systému. Dá sa to povedať aj pre iné operačné systémy, takže v skutočnosti...