package Ġcom . alg ol ia . search . model . syn onym Ċ Ċ import Ġcom . alg ol ia . search . dsl . DSL Parameters Ċ import Ġcom . alg ol ia . search . serialize . Key Hits PerPage Ċ import Ġcom . alg ol ia . search . serialize . Key Page Ċ import Ġcom . alg ol ia . search . serialize . Key Query Ċ import Ġcom . alg ol ia . search . serialize . KeyType Ċ import Ġcom . alg ol ia . search . serialize . internal . as Json Output Ċ import Ġkotlinx . serialization . Experimental Serialization Api Ċ import Ġkotlinx . serialization . Serializable Ċ import Ġkotlinx . serialization . Serialization Strategy Ċ import Ġkotlinx . serialization . Serializer Ċ import Ġkotlinx . serialization . encoding . Encoder Ċ import Ġkotlinx . serialization . json . build JsonObject Ċ import Ġkotlinx . serialization . json . put Ċ Ċ @ DSL Parameters Ċ @ Serializable ( Syn onym Query . Companion :: class ) Ċ public Ġdata Ġclass ĠSyn onym Query ( ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠEngine Ġdefault : Ġ"" ĊĠĠĠĠ Ġ* ĠThe Ġsearch Ġquery Ġto Ġfind Ġsyn onyms . ĠUse Ġan Ġempty Ġquery Ġto Ġbrowse Ġall Ġthe Ġ[ Syn onym ] Ġof Ġan Ġindex . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġquery : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠEngine Ġdefault : Ġ 0 ĊĠĠĠĠ Ġ* ĠThe Ġpage Ġto Ġfetch Ġwhen Ġb rowsing Ġthrough Ġseveral Ġpages Ġof Ġresults . ĠThis Ġvalue Ġis Ġzero - based . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġpage : ĠInt ? Ġ= Ġnull , ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠEngine Ġdefault : Ġ 1 0 0 ĊĠĠĠĠ Ġ* ĠThe Ġnumber Ġof Ġsyn onyms Ġto Ġreturn Ġfor Ġeach Ġcall . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġhits PerPage : ĠInt ? Ġ= Ġnull , ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠEngine Ġdefault : Ġ[] ĊĠĠĠĠ Ġ* ĠRe strict Ġthe Ġsearch Ġto Ġa Ġspecific Ġ[ Syn onym Type ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġsyn onym Types : ĠList < Syn onym Type >? Ġ= Ġnull Ċ ) Ġ{ ĊĊĠĠĠ Ġ@ Opt In ( Experimental Serialization Api :: class ) ĊĠĠĠ Ġ@ Serializer ( Syn onym Query :: class ) ĊĠĠĠ Ġpublic Ġcompanion Ġobject Ġ: ĠSerialization Strategy < Syn onym Query > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġserialize ( encoder : ĠEncoder , Ġvalue : ĠSyn onym Query ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġbuild JsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . query ?. let Ġ{ Ġput ( Key Query , Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . page ?. let Ġ{ Ġput ( Key Page , Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . hits PerPage ?. let Ġ{ Ġput ( Key Hits PerPage , Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . syn onym Types ?. let Ġ{ Ġtypes Ġ-> Ġput ( KeyType , Ġtypes . join ToString (",") Ġ{ Ġit . raw Ġ}) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġencoder . as Json Output (). encode Json Element ( json ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ