Unexpected search results

Hi @Anro, we’ve found that in most projects, it’s not common for CHWs to interact with the search function. It is very possible that CHWs don’t even know about the search feature or that they try it and have a poor experience (slow, inaccurate / unexpected results, etc…) and don’t try it again, but I also think they find that it’s actually just easier to scroll through a few pages of households than it is to conduct a search. The UX could definitely be improved and we’d love to do some more research around this though so if you’d like to help out with that, please let us know (cc: @Nicole_Orlowski)

I’ve got a couple of SQL statements you can run to learn more about how often users are interacting with search (on the Contacts page) in your project. Would you be willing to share this output with us?

(Also, here’s a related post about search telemetry).

“Search” usage - Aggregate by day

SQL - Aggregate by day
SELECT
	telemetry_date,
	count(distinct(meta_user)) AS "# Users who used CHT",
	count(distinct(meta_user)) FILTER (WHERE search_contacts_search_count > 0) AS "# users who searched",
	max(search_contacts_search_count) AS "Max searches this day"
		
FROM
	(
		SELECT
			concat_ws(
			       '-',
			       doc#>>'{metadata,year}',
			       doc#>>'{metadata,month}',
			       doc#>>'{metadata,day}' 
			    )::date as telemetry_date,
			doc#>>'{metadata,user}' AS meta_user,
			COALESCE((doc#>>'{metrics,search:contacts:search,count}')::int,0) AS search_contacts_search_count
	    
		FROM 
		    couchdb_users_meta
		    
		WHERE
			doc->>'type'='telemetry'

	) AS subquery

GROUP BY
	telemetry_date

ORDER BY
	telemetry_date DESC

Sample output

“Search” usage - By user

Aggregate by user
SELECT
	meta_user,
	count(distinct(telemetry_date)) AS "# days used CHT",
	count(distinct(telemetry_date)) FILTER (WHERE search_contacts_search_count > 0) AS "# days used search",	
	min(telemetry_date) FILTER (WHERE search_contacts_search_count > 0) AS "First search",
	max(telemetry_date) FILTER (WHERE search_contacts_search_count > 0) AS "Most recent search" 
			
FROM
	(
		SELECT
			concat_ws(
			       '-',
			       doc#>>'{metadata,year}',
			       doc#>>'{metadata,month}',
			       doc#>>'{metadata,day}' 
			    )::date as telemetry_date,
			doc#>>'{metadata,user}' AS meta_user,
			COALESCE((doc#>>'{metrics,search:contacts:search,count}')::int,0) AS search_contacts_search_count

		FROM 
		    couchdb_users_meta
		    
		WHERE
			doc->>'type'='telemetry'

	) AS subquery

GROUP BY
	meta_user

ORDER BY
	"# days used search" DESC 

Sample output

1 Like