使用PostgreSQL三合字扩展进行模糊搜索
项目描述
此插件提供创建字符和文本字段的 GIN 或 GiST 索引以及在使用搜索域中使用搜索运算符 % 的能力。目前,此模块不会更改后端搜索或任何其他内容。它只提供对外部插件执行模糊搜索的可能性。
目录
安装
应提供PostgreSQL扩展pg_trgm。在基于debian的发行版中,您必须安装 postgresql-contrib 模块。
将 pg_trgm 扩展安装到数据库或为您的 postgresql 用户授予 SUPERUSER 权限(这允许 odoo 模块将扩展安装到数据库)。
配置
如果已安装 odoo 模块
您可以通过 设置 -> 数据库结构 -> 三合字索引 定义 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 上跟踪。如果在那里尚未报告您的问题,请在那里查看。如果您是第一个发现它的人,请帮助我们通过提供详细和受欢迎的 反馈 来帮助我们。
请不要直接联系贡献者以寻求支持或帮助解决技术问题。
致谢
贡献者
Christoph Giesel <https://github.com/christophlsa>
Jordi Ballester <jordi.ballester@eficent.com>
Serpent Consulting Services Pvt. Ltd. <support@serpentcs.com>
Dave Lasley <dave@laslabs.com>
Vicent Cubells <vicent.cubells@tecnativa.com>
维护者
此模块由OCA维护。
OCA,或Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并促进其广泛使用。
此模块是GitHub上 OCA/server-tools 项目的组成部分。
欢迎您贡献力量。有关如何贡献的详细信息,请访问 https://odoo-community.org/page/Contribute。
项目详情
哈希值 for odoo11_addon_base_search_fuzzy-11.0.1.0.0.99.dev11-py2.py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4049105574797bff72ebb5d7fccb8c77fc395b338f263df816730e2171008747 |
|
MD5 | 4a308c57f6bc78cd487f7cf9c5d11b83 |
|
BLAKE2b-256 | a886aed13ef48cc785645f411e425515ac1fadd68e31fe34c6929e46a8ca45f5 |