ReactiveSearch, DataSearch и индексирование пользовательских запросов

Я использую DataSearch из Reactivesearch для функции автозаполнения, и я пытаюсь выяснить, как я могу взять выбранный пользователем запрос и добавить его в свой индекс автозаполнения, размещенный на 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"
   }}
   />

Выбранное выше значение onValue взято прямо из документации. Кажется, это свойство, с которым мне нужно работать, чтобы сделать это. Я просто не уверен, как подключить его к моему индексу Appbaseio ES?

1 ответ

Решение

onValueSelected это правильный подход, чтобы получить выбранное значение здесь. (Вы также можете получить полный запрос с onQueryChange если нужно). После получения этого выбранного значения в onValueSelected Вы можете индексировать это с помощью простого fetch запросить ваш индекс упругого поиска или отправить его бэкэнду. Есть также вспомогательная библиотека и документы для отдыха, которые вы можете попробовать.

Также я бы порекомендовал перенести логику индексирования на сервер, а не выставлять ее на стороне клиента, поскольку для выполнения записи вам понадобятся учетные данные. Это сделает ваши учетные данные безопаснее.

Например:

<DataSearch
  ...
  onValueSelected={(value) => {
    fetch('YOUR_SERVER_URL' or 'Elasticsearch URL', { method: 'POST', body: {...} })
  }
/>
Другие вопросы по тегам