RenderUserData
操作用于将数据发送到前端,以便在前端执行一系列操作。
RenderUserData
操作具有以下属性
action
:要执行的操作。这必须设置为RenderUserData
。userData
:要在搜索结果中渲染的用户数据。这可以是任何 JSON 对象。
以下是 RenderUserData
操作的示例
{
"search_settings": {
"query_rules": [
{
"id": "1",
"conditions": [
[
// conditions here
]
],
"actions": [
{
"action": "RenderUserData",
"userData": "{\"title\":\"Star Wars\",\"description\":\"A long time ago in a galaxy far, far away...\",\"image\":\"https://upload.wikimedia.org/wikipedia/en/8/87/StarWarsMoviePoster1977.jpg\"}"
}
]
}
]
}
}
然后,在您的前端,您可以使用 renderUserData
和 QueryRuleCustomData
组件来渲染用户数据
<QueryRuleCustomData>
{({ items }: { items: any[] }) =>
items.map(({ title }) => {
if (!title) {
return null;
}
return (
<section key={title}>
<h2>{title}</h2>
<p>You have typed in movie, show something wild about movies!</p>
</section>
);
})
}
</QueryRuleCustomData>
用户重定向示例
您还可以使用 RenderUserData
操作将用户重定向到另一个页面。执行此操作的一个示例是存储一个具有您要将用户重定向到的 URL 的 redirect
属性。以下是在带重定向的 RenderUserData
操作的示例
{
"search_settings": {
"query_rules": [
{
"id": "1",
"conditions": [
[
// conditions here
]
],
"actions": [
{
"action": "RenderUserData",
"userData": "{ \"redirect\": \"https://searchkit.elastic.ac.cn\" }"
}
]
}
]
}
}
然后,在您的前端,您可以使用 renderUserData
和 QueryRuleCustomData
组件来重定向用户
<QueryRuleCustomData>
{({ items }: { items: any[] }) =>
items.map((item) => {
if (item.redirect) {
window.location = item.redirect
}
return null;
})
}
</QueryRuleCustomData>