Text Indexing in ServiceNow
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
yesterday
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
yesterday
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
yesterday
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)
-
Locate the defining dictionary entry
Findcompany
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 -
Add the attribute
no_text_index=true
Open the dictionary entry (or create a Dictionary override on the child table) → Attributes → New → set No text index = true → Save. ServiceNow+3ServiceNow+3ServiceNow+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
-
-
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/