让我们假设执行了一次搜索,它错过了索引并执行了一次全表扫描。就本问题而言: SELECT * FROM bigtable WHERE name like '%someone%' 这将需要对name字段执行全表扫描。是否知道在postgres、mysql、h2或sqlite等开源数据库上使用什么字符串搜索算法进行这些全表扫描?我猜这些数据库的每一块都是优化的(即使操作会很慢),所以我想知道在执行这些全表扫描/没有任何类型的索引时使用了什么不同的技术。
我想使我的搜索功能,以更巧妙地工作在拼写错误或产品名称特殊字符的情况下。另一个例子,我们有一个名为"bic close stic“的产品,如果用户搜索"bic close”,我们想要显示它,因为它有一个很接近的匹配。SELECT name, image, sku, description FROM products WHERE name like '%KEYWORD%' AND ....
算法生成给定字符串的所有可能的字母组合,最小可达2个字母
在为不同长度的字符串生成所有可能的字母组合时,我遇到了一个问题。如果我只生成固定长度的排列,这对我来说就不是问题了……但我希望减少字符串的长度,并从最大长度小于原始字符串的字符串的原始字母集获得所有可能的排列。例如,假设我想要字符串长度为2,但我有一个3个字母的字符串“abc”,输出将是: ab ac