public QueryContainer GetSimpleQuery(DotaceSearchResult searchdata) { var query = searchdata.Q; //fix field prefixes //ds: -> Lib.Searching.Rule[] rules = new Lib.Searching.Rule[] { new Lib.Searching.Rule(@"osobaid:(?<q>((\w{1,} [-]{1} \w{1,})([-]{1} \d{1,3})?)) ", "ico"), new Lib.Searching.Rule(@"holding:(?<q>(\d{1,8})) (\s|$){1,}", "ico"), new Lib.Searching.Rule(@"ico:", "prijemce.ico:"), new Lib.Searching.Rule("jmeno:", "prijemce.jmenoPrijemce:"), new Lib.Searching.Rule("projekt:", "nazevProjektu:"), new Lib.Searching.Rule("castka:", "dotaceCelkem:"), //new Lib.Search.Rule("id:","idDotace:"), }; IRule[] irules = new IRule[] { new OsobaId("osobaid:", "ico:"), //new Holding("holdingprijemce:","prijemceIco:" ), //new Holding("holdingplatce:","icoplatce:" ), //new Holding("holdingdodavatel:","icoprijemce:" ), //new Holding("holdingzadavatel:","icoplatce:" ), new Holding(null, "ico:"), new TransformPrefix("ico:", "prijemce.ico:", null), new TransformPrefix("jmeno:", "prijemce.jmenoPrijemce:", null), new TransformPrefix("projekt:", "nazevProjektu:", null), new TransformPrefix("castka:", "dotaceCelkem:", null), //new TransformPrefix("id:","idDotace:",null ), }; string modifiedQ = query; // Search.Tools.FixInvalidQuery(query, queryShorcuts, queryOperators) ?? ""; //check invalid query ( tag: missing value) if (searchdata.LimitedView) { modifiedQ = Lib.Searching.Tools.ModifyQueryAND(modifiedQ, "onRadar:true"); } //var qc = Lib.Search.Tools.GetSimpleQuery<Lib.Data.Smlouva>(query,rules);; var qc = Lib.Searching.SimpleQueryCreator.GetSimpleQuery <Lib.Data.Dotace.Dotace>(query, irules); return(qc); }
public static QueryContainer GetSimpleQuery(VerejnaZakazkaSearchData searchdata) { Lib.Searching.Rule[] rules = new Lib.Searching.Rule[] { new Lib.Searching.Rule(@"osobaid:(?<q>((\w{1,} [-]{1} \w{1,})([-]{1} \d{1,3})?)) ", "ico"), new Lib.Searching.Rule(@"osobaiddodavatel:(?<q>((\w{1,} [-]{1} \w{1,})([-]{1} \d{1,3})?)) ", "icododavatel"), new Lib.Searching.Rule(@"osobaidzadavatel:(?<q>((\w{1,} [-]{1} \w{1,})([-]{1} \d{1,3})?)) ", "icododavatel"), new Lib.Searching.Rule(@"holding:(?<q>(\d{1,8})) ", "ico"), new Lib.Searching.Rule(@"holdingdodavatel:(?<q>(\d{1,8})) ", "icododavatel"), new Lib.Searching.Rule(@"holdingzadavatel:(?<q>(\d{1,8})) ", "icozadavatel"), new Lib.Searching.Rule(@"holdingprijemce:(?<q>(\d{1,8})) ", "icododavatel"), new Lib.Searching.Rule(@"holdingplatce:(?<q>(\d{1,8})) ", "icozadavatel"), new Lib.Searching.Rule("cpv:", "${cpv}"), new Lib.Searching.Rule("oblast:", "${oblast}"), new Lib.Searching.Rule("form:", "${form}"), new Lib.Searching.Rule("zahajeny:1", "stavVZ:<=100"), new Lib.Searching.Rule("ico:", "(zadavatel.iCO:${q} OR dodavatele.iCO:${q}) "), new Lib.Searching.Rule("icododavatel:", "dodavatele.iCO:"), new Lib.Searching.Rule("icoprijemce:", "dodavatele.iCO:"), new Lib.Searching.Rule("icozadavatel:", "zadavatel.iCO:"), new Lib.Searching.Rule("icoplatce:", "zadavatel.iCO:"), new Lib.Searching.Rule("jmenoprijemce:", "dodavatele.jmeno:"), new Lib.Searching.Rule("jmenoplatce:", "zadavatel.jmeno:"), new Lib.Searching.Rule("id:", "id:"), new Lib.Searching.Rule("popis:", "(nazevZakazky:${q} OR popisZakazky:${q}) "), new Lib.Searching.Rule("cena:<=", "(konecnaHodnotaBezDPH:<=${q} OR odhadovanaHodnotaBezDPH:<=${q}) "), new Lib.Searching.Rule("cena:>=", "(konecnaHodnotaBezDPH:>=${q} OR odhadovanaHodnotaBezDPH:>=${q}) "), new Lib.Searching.Rule("cena:<", "(konecnaHodnotaBezDPH:<${q} OR odhadovanaHodnotaBezDPH:<${q}) "), new Lib.Searching.Rule("cena:>", "(konecnaHodnotaBezDPH:>${q} OR odhadovanaHodnotaBezDPH:>${q}) "), new Lib.Searching.Rule("cena:", "(konecnaHodnotaBezDPH:${q} OR odhadovanaHodnotaBezDPH:${q}) "), new Lib.Searching.Rule("zverejneno:\\[", "datumUverejneni:["), new Lib.Searching.Rule("zverejneno:(?=[<>])", "datumUverejneni:${q}"), new Lib.Searching.Rule("zverejneno:(?=\\d)", "datumUverejneni:[${q} TO ${q}||+1d]"), new Lib.Searching.Rule("podepsano:\\[", "datumUzavreniSmlouvy:["), new Lib.Searching.Rule("podepsano:(?=[<>])", "datumUzavreniSmlouvy:${q}"), new Lib.Searching.Rule("podepsano:(?=\\d)", "datumUzavreniSmlouvy:[${q} TO ${q}||+1d]"), new Lib.Searching.Rule("text:", "prilohy.plainTextContent:"), }; IRule[] irules = new IRule[] { new OsobaId("osobaid:", "ico:"), new OsobaId("osobaiddodavatel:", "icododavatel:"), new OsobaId("osobaidzadavatel:", "icozadavatel:"), new Holding("holding:", "ico:"), new Holding("holdingdodavatel:", "icododavatel:"), new Holding("holdingzadavatel:", "icozadavatel:"), new Holding("holdingprijemce:", "icododavatel:"), new Holding("holdingplatce:", "icozadavatel:"), new VZ_CPV(), new VZ_Oblast(), new VZ_Form(), new TransformPrefixWithValue("zahajeny:", "stavVZ:<=100", "1"), new TransformPrefixWithValue("ico:", "(zadavatel.iCO:${q} OR dodavatele.iCO:${q}) ", null), new TransformPrefix("icododavatel:", "dodavatele.iCO:", null), new TransformPrefix("icoprijemce:", "dodavatele.iCO:", null), new TransformPrefix("icozadavatel:", "zadavatel.iCO:", null), new TransformPrefix("icoplatce:", "zadavatel.iCO:", null), new TransformPrefix("jmenoprijemce:", "dodavatele.jmeno:", null), new TransformPrefix("jmenoplatce:", "zadavatel.jmeno:", null), new TransformPrefix("id:", "id:", null), new TransformPrefixWithValue("popis:", "(nazevZakazky:${q} OR popisZakazky:${q}) ", null), new TransformPrefixWithValue("cena:", "(konecnaHodnotaBezDPH:<=${q} OR odhadovanaHodnotaBezDPH:<=${q}) ", "<=\\d"), new TransformPrefixWithValue("cena:", "(konecnaHodnotaBezDPH:>=${q} OR odhadovanaHodnotaBezDPH:>=${q}) ", ">=\\d"), new TransformPrefixWithValue("cena:", "(konecnaHodnotaBezDPH:<${q} OR odhadovanaHodnotaBezDPH:<${q}) ", "<\\d"), new TransformPrefixWithValue("cena:", "(konecnaHodnotaBezDPH:>${q} OR odhadovanaHodnotaBezDPH:>${q}) ", ">\\d"), new TransformPrefixWithValue("cena:", "(konecnaHodnotaBezDPH:${q} OR odhadovanaHodnotaBezDPH:${q}) ", null), new TransformPrefix("zverejneno:", "datumUverejneni:", "[<>]?[{\\[]+"), new TransformPrefixWithValue("zverejneno:", "datumUverejneni:[${q} TO ${q}||+1d]", "\\d+"), new TransformPrefix("podepsano:", "datumUzavreniSmlouvy:", "[<>]?[{\\[]+"), new TransformPrefixWithValue("podepsano:", "datumUzavreniSmlouvy:[${q} TO ${q}||+1d]", "\\d+"), new TransformPrefix("text:", "prilohy.plainTextContent:", null), }; var query = searchdata.Q?.Trim(); string modifiedQ = query; // Search.Tools.FixInvalidQuery(query, queryShorcuts, queryOperators) ?? ""; //check invalid query ( tag: missing value) if (searchdata.Zahajeny) { modifiedQ = Lib.Searching.Tools.ModifyQueryAND(modifiedQ, "zahajeny:1"); } if (!string.IsNullOrWhiteSpace(searchdata.Oblast)) { var oblValue = NormalizeOblastValue(searchdata.Oblast); if (!string.IsNullOrEmpty(oblValue)) { modifiedQ = Lib.Searching.Tools.ModifyQueryAND(modifiedQ, "oblast:" + oblValue); } } //var qc = Lib.Search.Tools.GetSimpleQuery<Lib.Data.VZ.VerejnaZakazka>(modifiedQ, rules); ; //var qc = Lib.Search.SimpleQueryCreator.GetSimpleQuery<Lib.Data.VZ.VerejnaZakazka>(query, irules); var qc = Lib.Searching.SimpleQueryCreator.GetSimpleQuery <Lib.Data.VZ.VerejnaZakazka>(modifiedQ, irules); return(qc); }
public static QueryContainer GetSimpleQuery(InsolvenceSearchResult searchdata) { var query = searchdata.Q; //fix field prefixes //ds: -> Lib.Searching.Rule[] rules = new Lib.Searching.Rule[] { new Lib.Searching.Rule(@"osobaid:(?<q>((\w{1,} [-]{1} \w{1,})([-]{1} \d{1,3})?)) ", "ico"), new Lib.Searching.Rule(@"osobaiddluznik:(?<q>((\w{1,} [-]{1} \w{1,})([-]{1} \d{1,3})?)) ", "icodluznik"), new Lib.Searching.Rule(@"osobaidveritel:(?<q>((\w{1,} [-]{1} \w{1,})([-]{1} \d{1,3})?)) ", "icoveritel"), new Lib.Searching.Rule(@"osobaidspravce:(?<q>((\w{1,} [-]{1} \w{1,})([-]{1} \d{1,3})?)) ", "icospravce"), new Lib.Searching.Rule(@"holding:(?<q>(\d{1,8})) (\s|$){1,}", "ico"), new Lib.Searching.Rule(@"holdindluznik:(?<q>(\d{1,8})) (\s|$){1,}", "icodluznik"), new Lib.Searching.Rule(@"holdingveritel:(?<q>(\d{1,8})) (\s|$){1,}", "icoveritel"), new Lib.Searching.Rule(@"holdingspravce:(?<q>(\d{1,8})) (\s|$){1,}", "icospravce"), new Lib.Searching.Rule("ico:", "(dluznici.iCO:${q} OR veritele.iCO:${q} OR spravci.iCO:${q}) "), new Lib.Searching.Rule("icodluznik:", "dluznici.iCO:"), new Lib.Searching.Rule("icoveritel:", "veritele.iCO:"), new Lib.Searching.Rule("icospravce:", "spravci.iCO:"), new Lib.Searching.Rule("jmeno:", "(dluznici.plneJmeno:${q} OR veritele.plneJmeno:${q} OR spravci.plneJmeno:${q})"), new Lib.Searching.Rule("jmenodluznik:", "dluznici.plneJmeno:"), new Lib.Searching.Rule("jmenoveritel:", "veritele.plneJmeno:"), new Lib.Searching.Rule("jmenospravce:", "spravci.plneJmeno:"), new Lib.Searching.Rule("spisovaznacka:", "spisovaZnacka:"), new Lib.Searching.Rule("id:", "spisovaZnacka:"), new Lib.Searching.Rule("zmeneno:\\[", "posledniZmena:["), new Lib.Searching.Rule("zmeneno:(?=[<>])", "posledniZmena:${q}"), new Lib.Searching.Rule("zmeneno:(?=\\d)", "posledniZmena:[${q} TO ${q}||+1d}"), new Lib.Searching.Rule("zahajeno:\\[", "datumZalozeni:["), new Lib.Searching.Rule("zahajeno:(?=[<>])", "datumZalozeni:${q}"), new Lib.Searching.Rule("zahajeno:(?=\\d)", "datumZalozeni:[${q} TO ${q}||+1d}"), new Lib.Searching.Rule("stav:", "stav:"), new Lib.Searching.Rule("text:", "dokumenty.plainText:"), new Lib.Searching.Rule("texttypdokumentu:", "dokumenty.popis:"), new Lib.Searching.Rule("typdokumentu:", "dokumenty.typUdalosti:"), new Lib.Searching.Rule("oddil:", "dokumenty.oddil:"), }; IRule[] irules = new IRule[] { new OsobaId("osobaid:", "ico:"), new OsobaId("osobaiddluznik:", "icodluznik:"), new OsobaId("osobaidveritel:", "icoveritel:"), new OsobaId("osobaidspravce:", "icospravce:"), new Holding("holding:", "ico:"), new Holding("holdindluznik:", "icoplatce:"), new Holding("holdingveritel:", "icoveritel:"), new Holding("holdingspravce:", "icospravce:"), new TransformPrefixWithValue("ico:", "(dluznici.iCO:${q} OR veritele.iCO:${q} OR spravci.iCO:${q}) ", null), new TransformPrefixWithValue("jmeno:", "(dluznici.plneJmeno:${q} OR veritele.plneJmeno:${q} OR spravci.plneJmeno:${q})", null), new TransformPrefix("icodluznik:", "dluznici.iCO:", null), new TransformPrefix("icoveritel:", "veritele.iCO:", null), new TransformPrefix("icospravce:", "spravci.iCO:", null), new TransformPrefix("jmenodluznik:", "dluznici.plneJmeno:", null), new TransformPrefix("jmenoveritel:", "veritele.plneJmeno:", null), new TransformPrefix("jmenospravce:", "spravci.plneJmeno:", null), new TransformPrefix("spisovaznacka:", "spisovaZnacka:", null), new TransformPrefix("id:", "spisovaZnacka:", null), new TransformPrefix("zmeneno:", "posledniZmena:", "[<>]?[{\\[]+"), new TransformPrefixWithValue("zmeneno:", "posledniZmena:[${q} TO ${q}||+1d}", "\\d+"), new TransformPrefix("zahajeno:", "datumZalozeni:", "[<>]?[{\\[]+"), new TransformPrefixWithValue("zahajeno:", "datumZalozeni:[${q} TO ${q}||+1d}", "\\d+"), new TransformPrefix("stav:", "stav:", null), new TransformPrefix("text:", "dokumenty.plainText:", null), new TransformPrefix("texttypdokumentu:", "dokumenty.popis:", null), new TransformPrefix("typdokumentu:", "dokumenty.typUdalosti:", null), new TransformPrefix("oddil:", "dokumenty.oddil:", null), }; string modifiedQ = query; // Search.Tools.FixInvalidQuery(query, queryShorcuts, queryOperators) ?? ""; //check invalid query ( tag: missing value) if (searchdata.LimitedView) { modifiedQ = Lib.Searching.Query.ModifyQueryAND(modifiedQ, "onRadar:true"); } //var qc = Lib.Search.Tools.GetSimpleQuery<Lib.Data.Insolvence.Rizeni>(modifiedQ, rules); ; var qc = Lib.Searching.SimpleQueryCreator.GetSimpleQuery <Lib.Data.Insolvence.Rizeni>(modifiedQ, irules); return(qc); }