ReactiveSearch、DataSearch 和索引用户查询

ReactiveSearch, DataSearch and indexing user query

我正在使用 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 索引?

onValueSelected 是在此处获取选定值的正确方法。 (如果需要,您还可以使用 onQueryChange 获取完整查询)。在 onValueSelected 中获取此选定值后,您可以使用对 elasticsearch 索引的简单 fetch 请求对其进行索引或将其发送到后端。还有一个helper library and the docs休息的可以试试。

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

例如:

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