This addon provides the ability to create GIN or GiST indexes of char and text
fields and also to use the search operator %
in search domains. Currently
this module doesn’t change the backend search or anything else. It provides
only the possibility to perform the fuzzy search for external addons.
Table of contents
Installation
- The PostgreSQL extension
pg_trgm
should be available. In debian based distribution you have to install thepostgresql-contrib
module. - Install the
pg_trgm
extension to your database or give your postgresql user theSUPERUSER
right (this allows the odoo module to install the extension to the database).
Configuration
If the odoo module is installed:
- You can define
GIN
andGiST
indexes forchar
andtext
viaSettings -> Database Structure -> Trigram Index
. The index name will automatically created for new entries.
Usage
- You can create an index for the
name
field ofres.partner
. In the search you can use:
self.env['res.partner'].search([('name', '%', 'Jon Miller)])
- In this example the function will return positive result for
John Miller
orJohn Mill
. You can tweak the number of strings to be returned by adjusting the set limit (default: 0.3). NB: Currently you have to set the limit by executing the following SQL statement:
self.env.cr.execute("SELECT set_limit(0.2);")
For further questions read the Documentation of the pg_trgm module.
Known issues / Roadmap
- Modify the general search parts (e.g. in tree view or many2one fields)
- Add better
order by
handling
Bug Tracker
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.
Do not contact contributors directly about support or help with technical issues.
Credits
Contributors
- 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
- Ernesto Tejeda
Maintainers
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.
This module is part of the OCA/server-tools project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.