如何使用Searchkit创建Elasticsearch总和聚合查询?

时间:2018-04-27 12:41:43

标签: reactjs elasticsearch searchkit

我正在开发基于Searchkit的项目,我在其中提供了来自elasticsearch服务器的搜索,过滤和排序功能。以下是渲染的反应代码的一部分:

<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库在构建的查询之上添加聚合。如果没有,我甚至需要一个解决方案。

0 个答案:

没有答案