使用PostgreSQL trigram扩展进行模糊搜索
项目描述
PostgreSQL Trigram搜索
此插件提供了创建char和text字段的GIN或GiST索引的能力,并可以在搜索域中使用搜索运算符%。目前此模块不会更改后端搜索或其他任何内容。它仅提供了对外部插件执行模糊搜索的可能性。
安装
PostgreSQL扩展pg_trgm应该是可用的。在基于debian的发行版中,您必须安装postgresql-contrib模块。
将pg_trgm扩展安装到您的数据库中,或将您的postgresql用户赋予SUPERUSER权限(这允许odoo模块将扩展安装到数据库中)。
配置
如果已安装odoo模块
您可以通过“设置 -> 数据库结构 -> Trigram索引”定义char和text的GIN和GiST索引。新条目的索引名称将自动创建。
使用
您可以为res.partner的name字段创建索引。
在搜索中,您可以
self.env['res.partner'].search([('name', '%', 'Jon Miller)])
在这个例子中,该函数将返回针对John Miller或John Mill的阳性结果。
您可以通过调整设置限制(默认:0.3)来调整返回字符串的数量。注意:目前您必须通过执行以下SQL语句来设置限制
self.env.cr.execute("SELECT set_limit(0.2);")
另一个有趣的功能是在order参数中使用similarity(column, 'text')函数按相似度排序。该模块只包含一个基本的实现,不执行验证,必须从这个函数开始。例如,你可以定义函数如下
similarity(%s.name, 'John Mil') DESC" % self.env['res.partner']._table
有关进一步的问题,请参阅pg_trgm模块的文档。
已知问题/路线图
修改通用搜索部分(例如,在树视图或many2one字段中)
增加更好的order by处理
错误追踪器
错误在GitHub Issues上进行跟踪。如果遇到问题,请检查是否已经报告了您的问题。如果是您首先发现的,请通过提供详细和受欢迎的反馈来帮助我们解决这个问题。
致谢
图片
Odoo社区协会:图标。
贡献者
Christoph Giesel <https://github.com/christophlsa>
维护者
此模块由OCA维护。
OCA,或Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并促进其广泛使用。
要为此模块做出贡献,请访问https://odoo-community.org。
项目详情
odoo8_addon_base_search_fuzzy-8.0.1.0.0.99.dev32-py2-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5f461079e8892c348ab45b1e1df7b200f6ef6f1c10648f3d7fd43c8612b00aa0 |
|
MD5 | d4d19129cc59171db1a12fb56617af7b |
|
BLAKE2b-256 | a9c91fa2ae837156802e88ef59074d32296f4b1fae77f8ab86ae993b94bc5f16 |