ReactiveSearch,DataSearch和索引用户查询

时间:2018-08-21 15:18:11

标签: reactjs elasticsearch indexing reactivesearch

我正在使用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直接来自docs。看来这是我需要处理的属性。我只是不确定如何将其连接到我的Appbaseio ES索引?

1 个答案:

答案 0 :(得分:0)

onValueSelected是在此处获取所选值的正确方法。 (如果需要,您还可以使用onQueryChange获取完整查询)。在onValueSelected中获得此选定值后,您可以使用简单的fetch请求将此值编入您的elasticsearch索引中,或将其发送到后端。还有helper librarydocs可供您休息。

我还建议将索引逻辑拉到服务器,而不是在客户端公开它,因为您需要写凭据才能执行写操作。这样可以使您的写凭据更安全。

例如:

<DataSearch
  ...
  onValueSelected={(value) => {
    fetch('YOUR_SERVER_URL' or 'Elasticsearch URL', { method: 'POST', body: {...} })
  }
/>