0

正如您在下面的代码中看到的,我制作了 2 个自定义小部件,一个用于搜索,一个用于显示结果,但我无法增加返回结果的限制。当页面加载时,它会自动发出请求并检索默认结果而无需查询。

我们有超过 500 多个结果都必须显示在 UI 上,我无法在任何地方修改结果的限制。限制始终为 200。作为后端,我没有使用 algolia,而是使用 meilisearch,但这不会以任何方式影响这一点。

正如您在图像中看到的,searchParamters 已修改并设置为限制 1000,但在发出请求时,它会将其发送为 200。

在此处输入图像描述

在此处输入图像描述

       const search = instantsearch({
            indexName: "store",
            searchClient: instantMeiliSearch(m_host, m_key),
        });

       search.addWidgets([
        configure({
            hitsPerPage: 1000,
            limit: 1000,
            filters: `image!=null AND is_active=1 AND (countries_ids=${country_id} OR countries_ids=0) AND goto_link != null`,
            attributesToHighlight: [],
            paginationLimitedTo: 1000,
        }),
        {
            init: function (opts) {
                const helper = opts.helper;

                const input = document.querySelector('#searchbox');
                input.addEventListener('input', function (e) {
                    helper.setQuery(e.currentTarget.value) // update the parameters
                        .search(); // launch the query
                });
            }
        },
        {
            render: function (opts) {
                let results = opts.results;
                // read the hits from the results and transform them into HTML.
                let res = toArray(groupBy(filter_stores(results.hits), 'category_id'));
                $(`.stores-list`).empty()
                $(`.categories-list`).hide()
                res = res.map(it => {
                    let copy = it;
                    copy[1] = _.orderBy(it[1].map(store => {
                        store.default_rank = store.hasOwnProperty(`rank_country_${country_id}`) ? store[`rank_country_${country_id}`] : store.default_rank;
                        return store;
                    }), 'default_rank', 'asc');
                    return copy;
                });
                res.map(pairs => {
                    let [category_id, stores] = pairs;
                    $(`#category_${category_id}`).show()
                    let html = stores.map(h => create_store(h)).join('')
                    $(`#store_list_${category_id}`).html(html)
                });
            },
        }
    ]);

    search.start();
4

0 回答 0