这两天有一位球友,问了我一个关于分类树模糊查询功能如何实现的问题,这个问题非常有代表性,在工作中经常会遇到,现在分享给大家,给大家一个参考。

球友问:三哥,有没有这个需求的demo呢? 感觉有点难写😓

球友接着说:根据关键词匹配名称展示树,最底层为指标内容,关键词可以匹配类别也可以匹配指标,匹配上需要带出上下文所有类别和指标展示树。

我回复:demo没有,但可以提供一下思路。

球友说:我想了一下,大体思路是:

  1. 根据关键字查询分类,得到满足要求的分类,递归获取底层的指标。
  2. 根据关键字查询指标,得到满足要求的指标,反查出所属分类,递归获取顶层的分类。
  3. 把1和2的结果拼到一起。

这个拼感觉有点复杂。

我回复:分类树数据多吗?

球友说:分类应该不多 最底层的指标多,叶子节点多。

我回复:有没有几千个分类?

球友说:没有,几百个最多了。

我回复:

  1. 可以一次性查出所有的分类,动态拼接成树。
  2. 然后根据关键字查询相关指标,追加到树的下一级。
  3. 最后根据关键字过滤一下这棵树。效率应该要好一些,大部分是内存操作。

球友说:那个关键字是既要查树也要查指标,您的意思是第一步分类全查出来,指标用关键字去模糊查出来,拼起来再去过滤掉不符合要求的分类吗?

球友接着说:那这个不符合要求的分类,不能影响到符合要求的分类和指标的上下文,是不是会比较麻烦?

我回复:最后一步不麻烦,前面已经把类别和指标拼接成一棵树了,可以认为都是类别,最后递归根据关键字过滤这棵类别树。

球友说:有道理哦 恍然大悟。我老是把两个孤立开来理解。太好了,太好了,谢谢三哥。

我回复:不客气。

最后修改:2026 年 06 月 06 日
如果觉得我的文章对你有用,请随意赞赏