Erpnext: Full text search for things like item descriptions, phone numbers, email ids

Created on 21 Oct 2016  路  2Comments  路  Source: frappe/erpnext

  • [x] Ability to select fields in doctype (for full text search)
  • [x] Create a new table - __global_search withdoctype, name, content

    • [x] Add a field "Include in Full Text Search" in DocField

    • [x] Create on install/migrate

    • [x] When the doctype is saved, trigger "build_full_text_search" - this will rebuild content for that doctype (via background event)

  • [x] In document.py update index (maybe in background)

    • [x] Update content for that document in

  • [x] Add global_search_fields in meta, so that they are not evaluated on every insert/update
  • [x] In awesome bar, show options "Search 9899999"
  • [x] Modal for results
  • [x] Bonus: Search in child tables
  • [x] Include in Customize Form and Custom Field
Shortlisted

Most helpful comment

We switched from Oodo (self-hosted free version) to ERPNext (paid version) a few months ago, and we consider this the biggest missing feature in ERPNext: The need to enter "in Customer/Contact/Opportunity/Supplier/Lead/etc" in the search field and not getting incremental results while typing. With Oodo, we could just begin entering the name of a person or company in the search field, and immediately search for all of them and get incremental search results as we were typing more characters.

Please implement this. Some arbitrary suggestions:

  • Use some kind of full text search engine (PostgreSQL, Lucene, etc).
  • Let the user configure which concepts (and which attributes) to search for when not entering "in XXX".

    • Rationale: This way, custom "identification fields" (customer/license/policy numbers etc) can be used.

  • Default the searched concepts/attributes to at least the name field(s) of Customer, Contact, Opportunity, Supplier, Lead, User, Employee, Company, etc (everything that basically represents a person or a company).

    • Rationale: This is what you need when someone calls you and you quickly have to understand the context.

  • Don't show search results that are redundant and could (if really needed) be reached easily from the other search result.

    • For example: Don't show a Lead if the "corresponding" Opportunity is already shown. Don't show the Lead (and the Opportunity) if the corresponding Customer is already shown.

    • Rationale: Otherwise most search results would be duplicated as things get converted from one type to the next.

  • Allow some way to do fuzzy searching.

    • Rationale: When on the phone, it is very annoying to ask a customer to spell their name before you can get to their information.

Thank you! :-D

All 2 comments

We switched from Oodo (self-hosted free version) to ERPNext (paid version) a few months ago, and we consider this the biggest missing feature in ERPNext: The need to enter "in Customer/Contact/Opportunity/Supplier/Lead/etc" in the search field and not getting incremental results while typing. With Oodo, we could just begin entering the name of a person or company in the search field, and immediately search for all of them and get incremental search results as we were typing more characters.

Please implement this. Some arbitrary suggestions:

  • Use some kind of full text search engine (PostgreSQL, Lucene, etc).
  • Let the user configure which concepts (and which attributes) to search for when not entering "in XXX".

    • Rationale: This way, custom "identification fields" (customer/license/policy numbers etc) can be used.

  • Default the searched concepts/attributes to at least the name field(s) of Customer, Contact, Opportunity, Supplier, Lead, User, Employee, Company, etc (everything that basically represents a person or a company).

    • Rationale: This is what you need when someone calls you and you quickly have to understand the context.

  • Don't show search results that are redundant and could (if really needed) be reached easily from the other search result.

    • For example: Don't show a Lead if the "corresponding" Opportunity is already shown. Don't show the Lead (and the Opportunity) if the corresponding Customer is already shown.

    • Rationale: Otherwise most search results would be duplicated as things get converted from one type to the next.

  • Allow some way to do fuzzy searching.

    • Rationale: When on the phone, it is very annoying to ask a customer to spell their name before you can get to their information.

Thank you! :-D

Thanks @nicolasbarbier for your suggestions. Most of these features are ready to be integrated in the 7.3! cc @pratu16x7

Was this page helpful?
0 / 5 - 0 ratings

Related issues

raymondliew1992 picture raymondliew1992  路  4Comments

neilLasrado picture neilLasrado  路  4Comments

gbard picture gbard  路  4Comments

Fredoluka picture Fredoluka  路  3Comments

cradford picture cradford  路  4Comments