跳转到主要内容

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

项目描述

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

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

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

例如,键入“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

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

  • 此功能还可以用于常规 searchname 字段。

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

错误跟踪器

错误在 GitHub Issues 上跟踪。如有问题,请检查是否已报告您的问题。如果是您首先发现的,请通过提供详细和受欢迎的 反馈 来帮助我们解决它。

请勿直接联系贡献者以获取支持或技术问题的帮助。

鸣谢

作者

  • 丹尼尔·里斯

  • ADHOC SA

贡献者

其他信用

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

  • Odoo社区协会

维护者

此模块由OCA维护。

Odoo Community Association

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

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

欢迎您贡献力量。要了解如何贡献,请访问 https://odoo-community.org/page/Contribute

项目详情


下载文件

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

源代码发行版

此版本没有提供源代码发行版文件。有关教程,请参阅 生成发行版存档

构建发行版