
Java REST client for the SeekStorm vector & lexical search server.
seekstorm_client_java is open source licensed under the Apache License 2.0
java.net.http.HttpClienttransport- Jackson-based JSON mapping
- Custom
apikeyheader support - Helpers for index, document, file, iterator, and search endpoints
mvn testimport com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.seekstorm.client.SeekStormClient;
import com.seekstorm.client.model.SearchRequest;
import com.seekstorm.client.model.SearchResponse;
ObjectMapper mapper = new ObjectMapper();
SeekStormClient client = SeekStormClient.builder()
.baseUrl("http://127.0.0.1:8080")
.apiKey("your-apikey")
.build();
String live = client.live();
System.out.println(live);
JsonNode createIndexRequest = mapper.createObjectNode()
.put("index_name", "demo")
.set("schema", mapper.createArrayNode()
.add(mapper.createObjectNode()
.put("field", "title")
.put("field_type", "Text")
.put("store", true)
.put("index_lexical", true)));
long indexId = client.createIndex(createIndexRequest);
JsonNode document = mapper.createObjectNode()
.put("title", "hello seekstorm");
client.indexDocument(String.valueOf(indexId), document);
client.commitIndex(String.valueOf(indexId));
SearchRequest request = SearchRequest.builder("hello")
.length(5)
.build();
SearchResponse response = client.search(String.valueOf(indexId), request);
System.out.println("Total hits: " + response.countTotal());SeekStormClientis the synchronous entry point for REST calls.SearchRequestsupports lexical, vector, and hybrid query shapes and uses enum-backed fields for result type, query type, rewriting, and search mode.CreateIndexRequestuses enum-backed fields for similarity, tokenizer, stemmer, compression, clustering, and inference.GetIteratorRequestis the iterator payload for paging through documents.GetDocumentRequestlets you request highlights, fields, and distance fields.ApiKeyQuotaRequestandDeleteApiKeyRequestare for API key lifecycle operations.CreateIndexRequestandSchemaFielddescribe index layout and field capabilities.
- Use the demo API key only for local development.
- Call
commitIndex(...)when you need durable results outside realtime search. - Use the raw
JsonNodeoverloads when you want to send server-specific payloads.