Text Indexing in ServiceNow

Francis Xavier
Tera Expert

Hi All,

 

I am trying to disable text indexing on few fields on the CMDB tables by adding no_text_index=true on the attribute.


I have a query here that, if cmdb table is not text indexed, and it has a field "company" on it.

Company field is used by other cmdb tables and those tables are text indexed. Now, I can see company field is text indexed on the child table even though the field is on the cmdb table.

I would like to know if there any any documents available for it.

How to disable text indexing on the company field.

 

Thanks,

Francis Xavier K.

2 REPLIES 2

Rafael Batistot
Tera Sage
Learn how to disable Text Indexing on a field or an entire table in ServiceNow. In this video, I'll walk you through the step-by-step process of disabling text indexing on an entire table and specific fields of the table. You'll learn: - Introduction to the Session - What is Text Indexing? - ...

Ravi Gaurav
Giga Sage
Giga Sage

Hi @Francis Xavier  

Great question. Here’s how text indexing for shared fields like company really works in ServiceNow, and how to turn it off safely.

How Zing decides what to index

  • Text indexing is table-level + field-level. A table must be enabled for Zing text indexing, and each field can be explicitly excluded with a dictionary attribute. ServiceNow+1

  • The field’s behavior is taken from the dictionary entry that defines it. Child tables can override that behavior via a dictionary override. ServiceNow+1

Your scenario (shared company field across CMDB classes)

Even if the base CMDB table has company defined there, child CMDB tables that are text-indexed will index company unless you explicitly exclude it for those children (or at the parent). Use a dictionary override on each child where you want it excluded.

What to do (safe steps)

  1. Locate the defining dictionary entry
    Find company on the table where it is defined (e.g., cmdb_ci). If you want to disable indexing everywhere, add the attribute there. If you only want certain child classes excluded, use overrides on those children. ServiceNow

  2. Add the attribute no_text_index=true
    Open the dictionary entry (or create a Dictionary override on the child table) → AttributesNew → set No text index = true → Save. ServiceNow+3ServiceNow+3ServiceNow+3

  3. Regenerate the text index (to apply the change)

    • Per-table: System Definition → Text Indexes → open table → Regenerate. ServiceNow

    • Single record (faster): use Regenerate text index for one record. ServiceNow
      There are also real-time reindexing options that avoid purging the whole index. ServiceNow

  4. Know the trade-offs
    Global/AISearch relies on Zing; excluding fields can affect findability until reindex completes. ServiceNow+1

Documentation you can cite/share

  • Dictionary attributes (includes no_text_index description). ServiceNow

  • Define / use dictionary overrides (child table can differ from parent). ServiceNow

  • Configure a table for indexing & searching (Zing enablement). ServiceNow

  • Regenerate a text index (table / record). ServiceNow+1

--------------------------------------------------------------------------------------------------------------------------


If you found my response helpful, I would greatly appreciate it if you could mark it as "Accepted Solution" and "Helpful."
Your support not only benefits the community but also encourages me to continue assisting. Thank you so much!

Thanks and Regards
Ravi Gaurav | ServiceNow MVP 2025,2024 | ServiceNow Practice Lead | Solution Architect
CGI
M.Tech in Data Science & AI

 YouTube: https://www.youtube.com/@learnservicenowwithravi
 LinkedIn: https://www.linkedin.com/in/ravi-gaurav-a67542aa/