【问题标题】:ReactiveSearch, DataSearch and indexing user queryReactiveSearch、DataSearch 和索引用户查询
【发布时间】:2018-08-21 15:18:11
【问题描述】:

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

【问题讨论】:

    标签: reactjs elasticsearch indexing reactivesearch


    【解决方案1】:

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

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

    例如:

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

    【讨论】:

    • 如果我使用 appbase-js 与我的 Appbaseio ES 交互,我将如何使用 onValueSelected 调用 Node 应用上的索引逻辑?
    • 您必须在您的服务器上创建一个接收所选值的路由,然后使用 appbase-js 中的 index 方法 docs
    • 因为我做了更多的测试,现在我明白你的意思是使用 onQueryChange 获取整个查询 - 感谢您的提醒!仍在学习,但使用 ReactiveSearch 会变得更好!
    • 跟进此事。如果我要使用 Appbase 的付费计划 - 我不必担心索引用户查询 - 似乎我可以从 Appbase 获得相同的查询数据 - 对吗?
    • 对此不太确定。最好咨询支持 imo
    猜你喜欢
    • 2019-01-29
    • 2019-03-01
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 2020-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多