dart Flutter Algolia搜索多个索引

gk7wooem  于 2023-06-03  发布在  Flutter
关注(0)|答案(1)|浏览(126)

在我的Algolia应用程序中,我必须创建包含 users 的索引。它们都必须有一个uid和一个username(沿着其他字段)。我设法实现了对一个索引的搜索。但我如何在两个索引中搜索呢?
我遵循了this教程,但它没有说任何关于搜索多个索引的内容。
我发现了this关于搜索多个索引,但我如何在Flutter中与` Hits Searcherinfinite_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,
        ),
      );
    });
  }
epggiuax

epggiuax1#

检查www.example.com上的软件包algolia_litepub.dev

相关问题