MultiList / MultiDropdownList在React

时间:2018-06-26 11:08:33

标签: reactjs elasticsearch reactivesearch

我一直在努力让ReactiveSearch / ReactiveBase中可以使用某些方面的搜索选项。

尝试使MultiList或MultiDropdownList工作时,什么都没有显示,并且在Dev Tools中也没有错误消息。

SingleRange部分工作得很好,但是我无法使用任何文本MultiList功能。

这是我的整个“渲染”部分,以防万一我错过了一些简单的事情:

render() {
    return (
        <ReactiveBase
            app="properties"
            url="http://<el-server-ip>:9200">
            <CategorySearch
                    componentId="searchbox"
                    dataField={["PropertyType","County"]}
                    categoryField="Country"
                    autoSuggest={true}
                    fuzziness={0}
                    queryFormat="and"
                    placeholder="Search for properties"
            />
            <SingleRange
                    componentId="ratingsfilter"
                    title="Filter by ratings"
                    dataField="Price_Unformatted"
                    data={[
                        {"start": 0, "end": 500000, "label": "0 - 500k"},
                        {"start": 500000, "end": 1000000, "label": "500k - 1m"},
                        {"start": 1000000, "end": 10000000, "label": "1m - 10m"},
                        {"start": 0, "end": 1000000000000, "label": "10m+"},
                    ]}
                />
            <MultiList
              componentId="TypeSensor"
              dataField="PropertyType.raw"
              title="Type"
            />
                <ResultCard
                    componentId="result"
                    title="Results"
                    dataField="PropertyType"
                    from={0}
                    size={15}
                    pagination={true}
                    react={{
                        and: ["searchbox", "ratingsfilter","TypeSensor"]
                    }}
                    onData={(res) => {
                        return {
                            image: res.PicNumber,
                            title: res.PropertyType,
                            description: res.Description_EN.substr(0,100)
                        }
                    }}
            />
        </ReactiveBase>
    );
}

为了让您对我正在使用的数据类型有个了解,以防万一类型不匹配导致错误:

"_source": {
                "objectID": 211956,
                "Continent": "Europe",
                "Country": "France",
                "County": "Aude ",
                "Location": "Carcassonne",
                "Area": null,
                "Price": "EUR 890,000",
                "Price_Unformatted": 890000,
                "PropertyType": "Chateau",
                "Bedrooms": 9,
                "Bathrooms": 6,
                "PicNumber": "file.jpg",
                "Description_EN": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat...",
                "Currency": "EUR",
            }

在这种情况下,是否有任何方法可以从React或ReactiveSearch获取某种输出/错误消息,以便我可以准确地了解问题所在?

我以前见过错误,尽管这些错误大多是语法。

1 个答案:

答案 0 :(得分:3)

MultiList必须在提供的dataField上运行聚合。在mappings中,您应该使用keyword类型,以便可以在其上运行聚合。因此,如果您在此处将多字段更新为.keyword而不是.raw,它将起作用:

<MultiList
  componentId="TypeSensor"
  dataField="PropertyType.keyword"
  title="Type"
/>