Я работаю над проектом 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. Если нет, мне действительно нужно даже обходное решение.