Typesense
Dart client library for accessing the HTTP API of Typesense search engine.
Note: This package is still under development. Some existing APIs might change or new APIs might be available in the future.
Installation
Add typesense
as a dependency in your pubspec.yaml file.
dependencies:
typesense: ^0.5.1
Usage
Read the documentation here: https://typesense.org/docs/api/
Tests are also a good place to know how the library works internally: test
Note: When using this library in a user-facing app, please be sure to use an API Key that only allows search operations instead of the master
API key. See keys.dart for an example of how to generate a search only API key.
See Configuration class for a list of all client configuration options.
Examples
import 'dart:io';
import 'package:typesense/typesense.dart';
void main() async {
// Replace with your configuration
final host = InternetAddress.loopbackIPv4.address, protocol = Protocol.http;
final config = Configuration(
// Api key
'xyz',
nodes: {
Node(
protocol,
host,
port: 7108,
),
Node.withUri(
Uri(
scheme: 'http',
host: host,
port: 8108,
),
),
Node(
protocol,
host,
port: 9108,
),
},
numRetries: 3, // A total of 4 tries (1 original try + 3 retries)
connectionTimeout: const Duration(seconds: 2),
);
final client = Client(config);
final searchParameters = {
'q': 'stark',
'query_by': 'company_name',
'filter_by': 'num_employees:>100',
'sort_by': 'num_employees:desc'
};
await client.collection('companies').documents.search(searchParameters);
}
The examples that walk you through on how to use the client: main.dart
Make sure to README beforehand.
Compatibility
Typesense Server | typesense-dart |
---|---|
>= v0.24.0 | >= v0.5.0 |
>= v0.22.0 | >= v0.3.0 |
>= v0.21.0 | >= v0.1.1 |
Contributing
Visit CONTRIBUTING.md
Credits
This library is authored and maintained by our awesome community of contributors: