# Discovery & Search

Implementing business discovery in your AI platform.

## Search Capabilities

AIDP provides powerful search capabilities optimized for AI platforms:

* **Natural Language**: Process user queries in natural language
* **Contextual**: Understand user intent and context
* **Personalized**: Leverage session data for personalization
* **Real-Time**: Access up-to-date business information

***

## Search Implementation

### Basic Search

```typescript
const results = await aidp.search({
  query: userQuery,
  location: userLocation,
});
```

### Advanced Search

```typescript
const results = await aidp.search({
  query: userQuery,
  location: userLocation,
  category: 'restaurants',
  filters: {
    verified: true,
    openNow: true,
  },
  sessionId: userSessionId,
  limit: 10,
});
```

***

## Query Understanding

### Intent Extraction

Extract user intent from queries:

```typescript
function extractIntent(query: string) {
  const intents = {
    discovery: /find|search|looking for|where/i,
    comparison: /compare|vs|versus|better/i,
    specific: /hours|phone|address|location/i,
  };

  for (const [intent, pattern] of Object.entries(intents)) {
    if (pattern.test(query)) {
      return intent;
    }
  }

  return 'general';
}
```

### Entity Recognition

Extract entities from queries:

```typescript
function extractEntities(query: string) {
  return {
    businessType: extractBusinessType(query),
    location: extractLocation(query),
    features: extractFeatures(query),
    timeContext: extractTimeContext(query),
  };
}
```

***

## Response Generation

### Format Recommendations

```typescript
function formatRecommendation(business: Business): string {
  let response = `${business.name} is a great choice. `;
  response += `${business.description}\n\n`;

  if (business.aiExclusiveContent?.insiderTips) {
    response += `💡 Insider tip: ${business.aiExclusiveContent.insiderTips[0]}\n\n`;
  }

  response += `📍 ${business.address.street}, ${business.address.city}\n`;
  response += `📞 ${business.phone}\n`;

  return response;
}
```

***

## Personalization

### Session-Based

```typescript
const results = await aidp.search({
  query: userQuery,
  sessionId: userSessionId, // Enables personalization
});
```

### User Preferences

```typescript
const results = await aidp.search({
  query: userQuery,
  context: {
    preferences: userPreferences,
    history: userHistory,
  },
});
```

***

**Next**: [Analytics & Tracking →](https://amistan.gitbook.io/aidp-docs/for-ai-platform-developers/analytics)
