Voyager quickstart
For the complete documentation index see: llms.txt
All documentation pages available in markdown.
This quickstart takes about 5-10 minutes. By the end, you will have connected to a cluster, browsed sample data, built a filter, and copied an expression string you can use in your application code.
1. Start Voyager
Launch Aerospike Voyager from your Applications folder, Start menu, or Linux application launcher. On first launch, accept the license agreement and usage-statistics opt-in to reach the Home page.
2. Create a connection
On the Home page, under Get a cluster connected, click Connect cluster. After you save a cluster, add more with Add connection at the bottom of the cluster list in the Data browser. In the dialog, enter a Display name (optional) and the Cluster address as host:port (for example, localhost:3000).
Click Test to verify connectivity, then click Save to keep the profile or Connect to open a session immediately.
3. Load sample data
After connecting, right-click the test namespace in the sidebar, or click its actions menu (⋮), and select Load sample data. Voyager creates 9 sample sets with 600 records across three domains:
- Ad tech: sample_audience, sample_campaign, sample_creative, sample_lineitem
- E-commerce: sample_orders, sample_products
- User data: sample_segment, sample_user_profile, sample_users
Loading takes a few seconds. When it completes, the sets appear in the sidebar and in the namespace view as cards showing the record count for each set.
4. Browse data
Click sample_users in the sidebar to open the set. Records render as cards that expand to show their bins. If a bin contains a nested list or map, click the expand arrow to drill into the structure. Each value shows a type badge, for example string, integer, boolean, map, list, or geojson.
5. Filter records
The filter row between the page controls and the records reads No filters applied. Click its filter icon (Filter records) to open the filter panel. The panel has two tabs: Filters (builder) and Expression (expression editor). Use Clear all to reset.
On the Filters tab:
- Open Field and choose age. The list shows the bins in the loaded records, each with its type, and the record metadata fields you can filter on.
- Choose the operator
> greater than. - Enter the value 30.
- Check that Data type reads integer. Voyager fills it in from the
agebin, so the comparison is numeric, not string. - Click Apply, or press
CMD+ENTERon macOS orCTRL+ENTERon Windows and Linux.
The record browser updates to show only records where age > 30, and the filter row shows the condition as a chip.
6. View the expression
Click the Expression tab. You see the expression string Voyager generated from your filter, checked as you type and confirmed with Expression valid.:
$.age > 30In the Aerospike Expression Language (AEL), the $. prefix refers to a bin, so $.age > 30 keeps the records whose age bin is greater than 30. Type $. in the editor to see suggestions for bins and metadata fields, and press TAB to accept one.
7. Use the expression in your SDK
Copy the expression string: click the Copy expression icon beside the expression preview on the Filters tab, or select the text on the Expression tab. You can paste it directly into your Aerospike SDK code to apply the same filter programmatically.
Java (Aerospike Java SDK):
import com.aerospike.client.sdk.Cluster;import com.aerospike.client.sdk.ClusterDefinition;import com.aerospike.client.sdk.DataSet;import com.aerospike.client.sdk.RecordStream;import com.aerospike.client.sdk.Session;import com.aerospike.client.sdk.policy.Behavior;
try (Cluster cluster = new ClusterDefinition("localhost", 3000).connect()) { Session session = cluster.createSession(Behavior.DEFAULT); DataSet sampleUsers = DataSet.of("test", "sample_users"); RecordStream stream = session.query(sampleUsers).where("$.age > 30").execute(); while (stream.hasNext()) { System.out.println(stream.next().recordOrNull().bins); } stream.close();}Python (Aerospike Python SDK):
import asyncio
from aerospike_sdk import Behavior, ClusterDefinition, DataSet
async def main() -> None: async with await ClusterDefinition("localhost", 3000).connect() as cluster: session = cluster.create_session(Behavior.DEFAULT) sample_users = DataSet.of("test", "sample_users") stream = await session.query(sample_users).where("$.age > 30").execute() async for result in stream: print(result.record.bins) stream.close()
asyncio.run(main())The $.age > 30 string is Aerospike Expression Language (AEL). See the AEL reference for full syntax.
8. Next steps
You have connected to a cluster, explored sample data, built a filter, and seen how expressions translate to SDK code. Continue learning with these guides: