Basic Search
- Python SDK
- JavaScript SDK
Copy
from gravixlayer import GravixLayer
client = GravixLayer()
memory = client.memory
# First, add some memories to search
memory.add("I love pizza and Italian food", user_id="alice")
memory.add("User prefers sci-fi movies over horror", user_id="alice")
memory.add("User works as a software engineer", user_id="alice")
memory.add("User likes coffee in the morning", user_id="alice")
print("Added sample memories for searching\n")
# Search finds related memories using semantic understanding
search_queries = ["food preferences", "movie tastes", "work information", "morning routine"]
for query in search_queries:
results = memory.search(query, user_id="alice")
print(f"Search: '{query}'")
print(f"Found {len(results['results'])} memories:")
for i, result in enumerate(results['results'], 1):
print(f" {i}. {result['memory']}")
if 'score' in result:
print(f" Relevance: {result['score']:.3f}")
print()
# Search with limit
limited_results = memory.search("preferences", user_id="alice", limit=2)
print(f"Limited search (max 2 results): Found {len(limited_results['results'])} memories")
for result in limited_results['results']:
print(f"- {result['memory']}")
Copy
Added sample memories for searching
Search: 'food preferences'
Found 2 memories:
1. I love pizza and Italian food
Relevance: 0.892
2. User likes coffee in the morning
Relevance: 0.654
Search: 'movie tastes'
Found 1 memories:
1. User prefers sci-fi movies over horror
Relevance: 0.876
Search: 'work information'
Found 1 memories:
1. User works as a software engineer
Relevance: 0.823
Search: 'morning routine'
Found 1 memories:
1. User likes coffee in the morning
Relevance: 0.745
Limited search (max 2 results): Found 2 memories
- I love pizza and Italian food
- User prefers sci-fi movies over horror
Copy
import { GravixLayer } from 'gravixlayer';
const client = new GravixLayer();
const memory = client.memory;
async function performSearch() {
// First, add some memories to search
await memory.add("I love pizza and Italian food", "alice");
await memory.add("User prefers sci-fi movies over horror", "alice");
await memory.add("User works as a software engineer", "alice");
await memory.add("User likes coffee in the morning", "alice");
console.log("Added sample memories for searching\n");
// Search finds related memories using semantic understanding
const searchQueries = ["food preferences", "movie tastes", "work information", "morning routine"];
for (const query of searchQueries) {
const results = await memory.search(query, "alice");
console.log(`Search: '${query}'`);
console.log(`Found ${results.results.length} memories:`);
results.results.forEach((result, index) => {
console.log(` ${index + 1}. ${result.memory}`);
if (result.score) {
console.log(` Relevance: ${result.score.toFixed(3)}`);
}
});
console.log();
}
// Search with limit
const limitedResults = await memory.search("preferences", "alice", { limit: 2 });
console.log(`Limited search (max 2 results): Found ${limitedResults.results.length} memories`);
limitedResults.results.forEach(result => {
console.log(`- ${result.memory}`);
});
}
performSearch().catch(console.error);
Copy
Added sample memories for searching
Search: 'food preferences'
Found 2 memories:
1. I love pizza and Italian food
Relevance: 0.892
2. User likes coffee in the morning
Relevance: 0.654
Search: 'movie tastes'
Found 1 memories:
1. User prefers sci-fi movies over horror
Relevance: 0.876
Search: 'work information'
Found 1 memories:
1. User works as a software engineer
Relevance: 0.823
Search: 'morning routine'
Found 1 memories:
1. User likes coffee in the morning
Relevance: 0.745
Limited search (max 2 results): Found 2 memories
- I love pizza and Italian food
- User prefers sci-fi movies over horror
- Search “food” → finds “I love pizza”, “User likes coffee”
- Search “movies” → finds “User prefers sci-fi films”
- Search “work” → finds “User is a software engineer”
- Search understands context and meaning, not just exact keywords
Search in Specific Categories
Organize memories by switching to different indexes for faster, more targeted searches:- Python SDK
- JavaScript SDK
Copy
from gravixlayer import GravixLayer
client = GravixLayer()
memory = client.memory
# Add memories to different categories
print("Setting up categorized memories...")
# Add to user preferences
memory.switch_index("user_preferences")
memory.add("User prefers dark mode", user_id="alice")
memory.add("User likes notifications disabled", user_id="alice")
memory.add("User prefers large font size", user_id="alice")
# Add to work info
memory.switch_index("work_info")
memory.add("User works as a software engineer", user_id="alice")
memory.add("User specializes in Python development", user_id="alice")
memory.add("User works remotely", user_id="alice")
# Add to food preferences
memory.switch_index("food_preferences")
memory.add("User loves Italian cuisine", user_id="alice")
memory.add("User is vegetarian", user_id="alice")
memory.add("User dislikes spicy food", user_id="alice")
print("Added memories to different categories\n")
# Search in specific categories
categories = [
("user_preferences", "interface settings"),
("work_info", "programming skills"),
("food_preferences", "dietary restrictions")
]
for index_name, search_query in categories:
memory.switch_index(index_name)
results = memory.search(search_query, user_id="alice")
print(f"Searching '{search_query}' in {index_name}:")
print(f"Found {len(results['results'])} memories:")
for result in results['results']:
print(f" - {result['memory']}")
print()
# Compare: search across all indexes vs specific index
memory.switch_index("gravixlayer_memories") # Default index
all_results = memory.search("user preferences", user_id="alice")
print(f"Search across all indexes: {len(all_results['results'])} results")
memory.switch_index("user_preferences")
specific_results = memory.search("preferences", user_id="alice")
print(f"Search in user_preferences only: {len(specific_results['results'])} results")
Copy
Setting up categorized memories...
✅ Switched to index: user_preferences
✅ Switched to index: work_info
✅ Switched to index: food_preferences
Added memories to different categories
Searching 'interface settings' in user_preferences:
✅ Switched to index: user_preferences
Found 3 memories:
- User prefers dark mode
- User likes notifications disabled
- User prefers large font size
Searching 'programming skills' in work_info:
✅ Switched to index: work_info
Found 2 memories:
- User works as a software engineer
- User specializes in Python development
Searching 'dietary restrictions' in food_preferences:
✅ Switched to index: food_preferences
Found 2 memories:
- User is vegetarian
- User dislikes spicy food
✅ Switched to index: gravixlayer_memories
Search across all indexes: 0 results
✅ Switched to index: user_preferences
Search in user_preferences only: 3 results
Copy
import { GravixLayer } from 'gravixlayer';
const client = new GravixLayer();
const memory = client.memory;
async function searchInCategories() {
// Add memories to different categories
console.log("Setting up categorized memories...");
// Add to user preferences
await memory.add("User prefers dark mode", "alice", { indexName: "user_preferences" });
await memory.add("User likes notifications disabled", "alice", { indexName: "user_preferences" });
await memory.add("User prefers large font size", "alice", { indexName: "user_preferences" });
// Add to work info
await memory.add("User works as a software engineer", "alice", { indexName: "work_info" });
await memory.add("User specializes in Python development", "alice", { indexName: "work_info" });
await memory.add("User works remotely", "alice", { indexName: "work_info" });
// Add to food preferences
await memory.add("User loves Italian cuisine", "alice", { indexName: "food_preferences" });
await memory.add("User is vegetarian", "alice", { indexName: "food_preferences" });
await memory.add("User dislikes spicy food", "alice", { indexName: "food_preferences" });
console.log("Added memories to different categories\n");
// Search in specific categories
const categories = [
{ indexName: "user_preferences", query: "interface settings" },
{ indexName: "work_info", query: "programming skills" },
{ indexName: "food_preferences", query: "dietary restrictions" }
];
for (const { indexName, query } of categories) {
const results = await memory.search(query, "alice", { indexName });
console.log(`Searching '${query}' in ${indexName}:`);
console.log(`Found ${results.results.length} memories:`);
results.results.forEach(result => {
console.log(` - ${result.memory}`);
});
console.log();
}
// Compare: search across all indexes vs specific index
const allResults = await memory.search("user preferences", "alice");
console.log(`Search across all indexes: ${allResults.results.length} results`);
const specificResults = await memory.search("preferences", "alice", {
indexName: "user_preferences"
});
console.log(`Search in user_preferences only: ${specificResults.results.length} results`);
}
searchInCategories().catch(console.error);
Copy
Setting up categorized memories...
Added memories to different categories
Searching 'interface settings' in user_preferences:
Found 3 memories:
- User prefers dark mode
- User likes notifications disabled
- User prefers large font size
Searching 'programming skills' in work_info:
Found 2 memories:
- User works as a software engineer
- User specializes in Python development
Searching 'dietary restrictions' in food_preferences:
Found 2 memories:
- User is vegetarian
- User dislikes spicy food
Search across all indexes: 0 results
Search in user_preferences only: 3 results

