What fields does the search box search?

  • 1
  • Question
  • Updated 5 years ago
  • Answered
I have a search box on a table. But I'm not clear on what fields are being searched. It doesn't appear to be all fields, so which types are included or excluded, and can I adjust any settings?

Thanks.
Photo of Glenn Elliott

Glenn Elliott, Champion

  • 7,738 Points 5k badge 2x thumb

Posted 5 years ago

  • 1
Photo of Anna Wiersema

Anna Wiersema

  • 10,890 Points 10k badge 2x thumb
Hi Glenn, any first-level field that's text should be searched (including zipcodes, i think).

fields that aren't searched:
  • dates and numbers
  • fields from related/child objects
  • fields in a template field
Photo of Glenn Elliott

Glenn Elliott, Champion

  • 7,738 Points 5k badge 2x thumb
Thanks Anna. I did an experiment and it seems long text areas aren't searched either. Is it possible to do so, or on the roadmap at all? My use case is that I'm storing email messages in long text area and/or rich text area fields, and would love to be able to search the email body.

Cheers,
Glenn.
Photo of Glenn Elliott

Glenn Elliott, Champion

  • 7,738 Points 5k badge 2x thumb
Hi Anna ... I'd love to get some more detail on this if possible. As I alluded to, I have an email object that stores the email body in a rich text area field. When I use the usual Salesforce global search box at the top of the page, it finds any text within the email body, but Skuid search doesn't find it. Is that by design, and might it change any time soon?

Thanks.
Photo of Glenn Elliott

Glenn Elliott, Champion

  • 7,738 Points 5k badge 2x thumb
I've tested this again just now on a different custom object and a different Skuid page and found the same result, that Skuid doesn't appear to search long text fields. I'm on Skuid v3.5. Anyone else seeing that?
Photo of Greg Huete

Greg Huete

  • 2,340 Points 2k badge 2x thumb
Hi Skuids,

I have multiple organizations wondering about this issue.

We have a need to search rich text and long text fields in certain situations, and it doesn't seem like the current release on Skuid does this "out of the box".

Can we get a status update on this?

Thanks again!
Photo of Glenn Elliott

Glenn Elliott, Champion

  • 7,738 Points 5k badge 2x thumb
I'd love to get some clarification on this. Is Skuid expected to search long text fields? I've just tested again now on v3.15.3 and long text fields aren't getting searched. When I take the same field and change it to a text area, it gets searched. Is that intentional?
Photo of Zach McElrath

Zach McElrath, Employee

  • 49,056 Points 20k badge 2x thumb
Basic answer:
Server-side Skuid search, in all of its implementations (table search, lookup/master-detail autocompletes) will search on the following types of Salesforce fields:


  • Text

  • Text Area - short

  • Email

  • Phone

  • Url

  • Lookup

  • Master Detail

  • Picklist

  • Record Id's



Skuid does NOT search on the following field types:


  • Date

  • Datetime

  • Number

  • Currency

  • Text Area - Long

  • Text Area - Rich

  • Boolean



Technical answer:

All forms of Skuid search leverage SOQL (Salesforce Object Query Language), rather than SOSL (Salesforce Object Search Language). For a detailed explanation of the difference between these two, check the official docs. SOSL can search on long text areas, but SOQL cannot. However, there are many limitations to SOSL that made it impractical for us to use it Skuid's search, at least at present, foremost of all its inability to search across lookup and master-detail fields, or to search on picklist and multipicklist fields.

Alternative: Client-side search

One alternative, assuming that you only need to search on records which you have already retrieved in your Models either initially or after Filtering, is to use Client-side Search. You can choose "Client" rather than "Server" from the Search properties of the Table component. What this means is that Skuid will search only on data that it already has in a Model --- it will not go back to the server and search the entire database, then bring its results into the Model. So if you are trying to search across, say, all of the Description fields on all Tasks in your Salesforce, this will not work. But if you have already limited, for instance, your Tasks model to just those Tasks associated with a given Opportunity, and are ensuring that you will always retrieve all of these in your Tasks model (by setting the "Max # of Records (Limit)" property on your Tasks model's Advanced settings to blank / empty), then Client-Side search may be a good option. For one, it will search on ALL field types: including Long Textarea and Rich Textarea. Two, it is much faster than Server-side search (which is saying something!), because no call to the Salesforce server is needed. If you're worried about having too much data to search for Client-Side search to be viable, consider using Filters to pre-funnel the data down to just the subset you need, as Filters still run "server-side", meaning that after a Filter is applied, it will funnel down the Model after doing a full server-side database query. Then you can client-side search on the results.