Flutter搜索功能插件typesense_search的使用
Flutter搜索功能插件typesense_search的使用
安装
要使用typesense_search
插件,请在项目的pubspec.yaml
文件中添加以下依赖:
dependencies:
typesense: ^版本号
然后运行flutter pub get
来安装该依赖。
开始使用
首先,需要实例化TypesenseSearch
服务。以下是一个简单的示例:
final searchService = TypesenseSearch(
apiKey: "YOUR_API_KEY",
host: InternetAddress.loopbackIPv4
);
过滤
要使用过滤功能,可以调用search
方法。以下是一个示例代码:
Future<dynamic> search<T>(String collectionName,
{required Parameters parameters,
required T Function(Map<String, dynamic>) fromJson}) async {
// 实现搜索逻辑
}
搜索结果可以通过以下方式访问:
// 如果结果不是分组请求
print("总项目数: ${apiResponse.found}");
print("面数计数: ${apiResponse.facetCount}");
print("项目列表: ${apiResponse.hits}");
// 如果结果是分组请求
print("总文档数: ${apiResponse.foundDocs}");
print("总分组数: ${apiResponse.found}");
print("面数计数: ${apiResponse.facetCount}");
print("分组项目列表: ${apiResponse.groupedHits}");
示例代码
以下是一个完整的示例代码,展示了如何使用typesense_search
插件进行搜索:
import 'dart:io';
import 'package:typesense/typesense.dart';
void main() async {
// 设置节点信息
final host = InternetAddress.loopbackIPv4.address, protocol = Protocol.http;
final nodes = {
Node(
protocol,
host,
port: 7108,
),
Node.withUri(
Uri(
scheme: 'http',
host: host,
port: 8108,
),
),
Node(
protocol,
host,
port: 9108,
),
};
// 初始化TypesenseSearch对象
final typesenseSearch = TypesenseSearch.withNodes(
apiKey: "YOUR_API_KEY",
nodes: nodes,
numRetries: 3,
connectionTimeout: const Duration(seconds: 2),
);
// 设置搜索参数
final parameters = Parameters(
query: 'marg',
queryBy: 'name',
sortBy: 'name:asc',
);
// 执行搜索
final result = await typesenseSearch.search<String>(
"drinks",
parameters,
fromJson: (json) => json["name"],
);
// 输出搜索结果
print("总项目数: ${result.found}");
print("项目列表: ${result.hits}");
}
更多关于Flutter搜索功能插件typesense_search的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复