Čau Honzo, díky.
Nevylučuju nedostatečný návrh a rád se inspiruju. ;-) Cílem je jednoduše case-insensitive accent-insensitive substring search na hodnotě uvnitř JSONu v pg. Tohle máme v modelu fc_data = JSONField(blank=True, editable=False, default=dict) a jméno osoby dostáváme v Python takhle: fc_data['contactInfo']['fullName'] Takže jméno je zanořený v JSONu. Jména se nemění často a určitě by se dala vytáhnout do formy podobnější vyhledávacímu stroji/lépe indexované tabuli. Napadlo nás, zda by cestou nejmenšího odporu nebylo využití toho, že to je pg typ `jsonb` a Django má už snad umět do JSONu koukat. Zatím jsem nestudoval a je to vcelku specifický případ, tak sonduju, jestli už někdo nevyřešil, případně jak či jakým směrem. psycopg2~=2.7.0 django~=1.11.0 Díky, Vláďa On 6.12.2017 16:04, Honza Král wrote: > Ahoj, > > hledani pomoci __unaccent__icontains nebude nikdy efektivni z definice > - vzdy se bude jednat o full scan na tech datech. > > Muzu se zeptat, na co takovy lookup potrebujes? Hodne silne mi to > zavani nestastnym navrhem kde mas data v klicich misto hodnotach... > > > Honza Král > E-Mail: [email protected] > Phone: +420 606 678585 > > > 2017-12-06 14:25 GMT+01:00 Vláďa Macek <[email protected]>: >> Zdar, >> >> postgres i Django umožňuje fajnově unaccented case insensitive hledání v >> normálních fieldech. Tj. name__unaccent__icontains >> >> Zprovoznil jste někdo efektivní hledání stejného typu v klíčích nativního >> JSONFieldu v novém Djangu? Ideálně trochu čistě bez raw SQL, ale přežil >> bych to. >> >> Díky. :-) >> >> Vláďa -- -- E-mailová skupina [email protected] Správa: http://groups.google.cz/group/django-cs --- Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny django-cs ve Skupinách Google. Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu [email protected]. Chcete-li zobrazit tuto diskusi na webu, navštivte https://groups.google.com/d/msgid/django-cs/65f9b392-5ec3-a564-6618-e8db788e8a07%40sandbox.cz. Další možnosti najdete na adrese https://groups.google.com/d/optout.
