任何技术方法都可以,给个方案就好。
除了全文索引,还能怎样?
根据你的数据量看情况选择吧.
要是数据量不大, 直接用 Like就行.
大一点可以用mysql的fulltext, 如果是中文可以用 ngram分词, 这个分词不是太好, 勉强能用.
再大的话, 就把数据用logstash导到 elasticsearch中, 然后搜es, 中文分词有个叫结巴分词的.
在不满足最左匹配原则的情况下,可以使用正则表达式(regex)来进行模糊查询。通过正则表达式可以灵活匹配字段中包含某个字符串的值。
例如,假设要模糊查询姓名字段中包含"张"的记录,可以使用正则表达式"张"来进行匹配。具体的SQL语句可以如下:
SELECT * FROM 表名 WHERE 姓名 REGEXP '张';
这样就可以查询到姓名字段中包含"张"的记录,不需要满足最左匹配原则。
需要注意的是,使用正则表达式进行模糊查询可能会影响查询性能,特别是对于大量数据的表。在实际业务中,可以根据数据量的大小来评估是否适合使用正则表达式进行模糊查询,以及是否需要添加索引来提升查询效率。
3 回答1.6k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
3 回答1.6k 阅读
mysql、pgsql 自带倒排索引,像 elasticsearch 一样
当然,「全文索引」就是用 「倒排索引」 实现的
除了全文索引,还能怎样?—— 无,获取你导到 elasticsearch 去,用 elasticsearch 搜索