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: {...} })
}
/>