How to do Azure search for text containing quotes(escape single quote)?
Asked Answered
I

1

6

I have a Query for azure search as given below

results = indexClient.Documents.Search<Hotel>("", new SearchParameters { IncludeTotalResultCount = true, Filter = "(Provider eq 'Auction.com' or Provider eq 'Zeroiron' or Provider eq 'Gilbert'sYard')" });

the current Query Gives error because as i have given every provider inside quotes , but Gilbert's Yard already have a Quote inside the provider name itself, so to search for same Query with "Gilbert's yard" what change i have to make in the Query?

The above Query is generated like this,

        var selectedProviders = this.Providers.Where(i => i.IsSearchable).ToList();
            if (selectedProviders.Count > 0)
            {
                if (filterString.Length > 0)
                    filterString.Append(" and ");
                filterString.Append("(");
                var count = 1;
                foreach (var provider in selectedProviders)
                {

                    filterString.Append(($"Provider eq '{provider.ProviderName}'"));

                    if (count < selectedProviders.Count)
                    {
                        filterString.Append(" or ");
                    }
                    count++;
                };
                filterString.Append(")");
            }

And how i should change my Code here?

Ingrid answered 2/5, 2017 at 5:13 Comment(0)
I
7

To achieve this we need to replace single quote with two single quotes.

filterString.Append(($"Provider eq '{provider.ProviderName.replace("'","''")}'"));

this will do the trick for me.

Ingrid answered 2/5, 2017 at 7:14 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.