Create Semantic Search View

View: Create Semantic Search View

User Intent

"I want to create a reusable search configuration for semantic queries"

Operation

  • SDK Method: graphlit.createView()

  • GraphQL: createView mutation

  • Entity Type: View

  • Common Use Cases: Saved search configurations, preset filters, reusable query templates

TypeScript (Canonical)

import { Graphlit } from 'graphlit-client';
import { EntityState, SearchTypes } from 'graphlit-client/dist/generated/graphql-types';

const graphlit = new Graphlit();

// Create semantic search view
const viewInput: ViewInput = {
  name: 'Product Documentation Search',
  state: EntityState.Enabled
};

const response = await graphlit.createView(viewInput);
const viewId = response.createView.id;

console.log(`View created: ${viewId}`);

// Use view in queries (views configure search behavior)
// Note: View functionality depends on your Graphlit configuration
const searchResults = await graphlit.queryContents({
  search: 'API authentication',
  searchType: SearchTypes.Hybrid
});

console.log(`Found ${searchResults.contents.results.length} results`);

Create view (snake_case)

view_input = input_types.ViewInput( name="Product Documentation Search", state=enums.EntityState.ENABLED )

response = await graphlit.createView(view_input) view_id = response.create_view.id

print(f"View created: {view_id}")


**C#**:
```csharp
using Graphlit;

var client = new Graphlit();

// Create view (PascalCase)
var viewInput = new ViewInput {
    Name = "Product Documentation Search",
    State = EntityState.Enabled
};

var response = await graphlit.CreateView(viewInput);
var viewId = response.CreateView.Id;

Console.WriteLine($"View created: {viewId}");

Parameters

ViewInput (Required)

  • name (string): View name

  • state (EntityState): View state

    • ENABLED or DISABLED

Response

{
  createView: {
    id: string;           // View ID
    name: string;         // View name
    state: EntityState;   // View state
    creationDate: Date;   // Creation timestamp
  }
}

Developer Hints

Views for Preset Configurations

Views are used to create reusable search configurations:

// Create view for specific search context
const view = await graphlit.createView({
  name: 'Customer Support Search',
  state: EntityState.Enabled
});

// Views can be referenced in queries
// Actual behavior depends on your Graphlit configuration

Important: Views are organizational entities for search configuration management.

View Management

// Create views for different search contexts
const views = {
  docs: await graphlit.createView({
    name: 'Documentation Search',
    state: EntityState.Enabled
  }),
  
  support: await graphlit.createView({
    name: 'Support Articles',
    state: EntityState.Enabled
  }),
  
  internal: await graphlit.createView({
    name: 'Internal Knowledge Base',
    state: EntityState.Enabled
  })
};

console.log('Created search views:');
Object.values(views).forEach(v => {
  console.log(`- ${v.createView.name} (${v.createView.id})`);
});

Variations

1. Basic View

Create simple view:

const view = await graphlit.createView({
  name: 'My Search View',
  state: EntityState.Enabled
});

console.log(`View ID: ${view.createView.id}`);

2. Multiple Views

Create views for different purposes:

const views = [
  { name: 'Product Docs', state: EntityState.Enabled },
  { name: 'API Reference', state: EntityState.Enabled },
  { name: 'Tutorials', state: EntityState.Enabled }
];

for (const viewConfig of views) {
  const view = await graphlit.createView(viewConfig);
  console.log(`Created: ${view.createView.name}`);
}

3. Disabled View

Create but don't enable immediately:

const view = await graphlit.createView({
  name: 'Future Search Config',
  state: EntityState.Disabled
});

// Enable later with updateView()

Common Issues

Issue: Not sure how to use views Solution: Views are organizational entities. Check your Graphlit configuration for view-specific features.

Issue: View already exists error Solution: View names must be unique. Use different name or query existing views first.

Production Example

Create view system:

// Create views for different search contexts
const searchViews = [
  'Technical Documentation',
  'User Guides',
  'API Reference',
  'Troubleshooting',
  'Release Notes'
];

const createdViews: string[] = [];

for (const viewName of searchViews) {
  const view = await graphlit.createView({
    name: viewName,
    state: EntityState.Enabled
  });
  
  createdViews.push(view.createView.id);
  console.log(` Created view: ${viewName}`);
}

console.log(`\nCreated ${createdViews.length} search views`);

Last updated

Was this helpful?