Vários de nossos usuários da comunidade solicitaram a adição de um campo de perfil de usuário personalizado para seus nomes de usuário do Fediverse. Isso é fácil de adicionar.
Experimentei tornar este campo pesquisável. Encontrei uma postagem descrevendo como isso funciona, mas minha versão atual do discourse (atualizada) não apresenta uma interface como essa. Vejo resultados no campo de pesquisa rápida (rotulado com o valor, o que é bom) e a pesquisa expandida mostra usuários correspondentes.
Mas… ele não está capturando todas as correspondências. Temos pelo menos mais 3 usuários (incluindo eu) que têm “mastodon” inserido neste campo personalizado. Existe algum tipo de atraso na indexação?
Além disso, eu estava realmente procurando uma maneira de executar uma pesquisa ou uma consulta para gerar uma lista de todos os usuários que inseriram algum valor neste campo (por exemplo, mostre-me todos os usuários com um nome de usuário do fediverse). Isso é um trabalho de consulta personalizada? Como eu faria isso?
SELECT ucf.user_id,
ucf.value,
ucf.updated_at AS reltime$time
FROM user_custom_fields ucf
WHERE ucf.name = 'user_field_1'
AND ucf.value IS NOT NULL
ORDER BY ucf.updated_at DESC
Onde 'user_field_1' seria um campo de usuário personalizado no seu site que você está procurando visualizar. Observe que o Discourse usa user_field_1, user_field_2, user_field_3, etc., como os nomes para os campos de usuário personalizados dentro da tabela user_custom_fields, em vez do nome de texto dos campos na página Customize → User Fields.
Se você quisesse, poderia obter uma lista de todos os nomes dos campos de usuário personalizados no seu site e seu número user_field correspondente com:
SELECT uf.id, uf.name
FROM user_fields uf
Onde o ID do user_field seria o nome user_field_X dentro da tabela user_custom_fields.
Com isso em mente, não tenho certeza por que você não conseguiria pesquisar seus campos de usuário na janela de pesquisa, desde que o campo de usuário seja pesquisável.
Você pode tentar usar o menu de pesquisa avançada e selecionar “Usuários” como o local para pesquisar e ver se você está obtendo os mesmos resultados:
Obrigado Alex, o Plugin Data Explorer funcionou fantasticamente (primeira vez que o usei).
A busca em Usuário não está funcionando. Os valores aqui são nomes de usuário do fediverso, e minha entrada é
@cogdog@mastodon.social
mas não obtenho resultados ao buscar em Usuários pela string ‘mastodon’. Ele não faz correspondências parciais de string? Isso não é muito crítico, e provavelmente desativarei o sinalizador pesquisável para este campo. Eu esperava fornecer uma maneira acessível ao usuário para ver todos os usuários que inseriram um valor para este campo - existe uma opção de busca para a busca geral que pode encontrar entradas que não estão vazias?