我正在使用Reactivesearch的DataSearch作为一个自动完成功能,并且我试图弄清楚如何将用户选择的查询添加到我在Appbaseio托管的自动完成索引中?
当我说用户选择的查询时,我指的是从DataSearch组件下拉列表中键入或选择的查询。
这是我到目前为止想出的
<DataSearch
componentId="SearchSensor"
dataField={["original_title"]}
className="search-bar"
onValueSelected={
function(value, cause, source) {
console.log("current value: ", value)
}
}
iconPosition="right"
innerclassName={{
list: "text-item"
}}
/>上面的onValueSelected是直接从文档获取的。为了做到这一点,我似乎需要使用它的属性。我只是不知道怎么把它和我的Appbaseio ES索引连接起来?
发布于 2018-08-22 06:13:50
onValueSelected是在这里获得所选值的正确方法。(如果需要,还可以使用onQueryChange获得完整的查询)。在onValueSelected中获得这个选定的值之后,您可以使用简单的fetch请求对您的elasticsearch索引进行索引,或者将其发送到后端。还有一个用于rest的助手库和文档,您可以尝试。
另外,我建议将索引逻辑拉到服务器上,而不是在客户端公开,因为您需要写凭据才能执行写操作。这将使您的书面凭证更安全。
例如:
<DataSearch
...
onValueSelected={(value) => {
fetch('YOUR_SERVER_URL' or 'Elasticsearch URL', { method: 'POST', body: {...} })
}
/>https://stackoverflow.com/questions/51951880
复制相似问题