# Searchable Properties

Searchable properties allow you to define any `String` based properties on a model. They will be searchable via Umbraco UI Builder's list view and entity picker search controls.

You can also use any `String` based property of nested objects of a model, as long as the parent object is not null.

![Search](https://2059272600-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fj6FmBruCSGbXJIJB2aRu%2Fuploads%2Fgit-blob-95bf803bda5eabf31b302234c0de70670865b31c%2Fsearch.png?alt=media\&token=5a5d4fb2-251b-435e-af6f-26b7229babfc)

## Defining searchable properties

### **AddSearchableProperty(Lambda searchablePropertyExpression) : CollectionConfigBuilder\<TEntityType>**

Adds the given property to the searchable properties collection.

```csharp
// Example
collectionConfig.AddSearchableProperty(p => p.FirstName);
collectionConfig.AddSearchableProperty(p => p.Address.Street);
```

## Search Expression Pattern

Up to version 13.1.6, the search was performed using the `StartsWith` method call.\
From 13.1.6 and up, search operations can be performed using the `Contains` method call.

```csharp
// Example
collectionConfig.AddSearchableProperty(p => p.FirstName); // will search for keywords that start with.
collectionConfig.AddSearchableProperty(p => p.FirstName, SearchExpressionPattern.Contains); // will search for keywords that are contained.
```
