我在后端使用 Firestore 和 Elasticsearch,在后端使用 Flutter。我设法使用云功能集成了 Firestore 和 Elasticsearch。我不清楚如何将 Flutter 与 Elasticsearch 集成。
我的 Elasticsearch 实例有用户索引,flutter 应该向 Elasticsearch 发送一个查询,要求提供满足查询的用户列表。只有经过身份验证的用户才能发送此类请求。
任何人都知道将 Flutter 与 Elasticsearch 集成的最佳方式。
提前致谢。
答案 0 :(得分:0)
使用这个包
<块引用>视频教程
<块引用>https://www.youtube.com/watch?v=DVfj_z17O2s
示例代码:
import 'package:elastic_client/elastic_client.dart';
Future<void> main() async {
final transport = HttpTransport(url: 'http://localhost:9200/');
final client = Client(transport);
await client.updateDoc(
index: 'my_index',
type: 'my_type',
id: 'my_id_1',
doc: {'some': 'data', 'name': 'Sue', 'distance': 10},
);
await client.updateDoc(
index: 'my_index',
type: 'my_type',
id: 'my_id_2',
doc: {'some': 'data', 'name': 'Bob', 'distance': 20},
);
await client.updateDoc(
index: 'my_index',
type: 'my_type',
id: 'my_id_3',
doc: {'some': 'data', 'name': 'Joe', 'distance': 10},
);
await client.flushIndex(index: 'my_index');
final rs1 = await client.search(
index: 'my_index',
type: 'my_type',
query: Query.term('some', ['data']),
source: true);
print(rs1.toMap());
print('---');
final rs2 = await client.search(
index: 'my_index',
type: 'my_type',
query: Query.term('some', ['data']),
source: [
'some',
'name'
],
sort: [
{'distance': 'asc'},
{'name.keyword': 'asc'}
]);
print(rs2.toMap());
await client.addAlias(index: 'my_index', alias: 'my_index_alias');
await client.updateDoc(
index: 'my_second_index',
type: 'my_type',
id: 'my_id_1',
doc: {'some': 'data', 'name': 'Alice', 'distance': 10},
);
await client.swapAlias(
alias: 'my_index_alias', from: 'my_index', to: 'my_second_index');
final aliases = await client.getAliases(aliases: ['my_index_*']);
print(aliases.map((e) => {'alias': e.alias, 'index': e.index}));
await client.removeAlias(index: 'my_second_index', alias: 'my_index_alias');
await transport.close();
}