跳转到主要内容

在相关字段中输入时更友好的搜索

项目描述

Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

扩展名称搜索功能,以使用更多、更宽松的匹配方法,并允许搜索可配置的附加记录字段。

名称搜索是查找相关记录的查找功能。例如,在新的销售订单中选择客户。

例如,键入“john brown”不会匹配“John M. Brown”。宽松的搜索也会查找包含所有单词的记录,因此“John M. Brown”将是一个匹配项。它还容忍单词的不同顺序,因此搜索“brown john”也有效。

https://raw.githubusercontent.com/OCA/server-tools/11.0/base_name_search_improved/images/image0.png

此外,管理员还可以配置其他字段以进行查找。例如,客户可以根据城市或电话号码进行额外的搜索。

https://raw.githubusercontent.com/OCA/server-tools/11.0/base_name_search_improved/images/image2.png

工作原理

执行常规名称搜索,只有在找不到足够的结果时才会触发附加搜索逻辑。这样,不会在通常会产生结果的搜索上添加开销。

但如果找不到足够的结果,则会尝试附加搜索方法。使用的方法是

  • 尝试在所有附加字段上执行常规搜索

  • 尝试在每个搜索字段上执行有序单词搜索

  • 尝试在每个搜索字段上执行无序单词搜索

找到的所有结果按该顺序显示,希望按相关性顺序显示。

目录

配置

模糊搜索在所有模型上自动启用。请注意,这仅影响相关字段的输入。右上角的搜索框中使用的常规 search() 函数不受影响。

可以在设置 > 技术 > 数据库 > 模型中配置额外的搜索字段,使用“名称搜索字段”字段。

Name Search Fields

使用

只需在任意相关字段中输入,例如销售订单中的客户。

已知问题/路线图

  • 还可以使用模糊搜索,例如Levenshtein距离: https://postgresql.ac.cn/docs/9.5/static/fuzzystrmatch.html

  • 搜索额外字段的列表可能受益于缓存,以提高效率。

  • 此功能也可以用于常规 search 中的 name 字段。

  • 当添加m2o或其他具有改进名称搜索的相关字段时,该改进的名称搜索不会被使用(如果name_search在一个模块中自定义,并在另一个模型中添加该模型的字段,则可以正常工作)。例如,在产品中,如果添加了“公共类别”字段,并将公共类别设置为“parent_id”,那么我们会发现如果按父类别搜索,则没有任何搜索结果,但如果在模块的name_search中实现这个逻辑,则可以正常工作。

错误跟踪器

错误在 GitHub Issues 上跟踪。如有问题,请检查是否已报告您的问题。如果您是第一个发现的,请提供详细的欢迎反馈 feedback 以帮助我们解决问题。

请不要直接联系贡献者以寻求支持或技术问题帮助。

致谢

作者

  • Daniel Reis

  • ADHOC SA

贡献者

其他致谢

本模块的开发得到了以下机构的财务支持:

  • Odoo社区协会

维护者

本模块由OCA维护。

Odoo Community Association

OCA,即Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并推广其广泛应用。

本模块是GitHub上的 OCA/server-tools 项目的组成部分。

欢迎您贡献。有关如何贡献的信息,请访问 https://odoo-community.org/page/Contribute

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

此版本没有可用的源代码分发文件。请参阅生成分发存档的教程

构建分发

由以下组织支持