用户字段搜索/报告

我们的一些社区用户要求为他们的 Fediverse 用户名添加自定义用户配置文件字段。这很容易添加。

我尝试过让这个字段可搜索。我找到了一篇描述其工作原理的帖子,但我当前版本的 discourse(最新版)没有提供这样的界面。我在快速搜索字段中看到了结果(带有值的标签,这很好),并且扩展搜索显示了匹配的用户。

但是……它没有拾取所有匹配项。我们至少还有 3 位用户(包括我)在此自定义字段中输入了“mastodon”。是否存在某种索引延迟?

另外,我一直在寻找一种方法来运行搜索或查询,以生成一个包含在此字段中输入了某个值的用户列表(例如,显示所有拥有 fediverse 用户名的用户)。这是一个自定义查询工作吗?我该如何做?

可以使用 Data Explorer Plugin 通过类似以下的 SQL 查询来完成:

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

其中 'user_field_1' 是您要查看的站点的自定义用户字段。请注意,Discourse 在 user_custom_fields 表中使用 user_field_1user_field_2user_field_3 等作为自定义用户字段的名称,而不是“Customize → User Fields”页面上字段的文本名称。

如果您想查看站点上所有自定义用户字段名称及其对应的 user_field 编号,可以使用:

SELECT uf.id, uf.name
FROM user_fields uf

其中 user_field 的 ID 将是 user_custom_fields 表中的 user_field_X 名称。

考虑到这一点,我不确定为什么只要用户字段可搜索,您就无法在搜索窗口中搜索您的用户字段。

您可以尝试使用高级搜索菜单,并选择“Users”作为搜索地点,看看是否能获得相同的结果:

2 个赞

谢谢 Alex,Data Explorer 插件效果非常好(这是我第一次使用它)。

“User”下的搜索完全不起作用。这里的值是 fediverse 用户名,我的输入是

  @cogdog@mastodon.social

但当我搜索字符串“mastodon”的用户时,却没有任何结果。它不能进行部分字符串匹配吗?这不是很关键,我可能会关闭此字段的可搜索标志。我希望提供一种用户可访问的方式来查看所有为此字段输入了值的用户——是否有适用于常规搜索的选项可以查找非空条目?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.