|
|
Návod zpracovaný také na adrese: https://help.verbis.io/everbis/introduction/
|
|
|
Návod zpracovaný v nápovědě k [eVerbis](https://help.verbis.io/everbis/1000-useful-informations-for-librarians/1040-how-search-works/).
|
|
|
|
|
|
# Globální hledání
|
|
|
|
|
|
Portaro hleda stylem "google", tedy, ze se snazi vyhledat co nejvice zaznamu, jen serazenych podle relevance. Takze na slovo ekonomie vyhleda i zaznamy, jenz maji ekonomii nekde v poznamce, ale bude mnohem nize nez zaznam s nazvem "ekonomie". Pokud byste je pak seradili podle nazvu, dostanete ponekud neodpovidajici vysledky, takze razeni sice nastavitelne je, nicmene to silne nedoporucujeme.
|
|
|
|
|
|
Nastaveni globalniho hledani (vyhledavaci radek v hlavicce katalogu) je pres ini OPAC_SEARCH.VzorGlobalniHledaniPokus1,2,3, kde kazde definuje sablonu pro vyhledavaci dotaz. Pokud se v ramci prvni sablony nenalezne zadny zaznam, Portaro zkusi hledat pomoci druhe sablony a nasledne treti. Toto se ale mozna v blizke dobe zmeni - zustane jen jedna sablona, uvidime.
|
|
|
|
|
|
Sablona definuje:
|
|
|
- Jak se maji do poli rozlozit jednotliva slova z hledaneho vyrazu. Sablona podporuje dve funkce, "whole", ktera vezme cely vyraz a vlozi ho do sablony. Druha funkce je "and", ktera rozlozi jednotliva vyhledavana slova do zavorek oddelenych operatorem AND.
|
|
|
- V jakych polich se ma hledat
|
|
|
- S jakou prioritou - zaznam obsahujici hledany vyraz v nazev bude mit vetsi prioritu nez zaznam, ktery ho ma v poznamce. Priorita se urcuje znakem strisky a cislem. Vetsi cislo znaci vyssi prioritu.
|
|
|
|
|
|
|
|
|
|
|
|
# Specializovaná hledání
|
|
|
## Search query
|
|
|
|
|
|
Pro nastavení např. hledání novinek je třeba vytvářet tzv. search query, což je JSON formát pro vyhledávací kritéria.
|
|
|
Kromě [standardních vyhledávacích fieldů](https://gitlab.kpsys.cz/honza/portaro/-/blob/master/portaro-search/src/main/java/cz/kpsys/portaro/search/query/StaticSearchFields.java) lze použít i přímo lucenovské vyhledávací pole, např P245, nicméně pak query nelze použít při vyhledávání v Z serveru nebo pomocí SQL.
|
|
|
|
|
|
JSON formát je definován například takto:
|
|
|
|
|
|
```JSON
|
|
|
{
|
|
|
"and": [
|
|
|
{
|
|
|
"field": "name",
|
|
|
"startsWithWords": {"value": "karel"}
|
|
|
},
|
|
|
{
|
|
|
"field": "fond",
|
|
|
"in": {"value": [1,3]}
|
|
|
},
|
|
|
{
|
|
|
"or": [
|
|
|
{
|
|
|
"field": "name",
|
|
|
"eqWords": {"value": "novák"}
|
|
|
},
|
|
|
{
|
|
|
"field": "documentYear",
|
|
|
"between": {"from": 2000, "to": 2002}
|
|
|
}
|
|
|
]
|
|
|
}
|
|
|
]
|
|
|
}
|
|
|
```
|
|
|
|
|
|
Příklad bude převeden do lucenu jako
|
|
|
`(PNAZEV:karel* AND (REZS_FOND:1 OR REZS_FOND:3) AND (PNAZEV:novak OR REZS_ROK:[2000 TO 2002]))`
|
|
|
|
|
|
kde:
|
|
|
|
|
|
- do `and` a `or` se vkládají seznamy termů - mezi ně se pak vloží ANDy nebo ORy
|
|
|
- do `field` se nastavuje vyhledávací field (viz výše)
|
|
|
- název druhého (např. `startsWithWords`) pak představuje tzv. matcher. Možné matchery jsou:
|
|
|
- `eq`: přesná hodnota
|
|
|
- `eqWords`: rozdělí hodnotu podle jednotlivých slov, ty pak fungují stejně jako `eq`
|
|
|
- `startsWithWords`: rozdělí hodnotu podle jednotlivých slov, ty pak fungují jako "začíná na"
|
|
|
- `in`: obsahuje výčet přesných hodnot, například idček fondů
|
|
|
- `between`: obsahuje rozsah hodnot, například roků vydání |
|
|
\ No newline at end of file |