在我的Algolia应用程序中,我必须创建包含 users 的索引。它们都必须有一个uid
和一个username
(沿着其他字段)。我设法实现了对一个索引的搜索。但我如何在两个索引中搜索呢?
我遵循了this教程,但它没有说任何关于搜索多个索引的内容。
我发现了this关于搜索多个索引,但我如何在Flutter中与` Hits Searcher和infinite_scrolling_pagination结合使用。
这是我的设置:
Stream<SearchMetadata> get _searchUsersMetadata =>
_userSearcher.responses.map(
SearchMetadata.fromResponse,
);
final PagingController<int, AlgoliaUser> _pagingController =
PagingController(firstPageKey: 0);
@override
void initState() {
super.initState();
_searchPage.listen((page) {
if (page.pageKey == 0) {
_pagingController.refresh();
}
_pagingController.appendPage(page.items, page.nextPageKey);
}).onError((error) => _pagingController.error = error);
_pagingController.addPageRequestListener(
(pageKey) => _userSearcher.applyState(
(state) => state.copyWith(page: pageKey),
),
);
}
final _userSearcher = HitsSearcher(
applicationID: 'myAppID',
apiKey: 'myApiKey',
indexName: 'users',
);
Stream<HitsPage> get _searchPage => _userSearcher.responses.map(
HitsPage.fromResponse,
);
_onSearchChanged(String query) {
if (_debounce?.isActive ?? false) {
_debounce?.cancel();
}
_debounce = Timer(const Duration(milliseconds: 500), () {
_userSearcher.applyState(
(state) => state.copyWith(
query: _searchTextEditingController.text,
page: 0,
),
);
});
}
1条答案
按热度按时间epggiuax1#
检查www.example.com上的软件包algolia_litepub.dev