Názor k článku Sčítání.cz: jak to příště zvládnout lépe aneb úvahy o dnešním IT od ebik - To o čem mluvíte platí až když je...

  • Článek je starý, nové názory již nelze přidávat.
  • 6. 4. 2021 19:28

    ebik

    To o čem mluvíte platí až když je napsaná podstatná část fráze (adresy) a výsledková množina je malá. Problém s sql databází je, když posíláte dotazy, které mají velkou výsledkovou množinu a tu ještě necháváte řadit, abyste vypsali nejlepší výsledky na začátku. To jsou dotazy kdy je napsáno málo písmen - těch je z principu hodně, a přitom se hodně opakují. Jednou z variant je mít predpočítaný index pro našeptávání. Tím je to podobné fulltextu (jen se používá jiný index - indexují se prefixy a ne pouze celá slova).
    Pokud chcete používat sql databázi tak to asi také jde, ale musíte umět dotazy cachovat, abyste právě těmi krátkými a stejnými dotazy nezatěžovali databázi. Obzvlášť, když jsou zdrojová data neměnná, tak se vyplatí mít velkou cache nebo právě předpočítané indexy.

    Jinak zrovna adresy málokdo skloňuje, takže morfologie problém není. unicode issues a podobně se dají řešit normalizací vstupu. Obzvlášť když našeptáváte jen české (a případně slovenské) adresy, a zahraniční necháváte bez našeptání. Takže bohatě stačí vzít adresu jako neutříděnou množinu slov, a našeptávat podle nalezených prefixů v této množině. Lidé často pochopí, že jim stačí z každého slova napsat prvních několik písmen. Horší je to s našeptávačem povolání, protože tam člověk často neví co se od něj očekává - jaký je "oficiální" název jeho povolání. Tam by se naopak hodil fulltext který by matchoval nějak obecněji. (Něco ve stylu "zadam to do googlu a pár prvních odkazů mi prozradí jak se tomu běžně říká".)