Trouble making search case-insensitive

Hi All - I have a ‘search bar’ to filter a table’s display based on the search text (such as a user’s name). I’m running into the problem however that the search is case sensitive (see screenshot below). I’ve considered two solutions, but neither seems to work:

  • Option A: Use the ‘Contains keyword’ search instead. → Unfortunately, ‘contains keyword’ is not available as an option, even though I’ve confirmed the data type for owner_name is initialized as text. Perhaps they haven’t implemented contains keywords for tables yet
  • Option B: Match the cases Could set owner_name to lower case and Input Filter name’s value to lower case → unfortunately, I’m not given the option to perform operations on owner_name

Any suggestions?

There should be no difference between repeating group and table elements in terms of data source constraints. What operators do you have available for owner_name field?

Screenshot 2024-03-18 at 23.44.52

P.S. Also what do you mean by this?

I think he means, you can’t format the fields in the data being searched which @darin is correct that is not doable.

@darin An easy solution would be to store the owner_name as lowercase and when displaying owner_name in a page make it Capital Case or whatever format you want.

Alternatively, store the owner name and any other search fields in the slug.

Thanks @artemzheg and @code-escapee ! Yes @code-escapee is correct in what I meant.

Two updates:

  1. I performed a similar workaround to what @code-escapee suggested, creating a second field in Airtable called “owner_lowercase” to use for the filter
  2. MORE interestingly, once I did that, it also allowed the use of contains keyword. So it doesn’t allow keyword contains on the original owner_name field, but DOES work on the owner_lowercase field. And I know why - see below

I think I know the issue here, having encountered a similar issue in other scenarios. I’ll report it here in case anyone else runs into the same: the problem is that in airtable, the owner_name field is a lookup in another table. The way that Bubble currently implements the Airtable API, this creates a few bugs (which I’ve just reported), such as the ‘contains keyword’ bug.

In other words:

  • Even if a field is initialized as text/number, if it is a lookup field in airtable, it is not treated as text/number consistently in Bubble
  • The current workaround is, in the airtable table of interest, create a duplicate ‘local’ field with a formula that just repeats the desired field locally. It then behaves as it should in bubble.

Hope that helps others who encounter this in future!