... | ... | @@ -15,4 +15,47 @@ Sablona definuje: |
|
|
## 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-core/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. |
|
|
\ No newline at end of file |
|
|
Kromě [standardních vyhledávacích fieldů](https://gitlab.kpsys.cz/honza/portaro/blob/master/portaro-core/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 |