Как создать запрос агрегации суммы Elasticsearch с помощью Searchkit? - PullRequest
0 голосов
/ 27 апреля 2018

Я работаю над проектом Searchkit , в котором я предоставлял функции поиска, фильтрации и сортировки с сервера эластичного поиска. Вот часть визуализированного кода реакции:

<SearchkitProvider searchkit={searchkit}>
        <Layout>
        <TopBar>
            <SearchBox placeholder="Rechercher..." 
                    autofocus={true} 
                    searchOnChange={true} 
                    queryOptions={{analyzer:"standard"}}
                    prefixQueryFields={["juridiction", "decision", "annee", "content"]}/>
        </TopBar>

        <LayoutBody>

        <SideBar>
            <RangeFilter min={0} max={10000} field="indemnite" id="indemnite" title="Indemnité" showHistogram={false}/>
            <RefinementListFilter id="demandeur" title="Demandeur" field="demandeur.keyword" operator="OR" size={10}/>
            <RefinementListFilter id="defendeur" title="Defendeur" field="defendeur.keyword" operator="OR" size={10}/>
            <RefinementListFilter id="juridiction" title="Juridiction" field="juridiction.keyword" operator="OR" size={10}/>
            <RefinementListFilter id="decision" title="Decision" field="decision.keyword" operator="OR" size={10}/>
            <RefinementListFilter id="annee" title="Annee" field="annee.keyword" operator="OR" size={10}/>
        </SideBar>

                <LayoutResults>
                <Tabs>
                    <TabList>
                        <Tab>Décisions Sources</Tab>
                        <Tab>Synthèse</Tab>
                    </TabList>
                    <TabPanel>
                        <ActionBar>
                            <ActionBarRow>
                                <HitsStats translations={{
                                "hitstats.results_found":"{hitCount} résultats trouvés"
                                }}/>
                                <ViewSwitcherToggle/>
                                <SortingSelector options={[
                                {label:"Indemnité", field:"indemnite", order:"desc"},
                                {label:"Dernières Décisions", field:"dateDecision", order:"desc"}
                                ]}/>
                            </ActionBarRow>

                            <ActionBarRow>
                                <GroupedSelectedFilters/>
                                <ResetFilters/>
                            </ActionBarRow>
                        </ActionBar>
                        <Hits hitsPerPage={12} highlightFields={["juridiction", "decision", "annee"]}
                        sourceFilter={["juridiction", "decision", "annee", "content", "indemnite", "dateDecision", "lieu"]}
                        itemComponent={HitsListItem}
                        mod="sk-hits-list"
                        scrollTo="body"/>
                        <NoHits suggestionsField={"juridiction"}/>
                        <Pagination showNumbers={true}/>
                    </TabPanel>
                    <TabPanel>
                        <!-- Here I will place the charts -->
                    </TabPanel>
                </Tabs>
                </LayoutResults>
        </LayoutBody>
        </Layout>
    </SearchkitProvider>

Теперь я хочу создать несколько диаграмм, которые показывают результаты операций агрегирования (пример: SELECT SUM(...) FROM ... GROUP BY ...).

Я хочу иметь возможность получить встроенный запрос из компонента SearchkitProvider. И если мне это удастся, я не уверен, возможно ли добавить агрегаты поверх построенного запроса с помощью библиотеки Searchkit. Если нет, мне действительно нужно даже обходное решение.

...