Python 允许用户搜索项目的最佳方式是什么
我的应用程序中有一个搜索功能,允许用户搜索产品。当前查询是Python 允许用户搜索项目的最佳方式是什么,python,mysql,search,Python,Mysql,Search,我的应用程序中有一个搜索功能,允许用户搜索产品。当前查询是 从标题为“%search\u term%”的产品中选择* 这是一种快速而粗糙的实现方法。我现在想改进这个,想知道我如何才能做到这一点 三个简短示例 能够搜索复数 我对该产品的标题可能是Golden Delicious Apple,如果用户搜索apples。由于复数形式,该行将不会返回 当某些单词可能是一个或两个单词时 我的产品标题可能是柠檬杯蛋糕,但如果用户搜索杯蛋糕 如果用户搜索苹果和柠檬,那么我应该返回示例1和2中的两行还是什么也不
从标题为“%search\u term%”的产品中选择*
这是一种快速而粗糙的实现方法。我现在想改进这个,想知道我如何才能做到这一点
三个简短示例
Golden Delicious Apple
,如果用户搜索apples
。由于复数形式,该行将不会返回
柠檬杯蛋糕
,但如果用户搜索杯蛋糕
苹果和柠檬
,那么我应该返回示例1和2中的两行还是什么也不返回?什么是最佳实践仅供参考,我正在使用python和peewee。我可以想出一些方法,但很快就会变得非常复杂。好吧,根据您使用的数据库,您有几个选择 SQLite有一个非常好的全文搜索扩展,支持词干分析(规范复数形式等)。Peewee对SQLite FTS有丰富的支持:
tsvector
数据类型提供全文。Peewee也支持这一点:
- 关于postgresql搜索的好文章:
关于问题2,“杯形蛋糕”->“杯形蛋糕”,我不确定在这种情况下最好的解决方案是什么 对于问题3,我知道SQLite将正确处理查询中的布尔表达式,例如,“苹果和柠檬”将匹配包含两者的文档,而“苹果或柠檬”将匹配包含其中一个的文档。我想postgres和mysql也会这么做