[{"data":1,"prerenderedAt":366},["ShallowReactive",2],{"{\"path\":[\"blog\",\"elasticsearch-for-regulator-search\"],\"query\":null,\"headers\":{\"Accept\":\"application/json\"}}":3},{"page":4,"templates":228,"_listing_pages":227,"navigation":343,"breadcrumbs":360},{"@id":5,"@type":6,"UID":7,"allow_discussion":8,"blocks":9,"blocks_layout":160,"changeNote":34,"contributors":181,"created":182,"creators":183,"description":185,"effective":186,"exclude_from_nav":8,"expires":187,"id":188,"is_folderish":189,"items":190,"items_total":207,"language":208,"layout":211,"lock":212,"modified":213,"nav_title":187,"next_item":214,"parent":215,"preview_caption_link":187,"preview_image_link":187,"previous_item":222,"relatedItems":223,"review_state":219,"rights":34,"subjects":224,"table_of_contents":187,"title":225,"type_title":221,"version":226,"versioning_enabled":189,"working_copy":187,"working_copy_of":187,"_listing_pages":227},"https://pretagovsite-api.fly.dev/blog/elasticsearch-for-regulator-search","Document","7ebb096f5e6e41c59d7f7ae86d4cffd1",false,{"046b79c8-e032-4d72-8bc1-ef772cd8195d":10,"27ade32a-3f0b-44da-901f-e12272ee71b9":18,"3899626f-892f-4db2-8d14-815e5e11ae61":25,"55152cea-1024-4848-9e72-643a353d35a2":31,"612bcdb4-1e11-4a57-835e-eefb273de510":78,"6e607807-8545-4bac-b5ee-73270913f440":84,"74dd9d15-f184-4849-9269-cd1428c525fd":90,"a083e0b6-8adb-4fd2-bb4b-1fb9f47ca2c8":96,"bbb9126c-4ac2-4963-9055-92518296b5f6":102,"be8ef5ae-0845-49fa-abe4-2813151272a2":108,"bfe09077-44b4-4249-86b1-821673bfc7ea":114,"ccf478fa-fd53-4670-96e6-70394dd3df35":120,"d48b49b1-764a-497f-aa9e-b326ca97e1fd":126,"dd783f81-6367-4dc4-b9a7-e36df9e54171":128,"e503bb1c-8d0f-4cfb-aa75-b32de58cb53e":134,"eb861bba-00de-476a-bdb2-b06299c58078":136,"f2be9515-c04f-4776-960c-b159dcf32c9f":142,"fc6eb264-89f5-4ac7-b10b-60a26d144d52":148,"feec956b-d8c6-4095-b6b9-df7dac206dda":154},{"@type":11,"plaintext":12,"value":13},"slate","Search is a UI problem with a backend underneath. Most regulator search failures we see are UI failures with a perfectly good Elasticsearch cluster behind them.",[14],{"children":15,"type":17},[16],{"text":12},"p",{"@type":11,"plaintext":19,"value":20},"Boost the recent and the official",[21],{"children":22,"type":24},[23],{"text":19},"h2",{"@type":11,"plaintext":26,"value":27},"Regulators publish heterogeneous content: investigation reports, complaints summaries, guidance documents, annual reports, media releases, datasets. A flat search across all of them buries what the user actually wants. We configure facets per content type — date ranges that make sense (\"reports from 2020 onwards\"), classifications relevant to the regulator's subject domain, and language facets for multilingual content.",[28],{"children":29,"type":17},[30],{"text":26},{"@type":32,"align":33,"alt":34,"image_scales":35,"url":77},"image","right","",{"image":36},[37],{"content-type":38,"download":39,"filename":40,"height":41,"scales":42,"size":75,"width":76},"image/png","@@images/image-1034-2ebaba019af25f7aac626b751eafb876.png","Screenshot 2023-08-21 at 2.26.12 pm.png",536,{"icon":43,"large":47,"larger":51,"mini":55,"preview":59,"teaser":63,"thumb":67,"tile":71},{"download":44,"height":45,"width":46},"@@images/image-32-7a60e7349c4f736a61a865e8150ed09e.png",16,32,{"download":48,"height":49,"width":50},"@@images/image-800-69198cfa70898ff90d97c73d1741205f.png",414,800,{"download":52,"height":53,"width":54},"@@images/image-1000-ae85671a8861724b5aa881cd3636b59d.png",518,1000,{"download":56,"height":57,"width":58},"@@images/image-200-ed8d3561d3eccf472728b142e68c13e7.png",103,200,{"download":60,"height":61,"width":62},"@@images/image-400-3e0739b52b5c2c5234add8b37da40df7.png",207,400,{"download":64,"height":65,"width":66},"@@images/image-600-9a102e0854a67bee1eef5be386b39f77.png",311,600,{"download":68,"height":69,"width":70},"@@images/image-128-b3d581c30541a4256f550a03931d1c56.png",66,128,{"download":72,"height":73,"width":74},"@@images/image-64-350a3e527147e79be5caa0d85279b3d7.png",33,64,133010,1034,"https://pretagovsite-api.fly.dev/blog/elasticsearch-for-regulator-search/screenshot-2023-08-21-at-2-26-12-pm.png",{"@type":11,"plaintext":79,"value":80},"Highlighted snippets are mandatory",[81],{"children":82,"type":24},[83],{"text":79},{"@type":11,"plaintext":85,"value":86},"Cross-language search is a separate, harder problem — answering \"what does this regulator say about X\" when the document is in a language the user doesn't read. We solve that via translation memory or, increasingly, via the LLM layer (see our Onyx integration).",[87],{"children":88,"type":17},[89],{"text":85},{"@type":11,"plaintext":91,"value":92},"If your regulator publishes in Welsh, Mandarin, Arabic, or Hindi (and many of them do), stemming and tokenisation matter. Elasticsearch ships per-language analyzers; pick the right one per document language, store the language as a document field, and route queries appropriately.",[93],{"children":94,"type":17},[95],{"text":91},{"@type":11,"plaintext":97,"value":98},"Off-the-shelf Elasticsearch will not give a regulator a good search experience. We know — we've integrated it into several. What follows is what made the difference between \"search box that returns 5,000 results sorted by relevance\" and \"search box that helps a citizen find the regulator's response to their specific complaint type\".",[99],{"children":100,"type":17},[101],{"text":97},{"@type":11,"plaintext":103,"value":104},"Regulators have vocabulary. \"Adverse outcome\" / \"complaint\" / \"incident\" / \"notification\" may all refer to the same regulatory event with different acronyms in different sub-domains. Citizens search using everyday language; the documents use the regulator's terms. A synonym list, maintained by content staff and applied at query time, closes that gap.",[105],{"children":106,"type":17},[107],{"text":103},{"@type":11,"plaintext":109,"value":110},"The default search-result presentation (title + description) gives users no way to assess which of 50 results actually contains the phrase they searched. Highlighted snippets — showing the query terms in context within the result body — are the single largest UX improvement available. Elasticsearch supports this natively via the highlight API; we wire it through into the Volto search results component.",[111],{"children":112,"type":17},[113],{"text":109},{"@type":11,"plaintext":115,"value":116},"After everything above, what makes the biggest difference is the search bar itself. Show recent searches. Show autocomplete suggestions from the actual document corpus. Show \"did you mean\" for typos. Show how many results there are before the user commits to a search.",[117],{"children":118,"type":17},[119],{"text":115},{"@type":11,"plaintext":121,"value":122},"Per-language analyzers",[123],{"children":124,"type":24},[125],{"text":121},{"@type":127},"title",{"@type":11,"plaintext":129,"value":130},"Synonyms and ontology",[131],{"children":132,"type":24},[133],{"text":129},{"@type":32,"align":33,"alt":34,"size":135,"url":34},"l",{"@type":11,"plaintext":137,"value":138},"The work isn't building facets in Elasticsearch — that's the easy part. The work is content modelling: making sure the metadata that supports useful faceting exists on every document, consistently, going back five years. We do that as part of CMS migration projects.",[139],{"children":140,"type":17},[141],{"text":137},{"@type":11,"plaintext":143,"value":144},"\"Most recent guidance\" should outrank \"2014 guidance that mentions the same term more often.\" Boost by recency, especially on guidance-type documents. Boost by document type when authority matters — official policy outranks a media release on the same topic by default.",[145],{"children":146,"type":17},[147],{"text":143},{"@type":11,"plaintext":149,"value":150},"Faceting that knows the content model",[151],{"children":152,"type":24},[153],{"text":149},{"@type":11,"plaintext":155,"value":156},"The non-Elasticsearch wins",[157],{"children":158,"type":24},[159],{"text":155},{"items":161},[162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180],"d48b49b1-764a-497f-aa9e-b326ca97e1fd","55152cea-1024-4848-9e72-643a353d35a2","a083e0b6-8adb-4fd2-bb4b-1fb9f47ca2c8","612bcdb4-1e11-4a57-835e-eefb273de510","be8ef5ae-0845-49fa-abe4-2813151272a2","fc6eb264-89f5-4ac7-b10b-60a26d144d52","3899626f-892f-4db2-8d14-815e5e11ae61","e503bb1c-8d0f-4cfb-aa75-b32de58cb53e","eb861bba-00de-476a-bdb2-b06299c58078","ccf478fa-fd53-4670-96e6-70394dd3df35","74dd9d15-f184-4849-9269-cd1428c525fd","6e607807-8545-4bac-b5ee-73270913f440","dd783f81-6367-4dc4-b9a7-e36df9e54171","bbb9126c-4ac2-4963-9055-92518296b5f6","27ade32a-3f0b-44da-901f-e12272ee71b9","f2be9515-c04f-4776-960c-b159dcf32c9f","feec956b-d8c6-4095-b6b9-df7dac206dda","bfe09077-44b4-4249-86b1-821673bfc7ea","046b79c8-e032-4d72-8bc1-ef772cd8195d",[],"2026-06-02T09:39:59",[184],"admin","What it took to make Elasticsearch actually useful for regulators publishing investigation reports, complaints data, and multi-language guidance.","2026-03-19T10:00:00+00:00",null,"elasticsearch-for-regulator-search",true,[191],{"@id":77,"@type":192,"description":34,"effective":193,"end":187,"getObjSize":194,"head_title":187,"image_field":32,"image_scales":195,"mime_type":38,"nav_title":187,"review_state":187,"start":187,"title":40,"type_title":192},"Image","1969-12-31T00:00:00+00:00","129.9 KB",{"image":196},[197],{"content-type":38,"download":39,"filename":40,"height":41,"scales":198,"size":75,"width":76},{"icon":199,"large":200,"larger":201,"mini":202,"preview":203,"teaser":204,"thumb":205,"tile":206},{"download":44,"height":45,"width":46},{"download":48,"height":49,"width":50},{"download":52,"height":53,"width":54},{"download":56,"height":57,"width":58},{"download":60,"height":61,"width":62},{"download":64,"height":65,"width":66},{"download":68,"height":69,"width":70},{"download":72,"height":73,"width":74},1,{"title":209,"token":210},"English","en","document_view",{"locked":8,"stealable":189},"2026-06-02T09:40:00",{},{"@id":216,"@type":6,"description":34,"effective":217,"end":187,"getObjSize":187,"head_title":187,"image_field":187,"image_scales":218,"mime_type":187,"nav_title":187,"review_state":219,"start":187,"title":220,"type_title":221},"https://pretagovsite-api.fly.dev/blog","2023-08-04T22:10:00+00:00",{},"published","Insights","Page",{},[],[],"Elasticsearch for regulator search","current",{},{"/templates/contact-cta-info":229,"/templates/contact-cta":295},{"@components":230,"@id":247,"@type":6,"UID":248,"allow_discussion":8,"blocks":249,"blocks_layout":271,"changeNote":34,"contributors":274,"created":275,"creators":276,"description":277,"effective":187,"exclude_from_nav":189,"expires":187,"id":278,"is_folderish":189,"items":279,"items_total":280,"language":281,"layout":211,"lock":282,"modified":283,"nav_title":187,"next_item":284,"parent":285,"preview_caption_link":187,"preview_image_link":187,"previous_item":291,"relatedItems":292,"review_state":219,"rights":34,"subjects":293,"table_of_contents":187,"title":294,"type_title":221,"version":226,"versioning_enabled":189,"working_copy":187,"working_copy_of":187},{"actions":231,"aliases":233,"breadcrumbs":235,"contextnavigation":237,"navigation":239,"navroot":241,"types":243,"workflow":245},{"@id":232},"https://pretagovsite-api.fly.dev/templates/contact-cta-info/@actions",{"@id":234},"https://pretagovsite-api.fly.dev/templates/contact-cta-info/@aliases",{"@id":236},"https://pretagovsite-api.fly.dev/templates/contact-cta-info/@breadcrumbs",{"@id":238},"https://pretagovsite-api.fly.dev/templates/contact-cta-info/@contextnavigation",{"@id":240},"https://pretagovsite-api.fly.dev/templates/contact-cta-info/@navigation",{"@id":242},"https://pretagovsite-api.fly.dev/templates/contact-cta-info/@navroot",{"@id":244},"https://pretagovsite-api.fly.dev/templates/contact-cta-info/@types",{"@id":246},"https://pretagovsite-api.fly.dev/templates/contact-cta-info/@workflow","https://pretagovsite-api.fly.dev/templates/contact-cta-info","contactctainfo000000000000000000",{"cta-section":250},{"@type":251,"blocks":252,"blocks_layout":261,"fixed":189,"readOnly":189,"slotId":264,"styles":265,"templateId":269,"templateInstanceId":270},"section",{"cta-btn":253},{"@type":254,"buttonColor":255,"buttonSize":256,"href":257,"title":260},"button","white","btn-lg",[258],{"@id":259},"https://pretagovsite-api.fly.dev/contact-info","Contact us for more information",{"items":262},[263],"cta-btn","cta",{"backgroundColor":266,"padding":267,"textAlign":268},"gradient-8","large","center","/templates/contact-cta-info","tpl-contact-cta-info-def",{"items":272},[273],"cta-section",[],"2026-06-19T18:39:44+00:00",[184],"Reusable contact call-to-action. Edit here to update every page that uses it.","contact-cta-info",[],0,{"title":209,"token":210},{"locked":8,"stealable":189},"2026-06-22T05:55:00+00:00",{},{"@id":286,"@type":287,"description":288,"effective":193,"end":187,"getObjSize":187,"head_title":187,"image_field":187,"image_scales":289,"mime_type":187,"nav_title":187,"review_state":219,"start":187,"title":290,"type_title":287},"https://pretagovsite-api.fly.dev/templates","Folder","Reusable content templates (edited centrally, applied across pages).",{},"Templates",{},[],[],"Contact CTA — More information",{"@components":296,"@id":313,"@type":6,"UID":314,"allow_discussion":8,"blocks":315,"blocks_layout":327,"changeNote":34,"contributors":329,"created":330,"creators":331,"description":277,"effective":187,"exclude_from_nav":189,"expires":187,"id":332,"is_folderish":189,"items":333,"items_total":280,"language":334,"layout":211,"lock":335,"modified":283,"nav_title":187,"next_item":336,"parent":337,"preview_caption_link":187,"preview_image_link":187,"previous_item":339,"relatedItems":340,"review_state":219,"rights":34,"subjects":341,"table_of_contents":187,"title":342,"type_title":221,"version":226,"versioning_enabled":189,"working_copy":187,"working_copy_of":187},{"actions":297,"aliases":299,"breadcrumbs":301,"contextnavigation":303,"navigation":305,"navroot":307,"types":309,"workflow":311},{"@id":298},"https://pretagovsite-api.fly.dev/templates/contact-cta/@actions",{"@id":300},"https://pretagovsite-api.fly.dev/templates/contact-cta/@aliases",{"@id":302},"https://pretagovsite-api.fly.dev/templates/contact-cta/@breadcrumbs",{"@id":304},"https://pretagovsite-api.fly.dev/templates/contact-cta/@contextnavigation",{"@id":306},"https://pretagovsite-api.fly.dev/templates/contact-cta/@navigation",{"@id":308},"https://pretagovsite-api.fly.dev/templates/contact-cta/@navroot",{"@id":310},"https://pretagovsite-api.fly.dev/templates/contact-cta/@types",{"@id":312},"https://pretagovsite-api.fly.dev/templates/contact-cta/@workflow","https://pretagovsite-api.fly.dev/templates/contact-cta","contactcta0000000000000000000000",{"cta-section":316},{"@type":251,"blocks":317,"blocks_layout":322,"fixed":189,"readOnly":189,"slotId":264,"styles":324,"templateId":325,"templateInstanceId":326},{"cta-btn":318},{"@type":254,"buttonColor":255,"buttonSize":256,"href":319,"title":321},[320],{"@id":259},"Contact us for a free review of your project",{"items":323},[263],{"backgroundColor":266,"padding":267,"textAlign":268},"/templates/contact-cta","tpl-contact-cta-def",{"items":328},[273],[],"2026-06-19T18:39:45+00:00",[184],"contact-cta",[],{"title":209,"token":210},{"locked":8,"stealable":189},{},{"@id":286,"@type":287,"description":288,"effective":193,"end":187,"getObjSize":187,"head_title":187,"image_field":187,"image_scales":338,"mime_type":187,"nav_title":187,"review_state":219,"start":187,"title":290,"type_title":287},{},{},[],[],"Contact CTA — Free review",[344,349,352,356],{"label":345,"route":346,"items":347,"cols":348,"width":348},"About","/about",[],2,{"label":220,"route":350,"items":351,"cols":348,"width":348},"/blog",[],{"label":353,"route":354,"items":355,"cols":348,"width":348},"Work","/case-studies",[],{"label":357,"route":358,"items":359,"cols":348,"width":348},"Services","/services",[],{"@id":361,"items":362,"root":365},"https://pretagovsite-api.fly.dev/blog/elasticsearch-for-regulator-search/@breadcrumbs",[363,364],{"@id":216,"title":220},{"@id":5,"title":225},"https://pretagovsite-api.fly.dev",1782108104615]