gpt4 book ai didi

python - 允许用户搜索项目的最佳方式是什么

转载 作者:行者123 更新时间:2023-11-30 22:44:01 25 4
gpt4 key购买 nike

我的应用程序中有一个搜索功能,允许用户搜索产品。目前查询是

从标题为“%search_term%”的产品中选择 *

这是一种快速而巧妙的实现方式。我现在想改进这一点,想知道我该如何做到这一点。

三个简短的例子

  1. 能够搜索复数。

如果用户搜索 apples,我的产品标题可能是 Golden Delicious Apple。由于复数形式,该行不会被返回。

  1. 当一些词可以是一个/两个词时

我的产品标题可能是 Lemon Cupcakes 但如果用户搜索 cup cakes

  1. 如果用户搜索 apples and lemons 那么我应该返回示例 1 和 2 中的两行还是什么都不返回?什么是最佳实践。

仅供引用,我正在使用 python 和 peewee。我可以想出如何做到这一点的想法,但它很快就会变得非常复杂。

最佳答案

好吧,根据您使用的数据库,您有几个选择。

SQLite 有一个非常好的全文搜索扩展,支持词干提取(规范化复数形式等)。 Peewee 对 SQLite FTS 有丰富的支持:

Postgresql 通过 tsvector 数据类型也有全文。 Peewee 也支持这个:

最后,MySQL 还支持全文搜索,虽然我没有使用 Peewee 进行过试验,但我很确定它应该开箱即用:


关于问题 2,“cup cakes” -> “cupcakes”,我不确定在这种情况下最好的解决方案是什么。

对于问题 3,我知道 SQLite 会正确处理查询中的 bool 表达式,例如“apples AND lemons”将匹配包含两者的文档,而“apples OR lemons”将匹配包含一个或另一个的文档。我想 postgres 和 mysql 也会这样做。

关于python - 允许用户搜索项目的最佳方式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30186687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com