Return the Field Configuration

GetFieldConfiguration() returns all fields and their current settings as a FieldProxy[]. This is the same shape used by TrySetFieldConfiguration and the HTTP API.

csharp
FieldProxy[] fields = engine.GetFieldConfiguration();

foreach (var field in fields)
{
    Console.WriteLine(
quot;{field.FieldName} ({field.FieldType})" +
quot; searchable={field.Searchable}" +
quot; filterable={field.Filterable}" +
quot; facetable={field.Facetable}" +
quot; sortable={field.Sortable}" +
quot; weight={field.Weight}"); }

To filter by role:

csharp
var searchable  = fields.Where(f => f.Searchable == true).ToList();
var filterable  = fields.Where(f => f.Filterable == true).ToList();
var facetable   = fields.Where(f => f.Facetable  == true).ToList();

Changing it on a loaded engine

RequiresReload and RequiresReindex say what a change costs before you apply it: a reload, an Index(), or nothing. See Field.