使用 PostgreSQL trigram 扩展进行模糊搜索
项目描述
PostgreSQL 三元组搜索
这个插件提供了创建字符和文本字段的 GIN 或 GiST 索引的能力,还可以在搜索域中使用搜索运算符%。目前此模块不会更改后端搜索或其他任何内容。它仅提供对外部插件进行模糊搜索的可能性。
安装
PostgreSQL 扩展pg_trgm应该可用。在基于 debian 的发行版中,您必须安装postgresql-contrib模块。
将pg_trgm扩展安装到您的数据库或给您的 postgresql 用户SUPERUSER权限(这允许 odoo 模块将扩展安装到数据库)。
配置
如果安装了odoo模块:
您可以通过 Settings -> Database Structure -> Trigram Index为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') 函数来按相似度排序。这个模块只包含一个基本的实现,它不执行验证并且必须从这个函数开始。例如,您可以按如下方式定义函数:
相似度(%s.name, 'John Mil') DESC" % self.env['res.partner']._table
更多问题请阅读 pg_trgm模块的文档。
已知问题/路线图
修改一般搜索部分(例如在树视图或 many2one 字段中)
通过处理添加更好的订单
错误追踪器
在GitHub 问题上跟踪错误。如果遇到问题,请检查您的问题是否已被报告。如果您首先发现它,请通过提供详细且受欢迎的反馈来帮助我们粉碎它。
学分
图片
Odoo 社区协会:图标。
贡献者
克里斯托夫·吉塞尔 < https://github.com/christophlsa >
乔迪·巴列斯特 < jordi . 芭蕾舞者@高效。com >
蛇咨询服务列兵。有限公司<支持@serpentcs。com >
维护者
该模块由 OCA 维护。
OCA 或 Odoo 社区协会是一个非营利组织,其使命是支持 Odoo 功能的协作开发并促进其广泛使用。
要为本模块做出贡献,请访问https://odoo-community.org。
项目详情
odoo9_addon_base_search_fuzzy -9.0.1.0.0.99.dev14-py2-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 10aba2b441d9eb1b7402891497d700b681a238c9b3c3d1bc38bce8b7f741f916 |
|
| MD5 | ade7c604a205d1c38f3bc271bd80f4c5 |
|
| 布莱克2-256 | d3585c0b9a24003ab980fc7a96eee26e4a1db2104cba2ca209afb5cec41ff8e2 |