豪~豪 发表于 2024-5-11 10:39:06

CainduranceTX 发表于 2024-5-11 10:35
假如我对某些大型数据表   必须要使用模糊搜索的话,改如何让它保证效率较高

分词搜索、限制搜索范围

willning 发表于 2024-5-11 13:50:13

CainduranceTX 发表于 2024-5-11 09:59
SQLServer
之前是用的前端查询命令,今天尝试用服务端SQL查询,发现在发布后的查询速度都是一样的慢,所 ...

1、确认活字格服务器和数据库服务器的网络连接
2、看执行计划,然后检查索引。这个数据量不应该这么慢

Ps:后端不会比前端慢,而且将来会有更大的优化空间。

CainduranceTX 发表于 2024-5-11 14:29:14

豪~豪 发表于 2024-5-11 10:39
分词搜索、限制搜索范围

有案例么老师

豪~豪 发表于 2024-5-11 14:32:13

CainduranceTX 发表于 2024-5-11 14:29
有案例么老师

没有,一般很少使用

CainduranceTX 发表于 2024-5-11 14:35:25

豪~豪 发表于 2024-5-11 14:32
没有,一般很少使用

那怎么做~~有教程啥的不~

CainduranceTX 发表于 2024-5-11 14:39:49

willning 发表于 2024-5-11 13:50
1、确认活字格服务器和数据库服务器的网络连接
2、看执行计划,然后检查索引。这个数据量不应该这么慢
...

上午在豪总的提示下,把“包含指定字符串”的查询方式改成了“等于”速度就正常了~
但是这样就没有办法模糊搜索了~

豪~豪 发表于 2024-5-11 14:57:29

CainduranceTX 发表于 2024-5-11 14:35
那怎么做~~有教程啥的不~

这一块我也接触的比较少

willning 发表于 2024-5-11 15:12:43

CainduranceTX 发表于 2024-5-11 14:39
上午在豪总的提示下,把“包含指定字符串”的查询方式改成了“等于”速度就正常了~
但是这样就没有办法 ...

如果你需要针对这个场景的高性能模糊搜索的话,有三种办法:
1、 将该场景的数据查询功能做成一个服务端命令,在里面用执行SQL命令,写全文检索的脚本,不用 like,改成freetext。帮助文档:https://learn.microsoft.com/zh-cn/sql/t-sql/queries/freetext-transact-sql?view=sql-server-ver16&redirectedfrom=MSDN
2、修改数据库设计和功能设计,让用户输入或选择关键词,将模糊搜索的体验改成按照关键词搜索的体验。最简单的实现是建立一张关键词表;插入单据数据的时候,让用户选择关键词,如果现有的关键词中没有合适的,用户可以输入一个关键词,关联到单据的同时,插入关键词表;搜索时让用户输入或选择关键词,然后用这个关键词的ID来查出对应的单据
3、 将需要做全文检索的功能独立成一个服务,引入elasticsearch等专门的数据库来处理,然后用json webapi的形式和使用活字格做的主系统集成
页: 1 2 [3]
查看完整版本: 【10】SQL查询命令后台耗时与前端耗时差距很大